女人荫蒂被添全过程13种图片,亚洲+欧美+在线,欧洲精品无码一区二区三区 ,在厨房拨开内裤进入毛片

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

英創(chuàng)信息技術(shù)ESM6802支持Qt MODBUS程序開(kāi)發(fā)簡(jiǎn)介

英創(chuàng)信息技術(shù) ? 來(lái)源:英創(chuàng)信息技術(shù) ? 作者:英創(chuàng)信息技術(shù) ? 2020-02-05 11:28 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

ESM6802使用iMX6DL作為CPU,支持硬件圖形加速,使得用戶(hù)可以開(kāi)發(fā)具有較好圖形界面的工業(yè)控制程序。Qt是嵌入式開(kāi)發(fā)中常用的圖形庫(kù),MODBUS作為工控中常用的通信協(xié)議,已經(jīng)作為Qt的模塊引入了Qt中。我們?cè)贓SM6802上移植了最新的Qt 5.8.0版本,包括MODBUS模塊,用戶(hù)在使用中可以方便的調(diào)用Qt提供的API進(jìn)行MODBUS協(xié)議相關(guān)的程序編寫(xiě)。Qt對(duì)于MODBUS協(xié)議的封裝使得用戶(hù)能夠更加便捷快速的進(jìn)行MODBUS應(yīng)用程序開(kāi)發(fā),我們將在下面根據(jù)Qt源碼中的modbusmaster例程簡(jiǎn)單介紹Qt的MODBUS相關(guān)函數(shù)接口。文中使用的程序可以在http://doc.qt.io/qt-5/qtserialbus-modbus-master-example.html獲取或向我們的工程師索取。

在使用Qt提供的MODBUS相關(guān)API時(shí)需要使用Qt提供的MODBUS數(shù)據(jù)類(lèi):QModbusDataUnit,類(lèi)中有公共數(shù)據(jù)RegisterType表示此數(shù)據(jù)代表的MODBUS數(shù)據(jù)類(lèi)型:

enum RegisterType { Invalid, DiscreteInputs, Coils, InputRegisters, HoldingRegisters }

可以使用構(gòu)造函數(shù)進(jìn)行初始化:

QModbusDataUnit(RegisterType type,intaddress, quint16 size)

對(duì)于MODBUS client相關(guān)的函數(shù),Qt將其封裝在類(lèi)QModbusClient中,部分函數(shù)如下:

intnumberOfRetries()const

QModbusReply *sendRawRequest(constQModbusRequest &request,intserverAddress)

QModbusReply *sendReadRequest(constQModbusDataUnit &read,intserverAddress)

QModbusReply *sendReadWriteRequest(constQModbusDataUnit &read,constQModbusDataUnit &write,intserverAddress)

QModbusReply *sendWriteRequest(constQModbusDataUnit &write,intserverAddress)

voidsetNumberOfRetries(intnumber)

voidsetTimeout(intnewTimeout)

int timeout()const

其中numberOfRetries以及setTimeout是用于設(shè)置重試次數(shù)和超時(shí)時(shí)間的。send*Request系列函數(shù)是用于發(fā)送MODBUS數(shù)據(jù)包的函數(shù),其中數(shù)據(jù)相關(guān)的都用之前介紹的QModbusDataUnit類(lèi)對(duì)象作為函數(shù)參數(shù)。

截取部分Qt例程modbusmaster發(fā)送讀請(qǐng)求的代碼如下:

首先設(shè)置連接類(lèi)型(RTU/TCP)、重試次數(shù)、超時(shí)時(shí)間等,然后建立連接:

if(static_cast(ui->connectType->currentIndex()) == Serial) {

modbusDevice->setConnectionParameter(QModbusDevice::SerialPortNameParameter,

ui->portEdit->text());

modbusDevice->setConnectionParameter(QModbusDevice::SerialParityParameter,

m_settingsDialog->settings().parity);

modbusDevice->setConnectionParameter(QModbusDevice::SerialBaudRateParameter,

m_settingsDialog->settings().baud);

modbusDevice->setConnectionParameter(QModbusDevice::SerialDataBitsParameter,

m_settingsDialog->settings().dataBits);

modbusDevice->setConnectionParameter(QModbusDevice::SerialStopBitsParameter,

m_settingsDialog->settings().stopBits);

}else{

const QUrl url = QUrl::fromUserInput(ui->portEdit->text());

modbusDevice->setConnectionParameter(QModbusDevice::NetworkPortParameter, url.port());

modbusDevice->setConnectionParameter(QModbusDevice::NetworkAddressParameter, url.host());

}

