MODBUS_API int modbus_write_bit(modbus_t *ctx, int coil_addr, int status);
int addr=ui->spinBoxwirte_addr->value();int data=ui->spinBoxwirte_data->value();int ret =modbus_write_bit(mb,addr,data);if(ret!=1){
QMessageBox::information(this,"失败","写状态寄存器失败,地址:"+QString::number(data));}else{
label_status->setText("写线圈状态寄存器成功!");}
2. 读单个寄存器
int modbus_read_bits(modbus_t *ctx, int addr, int nb, uint8_t *dest);
int addr=ui->spinBoxRead_addr->value();int data=ui->spinBoxRead_data->value();//int modbus_read_bits(modbus_t *ctx, int addr, int nb, uint8_t *dest);uint8_t dest[4];int ret =modbus_read_bits(mb,addr,1,dest);if(ret!=1){
QMessageBox::information(this,"失败","读状态寄存器失败,地址:"+QString::number(data));}else{
label_status->setText("读线圈状态寄存器成功!");qDebug()<<"读出的数据为:"<<dest[0];
ui->spinBoxRead_data->setValue(dest[0]);}
3. 写多个寄存器
int modbus_write_bits(modbus_t *ctx, int addr, int nb, const uint8_t *data);
int addr=ui->spinBoxWriteMore_addr->value();//使用正则表达式,来处理字符串的分割
QString str = ui->textEdit_xianWrite->toPlainText();//用正则表达式进行分割
QRegExp separator=QRegExp("\t|\n|\r\n|,| |;");//进行分割
QStringList list = str.split(