QT 串列埠通訊2

2021-06-19 04:59:56 字數 1375 閱讀 6537

自動識別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.詳...