技术专栏
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个
手气红包

相关专栏
-
浏览量:445次2019-07-16 14:36:24
-
浏览量:451次2018-02-28 23:02:17
-
浏览量:445次2020-08-07 08:52:41
-
浏览量:389次2018-02-05 01:06:26
-
浏览量:379次2018-08-21 10:13:48
-
浏览量:347次2019-01-25 21:10:06
-
浏览量:426次2020-04-15 15:22:25
-
浏览量:300次2020-04-22 18:32:19
-
浏览量:555次2019-11-20 16:21:19
-
浏览量:449次2018-03-15 17:23:04
-
浏览量:470次2018-02-08 18:37:02
-
浏览量:420次2020-06-24 15:49:20
-
浏览量:439次2018-02-17 00:41:14
-
浏览量:553次2018-03-11 20:41:52
-
浏览量:458次2018-02-22 16:16:27
-
浏览量:609次2018-03-22 19:51:49
-
浏览量:429次2018-02-01 19:43:47
-
浏览量:437次2018-03-29 17:04:38
-
浏览量:501次2018-07-10 10:56:14
置顶时间设置
结束时间
删除原因
-
广告/SPAM
-
恶意灌水
-
违规内容
-
文不对题
-
重复发帖
打赏作者
big_anana
您的支持将鼓励我继续创作!
打赏金额:
¥1

¥5

¥10

¥50

¥100

¥0.1

支付方式:

举报反馈
举报类型
- 内容涉黄/赌/毒
- 内容侵权/抄袭
- 政治相关
- 涉嫌广告
- 侮辱谩骂
- 其他
详细说明
审核成功
发布时间设置
发布时间:
请选择发布时间设置
是否关联周任务-专栏模块
审核失败
失败原因
请选择失败原因
备注
请输入备注