1.開啟軟體的同時開啟定時器timer1,
timer1主要做搜尋串列埠,如果沒搜尋到,就提示「未搜尋到串列埠」,如果搜到了,就開啟串列埠,這裡可能會連線多個裝置,如果要開啟指定的裝置,就需要遍歷串口號去傳送乙個資料,同時裝置要有乙個返回值才行,這樣就可以開啟指定的串列埠了,開啟串列埠之後開啟定時器timer2
def detect_serial(self):
port_list =
exist_flag = false
com_list =
com_list.clear()
port_list.clear()
com_list = list(serial.tools.list_ports.comports())
if len(com_list) == 0:
exist_flag = false
else:
exist_flag = true
for item in com_list:
com = item.device
if exist_flag == true:
for port in port_list:
self.m_th.m_ser.port = port
if self.m_th.m_ser.is_open == true:
self.m_th.m_ser.write(b'\x00') #與微控制器串列埠連線
else:
self.m_th.m_ser.open()
self.m_th.m_ser.write(b'\x00')
time.sleep(0.1)
rdata = self.m_th.m_ser.read_all()
print(rdata)
if rdata == b'\x00':
print(rdata)
self.serial_timer.stop()
if self.judge_serial_timer.isactive() == false:
self.judge_serial_timer.start()
qtwidgets.qmessagebox.information(self,'提示', '串列埠已連線!')
return
else:
qtwidgets.qmessagebox.information(self, '提示', '未找到串列埠!')
2.定時器搜尋到串列埠開啟之後開啟定時器timer2並關閉定時器timer1
定時器timer2主要是搜尋串列埠,如果搜到則什麼都不執行,如果搜尋到串列埠數量為0,則開啟定時器timer1並關閉定時器timer2
def judge_serial(self):
com_list = list(serial.tools.list_ports.comports())
if len(com_list) > 0:
pass
else:
self.judge_serial_timer.stop()
self.serial_timer.start()
好像只能處理連乙個串列埠時的情況,現在先寫這麼多,以後有更好的方法再更吧 兩個C 毫秒級定時器
test time.cpp 定義控制台應用程式的入口點。include stdafx.h include timer.h include timecounter.h define n 10000 define test pro for int i 0 i n i printf loop ok.n n...
Android實現定時器的兩種方法
android實現定時器的兩種方法。1 採用handler與執行緒sleep的方法。2 與採用handlertimertask的方法。現附上 通過三種方法實現每秒鐘更新一次時間的操作 首先新建handler,進行處理相應動作 private final handler mhandler new ha...
Linux使用乙個定時器實現設定任意數量定時器功能
為什麼需要這個功能,因為大多數計算機軟體時鐘系統通常只能有乙個時鐘觸發一次中斷。當執行多個任務時,我們會想要多個定時器 的時鐘跟蹤併發這樣可以生成正確的時間重疊,作業系統這樣做。本例子是為了實現使用linux下的乙個定時器,實現任一數量的定時器功能。首先我們需要一些資料型別用來描述時鐘資料結構 in...