技术专栏
QModbusClient的案列
首先连接到服务端:
QModbusTcpClient *client = new QModbusTcpClient();
client->setConnectionParameter(QModbusDevice::NetworkAddressParameter, "192.168.100.1");
client->setConnectionParameter(QModbusDevice::NetworkPortParameter, 8008);
client->connectDevice();
这样就连接上服务端了,下面可以发送请求了
发送读或写请求到服务端
写请求:
QModbusDataUnit writeUnit(QModbusDataUnit::HoldingRegisters, 40003, 1); // write 1 value in address 40003
writeUnit.setValue(0, 0x253);
//这里先建好QModbusDataUnit
if (auto *reply = client->sendWriteRequest(writeUnit, 1))
//发送写请求
{
if (!reply->isFinished())
{
connect(reply, &QModbusReply::finished, this, [this, reply]()
{
if (reply->error() != QModbusDevice::NoError)
// error in reply
reply->deleteLater();
});
}
else
{
if (reply->error() != QModbusDevice::NoError)
// error in reply
// broadcast replies return immediately
reply->deleteLater();
}
}
else
{
// error in request
}
读请求:
QModbusDataUnit readUnit(QModbusDataUnit::InputRegisters, 40006, 1); // just read input register 40006
if (auto *reply = client->sendReadRequest(readUnit, 255)) // client id 255
{
if (!reply->isFinished())
{
// connect the finished signal of the request to your read slot
connect(reply, &QModbusReply::finished, this, &YourClass::readReady);
}
else
{
delete reply; // broadcast replies return immediately
}
}
else
{
// request error
}
YourClass::readReady
{
QModbusReply *reply = qobject_cast<QModbusReply *>(sender());
if (!reply)
return;
if (reply->error() == QModbusDevice::NoError)
{
const QModbusDataUnit unit = reply->result();
int startAddress = unit.startAddress(); // the start address, here 40006
int value = unit.value(0); // value of the start address + 0
...
}
else
{
// reply error
}
reply->deleteLater(); // delete the reply
}
声明:本文内容由易百纳平台入驻作者撰写,文章观点仅代表作者本人,不代表易百纳立场。如有内容侵权或者其他问题,请联系本站进行删除。
红包
点赞
收藏
评论
打赏
- 分享
- 举报
评论
0个
手气红包
暂无数据
相关专栏
-
浏览量:1639次2019-07-16 14:36:24
-
浏览量:1937次2018-02-05 01:06:26
-
浏览量:7882次2021-01-22 02:00:19
-
浏览量:7858次2021-01-19 02:00:45
-
浏览量:1891次2018-02-28 23:02:17
-
浏览量:3714次2022-02-20 09:00:18
-
浏览量:2887次2022-01-23 09:00:19
-
浏览量:1889次2020-08-07 08:52:41
-
浏览量:2003次2022-02-11 09:00:16
-
浏览量:1824次2018-08-21 10:13:48
-
浏览量:5524次2020-08-20 14:18:11
-
浏览量:1925次2019-01-25 21:10:06
-
浏览量:2477次2022-03-11 09:00:21
-
浏览量:3810次2020-09-28 13:46:38
-
浏览量:5679次2022-10-10 21:06:25
-
浏览量:6043次2021-04-01 16:50:31
-
浏览量:5893次2021-04-01 16:47:04
-
浏览量:4696次2021-03-30 17:33:20
-
浏览量:2123次2018-03-15 17:23:04
置顶时间设置
结束时间
删除原因
-
广告/SPAM
-
恶意灌水
-
违规内容
-
文不对题
-
重复发帖
打赏作者
big_anana
您的支持将鼓励我继续创作!
打赏金额:
¥1
¥5
¥10
¥50
¥100
支付方式:
微信支付
打赏成功!
感谢您的打赏,如若您也想被打赏,可前往 发表专栏 哦~
举报反馈
举报类型
- 内容涉黄/赌/毒
- 内容侵权/抄袭
- 政治相关
- 涉嫌广告
- 侮辱谩骂
- 其他
详细说明
审核成功
发布时间设置
发布时间:
请选择发布时间设置
是否关联周任务-专栏模块
审核失败
失败原因
请选择失败原因
备注
请输入备注