развернуть nodejs modbus-rtu с помощью библиотеки modbus-serial в HEROKU - PullRequest
0 голосов
/ 04 апреля 2019

В последнее время я хочу развернуть nodejs на heroku с использованием библиотеки modbus-serial и socket.io, идея заключается в том, что я хочу получить температуру в реальном времени из pt100, используя последовательный порт RS-485, локально, код работает хорошо, без проблем, но пошел я развернул на heroku, похоже, heroku не распознал USB-порт "/ dev / ttyUSB0", вот что я получил, UnhandledPromiseRejectionWarning: Ошибка: Ошибка: Нет такого файла или каталога, невозможно открыть / dev / ttyUSB0, Это потому, что heroku не знает, что это такое, или мне нужно установить переменную окружения для порта USB,

вот мой код,

 const ModbusRTU = require("modbus-serial")
    const client = new ModbusRTU()

    const app = require('http').createServer(server)
    app.listen(process.env.PORT || 5000)

    const io = require("socket.io")(app)

      io.on("connection",function(socket){
        client.connectRTUBuffered("/dev/ttyUSB0", { baudRate: 115200 }).then(() => {
      setInterval(() => {
        client.writeFC3(1,0,2,(err,data) => {
          if(err)console.log("error ",err)
          console.log("datas ",data)
          io.emit("datas_holding_register_rtu",{ datas : data["data"] })
        })
      },100)
    })

        socket.on('disconnect', () => console.log('Client disconnected'))
    })

Есть идеи, что здесь происходит? спасибо

искренне, тони

1 Ответ

0 голосов
/ 04 апреля 2019

Итак ... Heroku - это облачная система, и последовательный обмен данными осуществляется ЛОКАЛЬНО С помощью кабеля, подключенного к вашему компьютеру к порту USB. Таким образом, Heroku не может связаться с вашим устройством, потому что у него нет порта USB. Решение. Запустите код на компьютере, подключенном к USB-кабелю.

...