mirror of
				https://github.com/brmlab/brmscope.git
				synced 2025-10-30 21:43:58 +01:00 
			
		
		
		
	BrmScope INIT COMMIT
This commit is contained in:
		
						commit
						b6af2e5206
					
				
					 9 changed files with 681 additions and 0 deletions
				
			
		
							
								
								
									
										2
									
								
								.directory
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										2
									
								
								.directory
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,2 @@ | |||
| [Desktop Entry] | ||||
| Icon=./.icon.png | ||||
							
								
								
									
										
											BIN
										
									
								
								.icon.png
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								.icon.png
									
										
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| After Width: | Height: | Size: 6.6 KiB | 
							
								
								
									
										19
									
								
								.project
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										19
									
								
								.project
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,19 @@ | |||
| # Gambas Project File 2.0 | ||||
| # Compiled with Gambas 2.21.0 | ||||
| Title=DUINOCNC | ||||
| Startup=FMain | ||||
| Version=0.0.2 | ||||
| Library=gb.qt | ||||
| Library=gb.form | ||||
| Library=gb.net | ||||
| Library=gb.qt.ext | ||||
| TabSize=2 | ||||
| SourcePath=/home/tomsuch/Desktop | ||||
| Maintainer=brmlab | ||||
| Address=brmlab@brmlab.cz | ||||
| Url=www.brmlab.cz | ||||
| License=General Public Licence | ||||
| Systems=suse | ||||
| Menus=System/Monitor | ||||
| Categories=Brmlab;Monitor;System | ||||
| Groups=Amusements/Games/Other | ||||
							
								
								
									
										23
									
								
								.settings
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										23
									
								
								.settings
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,23 @@ | |||
| [Breakpoints] | ||||
| Count=0 | ||||
| 
 | ||||
| [DebugWindow] | ||||
| Count=0 | ||||
| 
 | ||||
| [FFind] | ||||
| SearchIn="Module" | ||||
| CaseSensitive=False | ||||
| SearchWord=False | ||||
| SearchComment=False | ||||
| SearchString=True | ||||
| 
 | ||||
| [OpenFile] | ||||
| File[1]="FMain.form" | ||||
| File[2]="FMain.class:141.0" | ||||
| Active=2 | ||||
| File[3]="Joystick.class:0.0" | ||||
| Count=3 | ||||
| 
 | ||||
| [Watches] | ||||
| Count=0 | ||||
| 
 | ||||
							
								
								
									
										3
									
								
								CHANGELOG
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								CHANGELOG
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,3 @@ | |||
| * Tue Aug 09 2011 brmlab <brmlab@brmlab.cz> 0.0 | ||||
| - Initial release | ||||
| 
 | ||||
							
								
								
									
										
											BIN
										
									
								
								DUINOCNC.gambas
									
										
									
									
									
										Executable file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								DUINOCNC.gambas
									
										
									
									
									
										Executable file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										392
									
								
								FMain.class
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										392
									
								
								FMain.class
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,392 @@ | |||
| ' Gambas class file | ||||
| PUBLIC Motor_A_Dir AS Integer | ||||
| PUBLIC Motor_B_Dir AS Integer | ||||
| PUBLIC Motor_C_Dir AS Integer | ||||
| PUBLIC Step_IDX AS Integer | ||||
| PUBLIC Step_COUNT AS Boolean | ||||
| PUBLIC Step_WDT AS Boolean | ||||
| 
 | ||||
| PUBLIC js AS Joystick | ||||
| 
 | ||||
| PUBLIC joy_x AS Integer | ||||
| PUBLIC joy_y AS Integer | ||||
| PUBLIC joy_s AS Integer | ||||
| 
 | ||||
| PUBLIC joy_bt_up AS Integer | ||||
| PUBLIC joy_bt_down AS Integer | ||||
| 
 | ||||
| 
 | ||||
| PUBLIC SUB _new() | ||||
| 
 | ||||
| END | ||||
| 
 | ||||
| PUBLIC SUB js_StickMove(num AS Integer, pos AS Integer) | ||||
|   TextBox9.Text = num | ||||
|   TextBox10.Text = pos | ||||
| 
 | ||||
| IF num = 0 THEN joy_x = pos | ||||
| IF num = 1 THEN joy_y = pos | ||||
| 
 | ||||
