(2020-08-13, 11:54 AM)Sailoog Wrote: I need to know where that embedded python code is installed to hardcode it and test this change because I do not want to build signal k server from source.
pigpio-seatalk.js is not found in a working system.
I'm seeing it here, seatalk has been working on this machine
pi@openplotter:~ $ sudo find / -name "pigpio-seatalk.js"
/usr/lib/node_modules/signalk-server/node_modules/@signalk/streams/pigpio-seatalk.js
find: ‘/run/user/1000/gvfs’: Permission denied
pi@openplotter:~ $ cat /usr/lib/node_modules/signalk-server/node_modules/@signalk/streams/pigpio-seatalk.js
/*
*
* prototype-server: An implementation of a Signal K server for boats.
* Copyright © 2020 Teppo Kurki <teppo.kurki@iki.fi> *et al*.
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
* 2020-06-24 Original Python code from @Thomas-GeDaD
https://github.com/Thomas-GeDaD/Seatalk1-Raspi-reader
* and finetuned by @MatsA
*
*/
const Execute = require('./execute')
const debug = require('debug')('signalk
treams:pigpio-seatalk')
const cmd = `
import pigpio, time, signal, sys
if sys.argv[1] == "undefined":
gpio = 4 #Default GPIO4 if not set
else:
gpio = int(filter(str.isdigit, sys.argv[1])) #Ggpio, info as "GPIOnn", from GUI setup. Sensing the seatalk1 (yellow wire)
if __name__ == "__main__":
st1read =pigpio.pi()
try:
st1read.bb_serial_read_close(gpio) #close if already run
except:
pass
st1read.bb_serial_read_open(gpio, 4800,9)
if sys.argv[2] == "true": # Invert, inverted input from ST1, selected in the GUI
st1read.bb_serial_invert(gpio, 1)
data=""
try:
while True:
out=(st1read.bb_serial_read(gpio))
out0=out[0]
if out0>0:
out_data=out[1]
x=0
while x < out0:
if out_data[x+1] ==0:
string1=str(hex(out_data[x]))
data= data+string1[2:]+ ","
else:
data=data[0:-1]
data="$STALK,"+data
print (data)
string2=str(hex(out_data[x]))
data=string2[2:]+ ","
x+=2
except:
st1read.bb_serial_read_close(gpio)
print ("exit")
`
function PigpioSeatalk (options) {
Execute.call(this, {debug})
this.options = options
this.options.command = `python -u -c '${cmd}' ${options.gpio} ${options.gpioInvert} `
}
require('util').inherits(PigpioSeatalk, Execute)
module.exports = PigpioSeatalk
pi@openplotter:~