Here is a complete listing of the example source file.
import QtQuick 2.11
import QtQuick.Controls 2.1
import QtQuick.Extras 1.4
Item {
width: 800
height: 600
ServiceGroup {
id: modbusServiceGroup
name: "Modbus Service Group"
rules: [
ServiceDependency{
service: clientService
requires: [serverService]
}
]
Service {
id: serverService
name: "TCP Server"
TCPServer {
id: server
host: "127.0.0.1"
port: 50002
slaveAddress: 1
}
}
Service {
id: clientService
name: "TCP Client"
TCPClient {
id: client
host: "127.0.0.1"
port: 50002
slaveAddress: 1
}
}
}
Row {
anchors.verticalCenter: parent.verticalCenter
anchors.horizontalCenter: parent.horizontalCenter
spacing: 10
Column {
spacing: 10
Button {
text: "Client set coil"
onClicked: client.requestWriteCoil(10, true)
}
Button {
text: "Server reset coil"
onClicked: server.requestWriteCoil(10, false)
}
Switch {
id: coilSwitch
checked: coilController.value
onCheckedChanged: coilController.value = checked
CoilController {
id: coilController
device: client
address: 10
onValueChanged: coilSwitch.checked = value
}
}
StatusIndicator {
active: coilController.value
}
}
Column {
spacing: 10
Button {
text: "Client set holding register"
onClicked: client.requestWriteHoldingRegister(10, 2020)
}
Button {
text: "Server reset holding register"
onClicked: server.requestWriteHoldingRegister(10, 0)
}
SpinBox {
id: holdingRegisterSpinBox
from: 0
to: 10000
value: holdingRegisterController.value
onValueChanged: holdingRegisterController.value = value
HoldingRegisterController {
id: holdingRegisterController
device: client
address: 10
onValueChanged: holdingRegisterSpinBox.value = value
}
}
Label {
text: holdingRegisterController.value
}
}
}
}