remake everything, now with serial

This commit is contained in:
Simon Zeyer 2021-12-05 22:07:54 +01:00
parent 3faeb5d6aa
commit a7b14fe39d

View File

@ -6,23 +6,56 @@ except:
print("DEBUG; winrt disabled") print("DEBUG; winrt disabled")
DEBUG = True DEBUG = True
import win32com.client import win32com.client
import pythoncom
import time import time
import pythoncom
from resources import LineState, CLMgrMessage from resources import LineState, CLMgrMessage
phone_mgr = "" import serial
lines = [] from serial import SerialException
portName = 'COM3'
def sendSerial(byte):
try:
ser = serial.Serial(port=portName, baudrate=115200)
ser.write(byte)
except SerialException:
print('port already open')
class PhoneLineEventHandler(): class PhoneLineEventHandler():
phone_mgr = None
lines = []
line_selected = None
connected = False
def OnDispOnLineMgrNotification(self, msg, param, returns=""): def OnDispOnLineMgrNotification(self, msg, param, returns=""):
if msg == 0:
print(CLMgrMessage.s[msg], LineState.s[param]) if not self.phone_mgr:
for line in lines: self.phone_mgr = win32com.client.Dispatch("CLMgr.ClientLineMgr")
if not self.phone_mgr:
"Swyx not connected!"
else:
print("Swyx connected!")
if self.phone_mgr:
if msg == CLMgrMessage.CLMgrLineStateChangedMessage:
line = self.phone_mgr.DispGetLine(param)
print("Line: {} {}".format(
param,
LineState.s[line.DispState])
)
if line.DispState != LineState.Inactive: if line.DispState != LineState.Inactive:
if line.DispState == LineState.Ringing:
sendSerial(b'y')
else:
sendSerial(b'r')
asyncio.run(try_pause()) asyncio.run(try_pause())
for linenum in range(self.phone_mgr.DispNumberOfLines):
line = self.phone_mgr.DispGetLine(linenum)
if line.DispState != LineState.Inactive:
return True return True
asyncio.run(try_play()) asyncio.run(try_play())
sendSerial(b'o')
return True return True
# async def get_media_info(): # async def get_media_info():
@ -70,10 +103,7 @@ async def try_pause():
await current_session.try_pause_async() await current_session.try_pause_async()
if __name__ == '__main__': if __name__ == '__main__':
phone_mgr = win32com.client.Dispatch("CLMgr.ClientLineMgr") win32com.client.WithEvents("CLMgr.ClientLineMgr", PhoneLineEventHandler)
phone_mgr_event = win32com.client.WithEvents("CLMgr.ClientLineMgr", PhoneLineEventHandler)
for i in range(3):
lines.append(phone_mgr.DispGetLine(i))
while True: while True:
#pythoncom.PumpWaitingMessages() pythoncom.PumpWaitingMessages()
time.sleep(0.1) # Don't use up all our CPU checking constantly time.sleep(0.1) # Don't use up all our CPU checking constantly