自動識別com口:通過讀登錄檔實現(當然linux下不可用)。
class mainwindow : public qmainwindow,public ui_mainwindowclass
; public:
qstring getcomm(int index,qstring keyorvalue); //讀取鍵名
private:
void init_com();
win_qextserialport *mycom;//宣告物件
qtimer *timer;
qstringlist m_listcommand; //待傳送的命令
wchar_t subkey[80];
wchar_t keyname[256]; //鍵名陣列
char keyvalue[256]; //鍵值陣列
int indexnum;
dword keysize,type,valuesize;
hkey hkey;
......}
void mainwindow::init_com()
qstring mainwindow::getcomm(int index,qstring keyorvalue)
qstring keymessage="";//鍵名
qstring message="";
qstring valuemessage="";//鍵值
indexnum=index;//要讀取鍵值的索引號
keysize=sizeof(keyname);
valuesize=sizeof(keyvalue);
if(::regenumvalue(hkey,indexnum,keyname,&keysize,0,&type,(byte*)keyvalue,&valuesize)==0)
else
mycom->open(qiodevice::readwrite);
另外乙個就是傳送資料後,最好使用這句
connect(mycom,signal(readyread()),this,slot(readmycom()));//訊號和槽關聯,等串列埠緩衝區有資料時再進行讀串列埠操作
等待串列埠有資料時再進行讀。
qstring str=sendedit->toplaintext();//將sendedit內容提取到str中
qbytearray aa=str.toascii();
const char * strdata=aa.data();
int rec=mycom->writedata(strdata,qstrlen(strdata));
mycom->flush();
void mainwindow::readmycom()
Qt串列埠通訊
1.在早期的qt版本中,主要是採用第三方類作為qt對串列埠通訊的支援,具體可參考 2.在進入qt5的時代後,串列埠通訊已經作為qt的乙個附件部分,但沒有作為qt的正式模組。使用這樣的串列埠模組時,需要自行編譯串列埠部分,具體可參考 鑑於以上兩種做法都比較複雜,本人一直沒有除錯串列埠通訊部分,直到最近...
Qt 串列埠通訊
開發環境 qt5.5.1 qt creator 3.5.1 1 建立專案 qtserialdemo 2 新增元件 修改 專案名.pro qtserialdemo.pro 新增 qt serialport 3 新增如下使用 qt串列埠 所需的標頭檔案 include include 4 主要串列埠通訊...
Qt 串列埠通訊
1.概述 因為專案需要,對qt的串列埠通訊進行了一些學習,這個專案的乙個需求是將乙個測溫儀器的資料讀取到電腦進行處理,根據這個儀器的通訊協議,每次讀取前都需要對它寫入命令。這裡用到了qt進行了讀寫操作,其中遇到了關於十六進製制write問題並得以解決。使用到的qt庫 qtserialport 2.詳...