From b6af2e5206c2da68f82092316feb14e994558ecd Mon Sep 17 00:00:00 2001 From: Tomas Suchan Date: Tue, 30 Aug 2011 22:22:08 +0200 Subject: [PATCH] BrmScope INIT COMMIT --- .directory | 2 + .icon.png | Bin 0 -> 6785 bytes .project | 19 +++ .settings | 23 +++ CHANGELOG | 3 + DUINOCNC.gambas | Bin 0 -> 9686 bytes FMain.class | 392 ++++++++++++++++++++++++++++++++++++++++++++++++ FMain.form | 180 ++++++++++++++++++++++ Joystick.class | 62 ++++++++ 9 files changed, 681 insertions(+) create mode 100644 .directory create mode 100644 .icon.png create mode 100644 .project create mode 100644 .settings create mode 100644 CHANGELOG create mode 100755 DUINOCNC.gambas create mode 100644 FMain.class create mode 100644 FMain.form create mode 100644 Joystick.class diff --git a/.directory b/.directory new file mode 100644 index 0000000..06dab1c --- /dev/null +++ b/.directory @@ -0,0 +1,2 @@ +[Desktop Entry] +Icon=./.icon.png diff --git a/.icon.png b/.icon.png new file mode 100644 index 0000000000000000000000000000000000000000..f66c374b92a4481211129149447c40632bb815cb GIT binary patch literal 6785 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 0.0 +- Initial release + diff --git a/DUINOCNC.gambas b/DUINOCNC.gambas new file mode 100755 index 0000000000000000000000000000000000000000..f4a9bbbf45f6bb40e50ff9f03c21cdc15b83fe29 GIT binary patch literal 9686 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 z 0 AND Step_IDX = TextBox3.Text THEN +Timer1.Enabled = FALSE +Step_IDX = 0 +CheckBox4.Value = FALSE +Step_WDT = FALSE + WRITE #SerialPort1, Chr$(110) +ENDIF + +TextBox4.Text = Step_IDX + +END + +PUBLIC SUB Button4_Click() + +WRITE #SerialPort1, Chr$(TextBox1.Text) + +END + +PUBLIC SUB Button5_Click() + + Timer1.Delay = TextBox2.Text + +END + +PUBLIC SUB Button6_Click() + + WRITE #SerialPort1, Chr$(110) + +END + +PUBLIC SUB Button7_Click() + + WRITE #SerialPort1, Chr$(111) + + +END + +PUBLIC SUB Button9_Click() + + Button9.Enabled = FALSE + Button8.Enabled = TRUE + Motor_A_Dir = 1 + +END + +PUBLIC SUB Button8_Click() + + Button9.Enabled = TRUE + Button8.Enabled = FALSE + Motor_A_Dir = 0 + +END + +PUBLIC SUB Button11_Click() + + Button11.Enabled = FALSE + Button10.Enabled = TRUE + Motor_B_Dir = 1 + + +END + +PUBLIC SUB Button13_Click() + + Button13.Enabled = FALSE + Button12.Enabled = TRUE + Motor_C_Dir = 1 + + +END + +PUBLIC SUB Button10_Click() + + Button11.Enabled = TRUE + Button10.Enabled = FALSE + Motor_B_Dir = 0 + + +END + +PUBLIC SUB Button12_Click() + + Button13.Enabled = TRUE + Button12.Enabled = FALSE + Motor_C_Dir = 0 + + +END + +PUBLIC SUB Button14_Click() + DIM linc AS Integer + DIM lin AS String + + DIM arr_strings AS String[] + +arr_strings = Split(File.LOAD("/home/tomsuch/set-1.cnc"), "\n") + +FOR EACH lin IN arr_strings +linc = linc + 1 + + + +TextBox6.Text = linc +' lin +TextBox5.Text = lin + + +IF Mid(lin, 1, 1) = "*" THEN +TextBox8.Text = Mid(lin, 2, 40) +ELSE + +IF lin <> "" THEN + +TextBox1.Text = Val((Mid(lin, 7, 3))) +TextBox2.Text = Val((Mid(lin, 11, 3))) +TextBox7.text = Val((Mid(lin, 1, 5))) + +Button4_Click +Button5_Click + + +TextBox3.Text = Val((Mid(lin, 22, 4))) + +IF Mid(lin, 15, 1) = 1 THEN CheckBox1.Value = TRUE +IF Mid(lin, 15, 1) = 0 THEN CheckBox1.Value = FALSE + +IF Mid(lin, 16, 1) = 1 THEN Button9_Click +IF Mid(lin, 16, 1) = 0 THEN Button8_Click + + + +IF Mid(lin, 17, 1) = 1 THEN CheckBox2.Value = TRUE +IF Mid(lin, 17, 1) = 0 THEN CheckBox2.Value = FALSE + +IF Mid(lin, 18, 1) = 1 THEN Button11_Click +IF Mid(lin, 18, 1) = 0 THEN Button10_Click + + +IF Mid(lin, 19, 1) = 1 THEN CheckBox3.Value = TRUE +IF Mid(lin, 19, 1) = 0 THEN CheckBox3.Value = FALSE + +IF Mid(lin, 20, 1) = 1 THEN Button13_Click +IF Mid(lin, 20, 1) = 0 THEN Button12_Click + + +CheckBox4.Value = TRUE +Step_WDT = TRUE +Timer1.Enabled = TRUE +WHILE Step_WDT = TRUE +WAIT +WEND +ENDIF +ENDIF + NEXT + +END + +PUBLIC SUB TextBox5_KeyPress() + + + +END + +PUBLIC SUB Timer2_Timer() + +TextBox13.Text = joy_bt_up +TextBox14.Text = joy_bt_down + + + + TextBox11.Text = joy_x + TextBox12.Text = joy_y + +IF joy_y < 0 THEN + Button12_Click + CheckBox3.Value = TRUE + TextBox3.text = 1 +'' CheckBox4.Value = TRUE +''Timer1.Enabled = TRUE +ENDIF + +IF joy_y > 0 THEN + Button13_Click + CheckBox3.Value = TRUE + TextBox3.text = 1 +'' CheckBox4.Value = TRUE +''Timer1.Enabled = TRUE +ENDIF + +IF joy_x < 0 THEN + Button10_Click + CheckBox2.Value = TRUE + TextBox3.text = 1 +'' CheckBox4.Value = TRUE +''Timer1.Enabled = TRUE +ENDIF + +IF joy_x > 0 THEN + Button11_Click + CheckBox2.Value = TRUE + TextBox3.text = 1 +'' CheckBox4.Value = TRUE +''Timer1.Enabled = TRUE +ENDIF + +IF joy_bt_up = 1 THEN + Button8_Click + CheckBox1.Value = TRUE + TextBox3.text = 1 +'' CheckBox4.Value = TRUE +''Timer1.Enabled = TRUE +ENDIF + +IF joy_bt_down = 1 THEN + Button9_Click + CheckBox1.Value = TRUE + TextBox3.text = 1 +'' CheckBox4.Value = TRUE +''Timer1.Enabled = TRUE +ENDIF + +IF joy_bt_up = 0 AND IF joy_bt_down = 0 THEN CheckBox1.Value = FALSE + + + +IF joy_x = 0 THEN CheckBox2.Value = FALSE +IF joy_y = 0 THEN CheckBox3.Value = FALSE + +IF joy_x = 0 AND joy_y = 0 AND joy_bt_down = 0 AND joy_bt_up = 0 THEN Button6_Click + +' joy_x = 0 +'joy_y = 0 + + +END + +PUBLIC SUB Button15_Click() + + Timer2.Enabled = TRUE + +END + +PUBLIC SUB Button16_Click() + + Timer2.Enabled = FALSE + +END + +PUBLIC SUB Button17_Click() + + WRITE #SerialPort1, Chr$(112) + +END + +PUBLIC SUB Button18_Click() + + WRITE #SerialPort1, Chr$(113) + +END + +PUBLIC SUB Button19_Click() + + WRITE #SerialPort1, Chr$(114) + +END + +PUBLIC SUB Button20_Click() + + WRITE #SerialPort1, Chr$(115) + +END + +PUBLIC SUB Button21_Click() + + WRITE #SerialPort1, Chr$(116) + +END diff --git a/FMain.form b/FMain.form new file mode 100644 index 0000000..d181129 --- /dev/null +++ b/FMain.form @@ -0,0 +1,180 @@ +# Gambas Form File 2.0 + +{ Form Form + MoveScaled(0,0,114,47) + Text = ("") + { Button1 Button + MoveScaled(3,4,25,7) + Text = ("CONNECT") + } + { SerialPort1 #SerialPort + #X = 686 + #Y = 161 + } + { Timer1 #Timer + #X = 728 + #Y = 161 + Delay = 100 + } + { Button2 Button + MoveScaled(95,4,17,3) + Text = ("START") + } + { Button3 Button + MoveScaled(95,8,17,3) + Text = ("STOP") + } + { TextBox1 TextBox + MoveScaled(34,4,24,3) + Text = ("30") + } + { Button4 Button + MoveScaled(60,4,34,3) + Text = ("CAS KROKU (20-100)") + } + { TextBox2 TextBox + MoveScaled(34,8,24,3) + Text = ("15") + } + { Button5 Button + MoveScaled(60,8,34,3) + Text = ("CAS CIKLU (1-200) ") + } + { Button6 Button + MoveScaled(95,12,17,2) + Text = ("ODBRZDIT") + } + { Button7 Button + MoveScaled(95,16,17,3) + Text = ("ZABRZDIT") + } + { CheckBox1 CheckBox + MoveScaled(70,17,14,3) + Text = ("MOTOR A") + } + { CheckBox2 CheckBox + MoveScaled(70,21,14,3) + Text = ("MOTOR B") + } + { CheckBox3 CheckBox + MoveScaled(70,25,14,3) + Text = ("MOTOR C") + } + { Button8 Button + MoveScaled(60,16,8,3) + Text = ("<<<") + } + { Button9 Button + MoveScaled(85,16,9,2) + Text = (">>>") + } + { Button10 Button + MoveScaled(60,21,8,3) + Text = ("<<<") + } + { Button11 Button + MoveScaled(85,21,9,3) + Text = (">>>") + } + { Button12 Button + MoveScaled(60,26,8,3) + Text = ("<<<") + } + { Button13 Button + MoveScaled(85,26,9,3) + Text = (">>>") + } + { TextBox3 TextBox + MoveScaled(3,21,15,3) + Text = ("500") + } + { TextBox4 TextBox + MoveScaled(19,21,15,3) + Text = ("") + } + { CheckBox4 CheckBox + MoveScaled(43,22,14,2) + Text = ("STEP COUNT") + } + { Button14 Button + MoveScaled(3,26,55,3) + Text = ("OPEN + START SET") + } + { TextBox5 TextBox + MoveScaled(26,17,32,3) + Text = ("SET COMMANDS") + Alignment = Align.Center + } + { TextBox6 TextBox + MoveScaled(3,17,10,3) + Text = ("SET LINES") + Alignment = Align.Center + } + { TextBox7 TextBox + MoveScaled(14,17,11,3) + Text = ("SET STEPS") + Alignment = Align.Center + } + { TextBox8 TextBox + MoveScaled(3,13,55,3) + Text = (" -- SET INFO --") + Alignment = Align.Center + } + { TextBox9 TextBox + MoveScaled(3,30,11,3) + Text = ("TextBox9") + } + { TextBox10 TextBox + MoveScaled(15,30,11,3) + Text = ("TextBox10") + } + { TextBox11 TextBox + MoveScaled(27,30,11,3) + Text = ("TextBox11") + } + { TextBox12 TextBox + MoveScaled(39,30,11,3) + Text = ("TextBox12") + } + { Timer2 #Timer + #X = 728 + #Y = 203 + Delay = 30 + } + { Button15 Button + MoveScaled(60,30,16,3) + Text = ("JOY START") + } + { Button16 Button + MoveScaled(78,30,16,3) + Text = ("JOY STOP") + } + { TextBox13 TextBox + MoveScaled(3,34,23,3) + Text = ("TextBox13") + } + { TextBox14 TextBox + MoveScaled(27,34,23,3) + Text = ("TextBox14") + } + { Button17 Button + MoveScaled(60,35,16,3) + Text = ("SERVO +") + } + { Button18 Button + MoveScaled(78,35,16,3) + Text = ("SERVO -") + } + { Button19 Button + MoveScaled(60,40,9,3) + Text = ("Servo 0") + } + { Button20 Button + MoveScaled(71,40,11,3) + Text = ("Servo 90") + } + { Button21 Button + MoveScaled(84,40,10,3) + Text = ("Servo 180") + } +} diff --git a/Joystick.class b/Joystick.class new file mode 100644 index 0000000..bdfe666 --- /dev/null +++ b/Joystick.class @@ -0,0 +1,62 @@ +' Gambas class file + +' Joystick.class - represents a HID game device containing +' one or more joysticks and buttons +' +' Copyright 2008 Rob Kudla, Binara, Inc. +' +' This program is free software; you can redistribute it and/or modify +' it under the terms of the GNU General Public License version 2 as +' published by the Free Software Foundation. + +PRIVATE jsdev AS Process + +PUBLIC SUB _new(OPTIONAL device AS String) + + IF device = "" THEN device = "/dev/input/js0" + ' the interpreter dies when we try to read from /dev/input/js0 as a file + ' saying "invalid argument", so we have to run cat + jsdev = EXEC ["cat", device] FOR READ AS "Device" + +END + +PUBLIC SUB Close() + + ' kill the cat process if it's still going + TRY jsdev.Kill + +END + +PUBLIC SUB Device_Read() + + DIM stamp AS Integer + DIM value AS Short + DIM myevent AS Byte + DIM number AS Byte + DIM test AS String + + ' each joystick event produces 8 bytes + READ #jsdev, stamp, 4 ' 4 bytes + READ #jsdev, value, 2 ' 2 bytes + READ #jsdev, myevent, 1 ' 1 byte + READ #jsdev, number, 1 ' 1 byte + + IF myevent AND 1 THEN ' button + IF value THEN ' pressed + PRINT "Got button press" + RAISE ButtonPress(number) + ELSE ' released + PRINT "Got button release" + RAISE ButtonRelease(number) + ENDIF + ELSE IF myevent AND 2 THEN ' joystick axis + RAISE StickMove(number, value) + ELSE + PRINT "Unhandled event: myevent is " & myevent + ENDIF + +END + +EVENT ButtonPress(ButtonNum AS Integer) +EVENT ButtonRelease(ButtonNum AS Integer) +EVENT StickMove(Axis AS Integer, Position AS Integer)