github.com/jingruilea/kubeedge@v1.2.0-beta.0.0.20200410162146-4bb8902b3879/mappers/modbus_mapper/sample/sample_server.js (about)

     1  // create an empty modbus client
     2  const ModbusRTU = require("modbus-serial");
     3  var holdingValue = 5
     4  var coilValue = false
     5  var vector = {
     6      getHoldingRegister: function() {
     7          return holdingValue;
     8      },
     9      getCoil: function() {
    10          return coilValue;
    11      },
    12      setRegister: function(addr, value, unitID) {
    13          // Asynchronous handling supported also here
    14          console.log("set register", addr, value, unitID);
    15          holdingValue = value;
    16          return;
    17      },
    18      setCoil: function(addr, value, unitID) {
    19          // Asynchronous handling supported also here
    20          console.log("set coil", addr, value, unitID);
    21          coilValue = Boolean(value);
    22          return;
    23      },
    24  };
    25  
    26  // set the server to answer for modbus requests
    27  console.log("ModbusTCP listening on modbus://127.0.0.1:5028");
    28  var serverTCP = new ModbusRTU.ServerTCP(vector, { host: "0.0.0.0", port: 5028, debug: true, unitID: 1 });
    29  
    30  serverTCP.on("socketError", function(err){
    31      // Handle socket error if needed, can be ignored
    32      console.error(err);
    33  });