Add initial project setup with VSCode configurations and main functionality for serial communication
This commit is contained in:
		
						commit
						110b0daebb
					
				
							
								
								
									
										0
									
								
								.gitignore
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										0
									
								
								.gitignore
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
								
								
									
										3
									
								
								.vscode/arduino.json
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								.vscode/arduino.json
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @ -0,0 +1,3 @@ | |||||||
|  | { | ||||||
|  |     "port": "COM3" | ||||||
|  | } | ||||||
							
								
								
									
										18
									
								
								.vscode/c_cpp_properties.json
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										18
									
								
								.vscode/c_cpp_properties.json
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @ -0,0 +1,18 @@ | |||||||
|  | { | ||||||
|  |   "configurations": [ | ||||||
|  |     { | ||||||
|  |       "name": "windows-gcc-x64", | ||||||
|  |       "includePath": [ | ||||||
|  |         "${workspaceFolder}/**" | ||||||
|  |       ], | ||||||
|  |       "compilerPath": "C:/msys64/ucrt64/bin/gcc.exe", | ||||||
|  |       "cStandard": "${default}", | ||||||
|  |       "cppStandard": "${default}", | ||||||
|  |       "intelliSenseMode": "windows-gcc-x64", | ||||||
|  |       "compilerArgs": [ | ||||||
|  |         "" | ||||||
|  |       ] | ||||||
|  |     } | ||||||
|  |   ], | ||||||
|  |   "version": 4 | ||||||
|  | } | ||||||
							
								
								
									
										24
									
								
								.vscode/launch.json
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										24
									
								
								.vscode/launch.json
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @ -0,0 +1,24 @@ | |||||||
|  | { | ||||||
|  |   "version": "0.2.0", | ||||||
|  |   "configurations": [ | ||||||
|  |     { | ||||||
|  |       "name": "C/C++ Runner: Debug Session", | ||||||
|  |       "type": "cppdbg", | ||||||
|  |       "request": "launch", | ||||||
|  |       "args": [], | ||||||
|  |       "stopAtEntry": false, | ||||||
|  |       "externalConsole": true, | ||||||
|  |       "cwd": "d:/Documents/Gitea/ESP32-discord", | ||||||
|  |       "program": "d:/Documents/Gitea/ESP32-discord/build/Debug/outDebug", | ||||||
|  |       "MIMode": "gdb", | ||||||
|  |       "miDebuggerPath": "gdb", | ||||||
|  |       "setupCommands": [ | ||||||
|  |         { | ||||||
|  |           "description": "Enable pretty-printing for gdb", | ||||||
|  |           "text": "-enable-pretty-printing", | ||||||
|  |           "ignoreFailures": true | ||||||
|  |         } | ||||||
|  |       ] | ||||||
|  |     } | ||||||
|  |   ] | ||||||
|  | } | ||||||
							
								
								
									
										59
									
								
								.vscode/settings.json
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										59
									
								
								.vscode/settings.json
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @ -0,0 +1,59 @@ | |||||||
|  | { | ||||||
|  |   "C_Cpp_Runner.cCompilerPath": "gcc", | ||||||
|  |   "C_Cpp_Runner.cppCompilerPath": "g++", | ||||||
|  |   "C_Cpp_Runner.debuggerPath": "gdb", | ||||||
|  |   "C_Cpp_Runner.cStandard": "", | ||||||
|  |   "C_Cpp_Runner.cppStandard": "", | ||||||
|  |   "C_Cpp_Runner.msvcBatchPath": "C:/Program Files/Microsoft Visual Studio/VR_NR/Community/VC/Auxiliary/Build/vcvarsall.bat", | ||||||
|  |   "C_Cpp_Runner.useMsvc": false, | ||||||
|  |   "C_Cpp_Runner.warnings": [ | ||||||
|  |     "-Wall", | ||||||
|  |     "-Wextra", | ||||||
|  |     "-Wpedantic", | ||||||
|  |     "-Wshadow", | ||||||
|  |     "-Wformat=2", | ||||||
|  |     "-Wcast-align", | ||||||
|  |     "-Wconversion", | ||||||
|  |     "-Wsign-conversion", | ||||||
|  |     "-Wnull-dereference" | ||||||
|  |   ], | ||||||
|  |   "C_Cpp_Runner.msvcWarnings": [ | ||||||
|  |     "/W4", | ||||||
|  |     "/permissive-", | ||||||
|  |     "/w14242", | ||||||
|  |     "/w14287", | ||||||
|  |     "/w14296", | ||||||
|  |     "/w14311", | ||||||
|  |     "/w14826", | ||||||
|  |     "/w44062", | ||||||
|  |     "/w44242", | ||||||
|  |     "/w14905", | ||||||
|  |     "/w14906", | ||||||
|  |     "/w14263", | ||||||
|  |     "/w44265", | ||||||
|  |     "/w14928" | ||||||
|  |   ], | ||||||
|  |   "C_Cpp_Runner.enableWarnings": true, | ||||||
|  |   "C_Cpp_Runner.warningsAsError": false, | ||||||
|  |   "C_Cpp_Runner.compilerArgs": [], | ||||||
|  |   "C_Cpp_Runner.linkerArgs": [], | ||||||
|  |   "C_Cpp_Runner.includePaths": [], | ||||||
|  |   "C_Cpp_Runner.includeSearch": [ | ||||||
|  |     "*", | ||||||
|  |     "**/*" | ||||||
|  |   ], | ||||||
|  |   "C_Cpp_Runner.excludeSearch": [ | ||||||
|  |     "**/build", | ||||||
|  |     "**/build/**", | ||||||
|  |     "**/.*", | ||||||
|  |     "**/.*/**", | ||||||
|  |     "**/.vscode", | ||||||
|  |     "**/.vscode/**" | ||||||
|  |   ], | ||||||
|  |   "C_Cpp_Runner.useAddressSanitizer": false, | ||||||
|  |   "C_Cpp_Runner.useUndefinedSanitizer": false, | ||||||
|  |   "C_Cpp_Runner.useLeakSanitizer": false, | ||||||
|  |   "C_Cpp_Runner.showCompilationTime": false, | ||||||
|  |   "C_Cpp_Runner.useLinkTimeOptimization": false, | ||||||
|  |   "C_Cpp_Runner.msvcSecureNoWarnings": false | ||||||
|  | } | ||||||
							
								
								
									
										56
									
								
								main.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										56
									
								
								main.py
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,56 @@ | |||||||
|  | import serial | ||||||
|  | import time | ||||||
|  | import keyboard | ||||||
|  | import serial.tools.list_ports as list_ports | ||||||
|  | 
 | ||||||
