Ich habe mir aus dem Internet teile rausgesucht um mir daten vom CanBus anzeigen zu lassen.
Im auto auf meinem pi
das läuft auch soweit so gut
nur die gauges gefallen mir nicht und ich hätte es gerne als text angezeigt
so in etwa
speed: xxxkmh
rpm : xxxx
temp: xx °C
der server sieht so auf
Code:
var can = require('socketcan');
var express = require('express');
var app = express();
var server = require('http').createServer(app);
var io = require('socket.io')(server);
var channel = can.createRawChannel("vcan0", true);
channel.setRxFilters([{id:132,mask:132},{id:120,mask:120},{id:1845,mask:1845},{id:608,mask:608},{id:139,mask:139}])
var carInfo = {};
carInfo.speed = 0
carInfo.revs = 0
carInfo.mtemp = 0
carInfo.atemp = 0
carInfo.boost = 0
carInfo.fuel = 0
app.use(express.static(__dirname + "/html"));
app.use('/s*****s', express.static(__dirname + '/node_modules/canvas-gauges/'));
io.on('connection', function(client) {
console.log('client connected')
})
setInterval(() => {
io.emit('carMessage', carInfo)
}, 20)
channel.addListener("onMessage", function(msg) {
if (msg.id === 132) {
var tempSpeed = msg.data.readUIntBE(1, 2)
carInfo.speed = tempSpeed / 96
console.log(carInfo)
}})
channel.addListener("onMessage", function(msg) {
if (msg.id === 120) {
carInfo.revs = msg.data.readUIntBE(5, 2)
console.log(carInfo)
}})
channel.addListener("onMessage", function(msg) {
if (msg.id === 608) {
var tempmtemp = msg.data.readUIntBE(7, 1)
carInfo.mtemp = tempmtemp - 60
console.log(carInfo)
}})
channel.addListener("onMessage", function(msg) {
if (msg.id === 1845) {
carInfo.atemp = msg.data.readUIntBE(5, 1)
console.log(carInfo)
}})
channel.addListener("onMessage", function(msg) {
if (msg.id === 1845) {
carInfo.boost = msg.data.readUIntBE(7, 1)
console.log(carInfo)
}})
channel.addListener("onMessage", function(msg) {
if (msg.id === 139) {
carInfo.fuel = msg.data.readUIntBE(5, 2)
console.log(carInfo)
}})
channel.start()
server.listen(3000)
aussehen tut das ganze dann so
[
Link nur für registrierte Mitglieder sichtbar. Bitte einloggen oder neu registrieren ]
wie gesagt ich hab keine ahnung von der materie
ein kleines beispielt wie ich das in einen node s***** und in html dann bewältigen muss wäre der hammer
hab mit get by id usw herumversucht aber ich bekomm einfach nichts angezeigt
ok bekomme die daten jetzt andgezeigt als text bzw zahlen
aber bei kmh zeigt er mir jetzt an 13,0418612314 wie bekomme ich es hin das er mir nur die zahlen vor dem komma anzeigt