modbusDevice->setTimeout(m_settingsDialog->settings().responseTime);

modbusDevice->setNumberOfRetries(m_settingsDialog->settings().numberOfRetries);

if(!modbusDevice->connectDevice()) {

statusBar()->showMessage(tr("Connect failed: ") + modbusDevice->errorString(), 5000);

}

設(shè)置讀取數(shù)據(jù)類(lèi)型、地址等參數(shù):

QModbusDataUnit MainWindow::readRequest()const

{

constautotable =

static_cast(ui->writeTable->currentData().toInt());

intstartAddress = ui->readAddress->value();

Q_ASSERT(startAddress >= 0 && startAddress < 65535);

// do not go beyond 10 entries

int numberOfEntries = qMin(ui->readSize->currentText().toInt(), 65535 - startAddress);

return QModbusDataUnit(table, startAddress, numberOfEntries);

}

發(fā)送讀數(shù)據(jù)請(qǐng)求:

voidMainWindow::on_readButton_clicked()

{

if (!modbusDevice)

return;

ui->readValue->clear();

statusBar()->clearMessage();

if (auto*reply = modbusDevice->sendReadRequest(readRequest(), ui->serverEdit->value())) {

if (!reply->isFinished())

connect(reply, &QModbusReply::finished,this, &MainWindow::readReady);

else

deletereply; // broadcast replies return immediately

}else{

statusBar()->showMessage(tr("Read error: ") + modbusDevice->errorString(), 5000);

}

}

可以看到使用Qt提供的API進(jìn)行MODBUS通訊編程很便捷,只需要首先設(shè)置數(shù)據(jù)QModbusDataUnit,然后調(diào)用相應(yīng)的Request函數(shù)發(fā)送請(qǐng)求即可。

modbusmaster程序運(yùn)行效果如下圖:

我們使用ESM6802連接ADAM模塊進(jìn)行測(cè)試連接圖如下:

ADAM-4117進(jìn)行電流采集時(shí)電流輸入量程為4~20mA,對(duì)應(yīng)的采樣值為0x0000~0xffff。有關(guān)AMAM-4117的介紹可以參考我們官網(wǎng)上的文章:《4~20mA模擬電流采集應(yīng)用方案》。當(dāng)輸入12.0mA(半量程)時(shí)讀到采樣值為0x8007,可見(jiàn)modbusmaster與AMAM模塊正確進(jìn)行了數(shù)據(jù)通信。