|    | ||||
| END | ||||
| 
 | ||||
| PUBLIC SUB Form_Open() | ||||
| 
 | ||||
| Motor_A_Dir = 0 | ||||
| Motor_B_Dir = 0 | ||||
| Motor_C_Dir = 0 | ||||
| 
 | ||||
| Button8.Enabled = FALSE | ||||
| Button10.Enabled = FALSE | ||||
| Button12.Enabled = FALSE | ||||
| 
 | ||||
| Step_IDX = 0 | ||||
| Step_COUNT = FALSE | ||||
| Step_WDT = FALSE | ||||
|   js = NEW Joystick("/dev/input/js0") AS "js" | ||||
| END | ||||
| 
 | ||||
| PUBLIC SUB Button1_Click() | ||||
| 
 | ||||
|  SerialPort1.PortName = "/dev/ttyUSB0"  | ||||
| SerialPort1.Speed = 115200 | ||||
| SerialPort1.FlowControl = FALSE | ||||
| SerialPort1.Open | ||||
| 
 | ||||
| END | ||||
| 
 | ||||
| 
 | ||||
| PUBLIC SUB js_ButtonPress(num AS Integer) | ||||
|    | ||||
|   ' check the corresponding checkbox | ||||
|   IF num = 2 THEN joy_bt_up = 1 | ||||
|   IF num = 3 THEN joy_bt_down = 1 | ||||
|    | ||||
| END | ||||
| 
 | ||||
| PUBLIC SUB js_ButtonRelease(num AS Integer) | ||||
|    | ||||
|   ' uncheck the corresponding checkbox | ||||
|   IF num = 2 THEN joy_bt_up = 0 | ||||
|   IF num = 3 THEN joy_bt_down = 0 | ||||
|    | ||||
| END | ||||
| 
 | ||||
| 
 | ||||
| PUBLIC SUB Button2_Click() | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
|   Timer1.Enabled = TRUE | ||||
| 
 | ||||
| END | ||||
| 
 | ||||
| PUBLIC SUB Button3_Click() | ||||
| WRITE #SerialPort1, Chr$(TextBox1.Text) | ||||
| Timer1.Delay = TextBox2.Text | ||||
|   Timer1.Enabled = FALSE | ||||
|  WRITE #SerialPort1, Chr$(110) | ||||
| END | ||||
| 
 | ||||
| PUBLIC SUB Timer1_Timer() | ||||
| 
 | ||||
| IF CheckBox4.Value = TRUE THEN | ||||
|  Step_IDX = Step_IDX + 1 | ||||
| ELSE  | ||||
| Step_IDX = 0 | ||||
| ENDIF  | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| IF CheckBox1.Value = TRUE THEN  | ||||
| IF Motor_A_Dir = 0 THEN WRITE #SerialPort1, Chr$(4) | ||||
| IF Motor_A_Dir = 1 THEN WRITE #SerialPort1, Chr$(5) | ||||
| ENDIF  | ||||
| 
 | ||||
| IF CheckBox2.Value = TRUE THEN  | ||||
| IF Motor_B_Dir = 0 THEN WRITE #SerialPort1, Chr$(6) | ||||
| IF Motor_B_Dir = 1 THEN WRITE #SerialPort1, Chr$(7) | ||||
| ENDIF  | ||||
| 
 | ||||
| IF CheckBox3.Value = TRUE THEN  | ||||
| IF Motor_C_Dir = 0 THEN WRITE #SerialPort1, Chr$(8) | ||||
| IF Motor_C_Dir = 1 THEN WRITE #SerialPort1, Chr$(9) | ||||
| ENDIF  | ||||
| 
 | ||||
| IF Step_IDX > 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 | ||||
							
								
								
									
										180
									
								
								FMain.form
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										180
									
								
								FMain.form
									
										
									
									
									
										Normal file
									
								
							|  | @ -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") | ||||
|   } | ||||
| } | ||||
							
								
								
									
										62
									
								
								Joystick.class
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										62
									
								
								Joystick.class
									
										
									
									
									
										Normal file
									
								
							|  | @ -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. <rpm@kudla.org> | ||||
| ' | ||||
| ' 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) | ||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Tomas Suchan
						Tomas Suchan