|  | def get_serial_port(): | ||||||
|  |     ports = list(list_ports.comports()) | ||||||
|  |     if not ports: | ||||||
|  |         print("No serial ports found. Please connect a device.") | ||||||
|  |         return None | ||||||
|  |     print("Available Ports:") | ||||||
|  |     for i, port in enumerate(ports): | ||||||
|  |         print(f"{i}: {port.device}") | ||||||
|  |     choice = int(input("Select a port by number: ")) | ||||||
|  |     return ports[choice].device | ||||||
|  | 
 | ||||||
|  | def main(): | ||||||
|  |     port = get_serial_port() | ||||||
|  |     if not port: | ||||||
|  |         return | ||||||
|  |      | ||||||
|  |     try: | ||||||
|  |         ser = serial.Serial(port, 115200, timeout=1) | ||||||
|  |         time.sleep(2)  # Wait for the connection to initialize | ||||||
|  |         print("Listening for commands...") | ||||||
|  |          | ||||||
|  |         while True: | ||||||
|  |             try: | ||||||
|  |                 if ser.in_waiting > 0: | ||||||
|  |                     line = ser.readline().decode('utf-8').strip() | ||||||
|  |                     print(f"Received: {line}") | ||||||
|  |                      | ||||||
|  |                     if line == "mute": | ||||||
|  |                         keyboard.send('ctrl+shift+f16') | ||||||
|  |                     elif line == "deafen": | ||||||
|  |                         keyboard.send('ctrl+shift+f15') | ||||||
|  |                     else: | ||||||
|  |                         print(f"Unknown command: {line}") | ||||||
|  |                      | ||||||
|  |                 time.sleep(0.1) | ||||||
|  |             except KeyboardInterrupt: | ||||||
|  |                 print("Exiting program.") | ||||||
|  |                 break | ||||||
|  |             except Exception as e: | ||||||
|  |                 print(f"Error during execution: {e}") | ||||||
|  |                 break | ||||||
|  |      | ||||||
|  |     except serial.SerialException as e: | ||||||
|  |         print(f"Could not open serial port: {e}") | ||||||
|  |     finally: | ||||||
|  |         if 'ser' in locals() and ser.is_open: | ||||||
|  |             ser.close() | ||||||
|  |             print("Serial connection closed.") | ||||||
|  | 
 | ||||||
|  | if __name__ == "__main__": | ||||||
|  |     main() | ||||||
							
								
								
									
										21
									
								
								main/main.ino
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										21
									
								
								main/main.ino
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,21 @@ | |||||||
|  | void setup() | ||||||
|  | { | ||||||
|  |     pinMode(16, INPUT_PULLUP); // D16 for "mute" button
 | ||||||
|  |     pinMode(17, INPUT_PULLUP); // D17 for "deafen" button
 | ||||||
|  |     Serial.begin(115200); | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | void loop() | ||||||
|  | { | ||||||
|  |     // ...existing code...
 | ||||||
|  |     if (digitalRead(16) == LOW) | ||||||
|  |     { // Button on D16 pressed
 | ||||||
|  |         Serial.println("mute"); | ||||||
|  |         delay(200); // Debounce delay
 | ||||||
|  |     } | ||||||
|  |     if (digitalRead(17) == LOW) | ||||||
|  |     { // Button on D17 pressed
 | ||||||
|  |         Serial.println("deafen"); | ||||||
|  |         delay(200); // Debounce delay
 | ||||||
|  |     } | ||||||
|  | } | ||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user