Add initial project setup with VSCode configurations and main functionality for serial communication

This commit is contained in:
ZareMate 2025-01-13 12:12:09 +01:00
commit 110b0daebb
Signed by: zaremate
GPG Key ID: 369A0E45E03A81C3
9 changed files with 189 additions and 0 deletions

0
.gitignore vendored Normal file
View File

3
.vscode/arduino.json vendored Normal file
View File

@ -0,0 +1,3 @@
{
"port": "COM3"
}

18
.vscode/c_cpp_properties.json vendored Normal file
View 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
View 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
View 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
}

BIN
START.lnk Normal file

Binary file not shown.

56
main.py Normal file
View 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
View 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
}
}

8
start.ps1 Normal file
View File

@ -0,0 +1,8 @@
# Activate the virtual environment
& .venv\Scripts\activate
# Run the Python script
python main.py
# Deactivate the virtual environment
deactivate