更多Qt MODBUS相關(guān)內(nèi)容請(qǐng)參考Qt官方資料:http://doc.qt.io/qt-5/qtmodbus-backends.html。

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 嵌入式主板
    +關(guān)注

    關(guān)注

    7

    文章

    6100

    瀏覽量

    36249
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    K230支持ONVIF上傳視頻嗎?

    K230支持ONVIF上傳視頻嗎
    發(fā)表于 06-20 07:11

    請(qǐng)問(wèn)ADS1255/6支持菊花鏈嗎?

    ADS1255/6支持菊花鏈嗎?連接方法是否同ADS1271?菊花鏈連接以后各ADC是否同步采集,順序輸出數(shù)據(jù)?
    發(fā)表于 02-12 06:05

    P82B96支持HDCP嗎?

    你好:我用P89B96用做HDMI的DDC通道的I2C的轉(zhuǎn)換,我現(xiàn)在是解決了II2問(wèn)題,但是它里面有個(gè)HDCP保護(hù)協(xié)議通過(guò)DDC通道,感覺(jué)它有延時(shí)一樣,不穩(wěn)定。請(qǐng)問(wèn)是否用P82B96支持HDCP?
    發(fā)表于 12-27 07:01

    ADS1256支持菊花鏈連接嗎?

    求助:1、ADS1256支持菊花鏈連接嗎? 2、如果不支持菊花鏈連接,能否把多片ADS1256掛在同一個(gè)SPI(CLK,MISO,MOSI)總線上,通過(guò)不同的CS來(lái)選擇芯片? 3、多片ADS1256能否支持廣播,來(lái)啟動(dòng)所有芯片
    發(fā)表于 12-24 06:03

    請(qǐng)問(wèn)PCM9211支持HDMI音頻輸入嗎?

    請(qǐng)問(wèn)PCM9211支持HDMI 2.1 eARC 標(biāo)準(zhǔn)的幀的專(zhuān)用輸入,是否同時(shí)支持HDMI音頻輸入。
    發(fā)表于 10-17 07:53

    請(qǐng)問(wèn)TLV320ADC3101支持Digital MIC and Analog MIC input同時(shí)輸入嗎?

    TLV320ADC3101支持Digital MIC and Analog MIC input同時(shí)輸入嗎?
    發(fā)表于 10-16 06:57

    TMS320DM6467支持HDMI發(fā)射器/接收器

    電子發(fā)燒友網(wǎng)站提供《TMS320DM6467支持HDMI發(fā)射器/接收器.pdf》資料免費(fèi)下載
    發(fā)表于 10-15 11:36 ?0次下載
    TMS320DM6467<b class='flag-5'>支持</b>HDMI發(fā)射器/接收器

    請(qǐng)問(wèn)TAS5727支持幾段EQ?

    TAS5727支持幾段EQ? 比如PCM5121支持7段以上,TAS5727可以么?
    發(fā)表于 10-14 07:02

    TPS272C45支持遠(yuǎn)程I/Os的智能電源管理

    電子發(fā)燒友網(wǎng)站提供《TPS272C45支持遠(yuǎn)程I/Os的智能電源管理.pdf》資料免費(fèi)下載
    發(fā)表于 09-25 11:13 ?4次下載
    TPS272C45<b class='flag-5'>支持</b>遠(yuǎn)程I/Os的智能電源管理

    TPS25831-Q1支持C型VCONN電源,不使用LDO

    電子發(fā)燒友網(wǎng)站提供《TPS25831-Q1支持C型VCONN電源,不使用LDO.pdf》資料免費(fèi)下載
    發(fā)表于 09-25 10:06 ?0次下載
    TPS25831-Q1<b class='flag-5'>支持</b>C型VCONN電源,不使用LDO

    請(qǐng)問(wèn)OPA2541支持單電源嗎?如果支持此時(shí)功放范圍是多少?

    請(qǐng)問(wèn)OPA2541支持單電源嗎?如果支持此時(shí)功放范圍是多少?
    發(fā)表于 09-02 07:42

    TUBS8041支持從設(shè)備嗎?

    TUBS8041支持從設(shè)備么?
    發(fā)表于 08-19 06:22

    請(qǐng)問(wèn)TL072支持單端供電嗎?

    TL072支持單端供電嗎?看到規(guī)格書(shū)上的建議運(yùn)行條件,VCC-的電壓最大值為-5V,沒(méi)有0;現(xiàn)在有電路上VCC+接的是12V,VCC-接的是地,單端供電,這樣貌似芯片也能正常運(yùn)行,可靠嗎?
    發(fā)表于 08-02 06:57

    ESP32支持OpenHarmony嗎?

    ESP32支持OpenHarmony嗎,可以用AT命令卡控制鴻蒙智聯(lián)的連接嗎,使用ESP32模組的情況下帶寬是否能支持視頻流的上傳
    發(fā)表于 07-19 06:07

    TUSB6250支持USB 2.0 HS的功能控制器數(shù)據(jù)表

    電子發(fā)燒友網(wǎng)站提供《TUSB6250支持USB 2.0 HS的功能控制器數(shù)據(jù)表.pdf》資料免費(fèi)下載
    發(fā)表于 07-12 09:47 ?0次下載
    TUSB6250<b class='flag-5'>支持</b>USB 2.0 HS的功能控制器數(shù)據(jù)表
    主站蜘蛛池模板: 翁牛特旗| 大荔县| 剑河县| 裕民县| 当雄县| 广安市| 南雄市| 泾源县| 兖州市| 遂溪县| 金平| 寻乌县| 新乡县| 凌源市| 天峻县| 资源县| 景谷| 阳原县| 德清县| 新泰市| 阿拉善右旗| 德惠市| 南和县| 连山| 丹东市| 顺平县| 眉山市| 原阳县| 翼城县| 旬阳县| 乃东县| 余干县| 鹿邑县| 抚远县| 鄂温| 南宁市| 竹溪县| 泰来县| 潼关县| 天台县| 永年县|