Forum: Mikrocontroller und Digitale Elektronik einbinden von PEAK pcan in node red möglich?


von n00b (Gast)


Lesenswert?

Hallo liebes Forum,

ich hoffe die Stelle hier ist richtig, wusste nicht ob es eher zu uC 
oder PC-Programmierung passt.

Nun zu meiner Frage.
Ich habe gerade angefangen mich mit node red (konkret stm32cubeMonitor) 
zu beschäftigen. Nun kommt mir die Frage ob ich irgendwie den 
vorhandenen PEAK pcan Dongle mit einbinden kann.

Wichtig ist das ich (leider) Windows verwende, die Lösungen welche ich 
spontan gefunden habe basieren allerdings auf socketcan welches nur 
unter Linux verfügbar zu sein scheint.

Falls jemand einen Tipp hat wäre ich sehr Dankbar.

LG

von Frank O. (frank_o)


Lesenswert?

Wir haben für bestimmte Fahrzeuge auch Dongle von Peak.
Ob die für STM funktionieren, weiß ich nicht, aber unter Windows läuft 
das.

von Ulf L. (ulf_l)


Lesenswert?

Den stm32CubeMonitor steckt man doch per st-link an die Ziel-CPU. Was 
hilft einem da ein CAN-USB Adapter ?

von n00b (Gast)


Lesenswert?

Ulf L. schrieb:
> Den stm32CubeMonitor steckt man doch per st-link an die Ziel-CPU.
> Was
> hilft einem da ein CAN-USB Adapter ?

das ist eine von vielen Möglichkeiten, es geht ja auch z.B. serielle 
Schnittellen, UDP etc.

Und wenn ich Analysen durchführen möchte kann es schon praktisch sein 
den CANBUS mit eingebunden zu haben.

von temp (Gast)


Lesenswert?

Eventuell kommst du mit einem anderen CANUSB-Adapter schneller zum Ziel.

Sowas wie https://www.fischl.de/usbtin/ o.ä.

Der Vorteil ist das slcan-Protokoll. Das ist einfachstes ASCII über 
serielle Schnittstellen. Damit lässt sich viel einfacher etwas portables 
bauen. Bei nodejs reicht das Modul "serialport" (oder so ähnlich) und 
läuft damit unter Linux/Windows und OSX identisch. Selbst unter Linux 
gibt es im Packet "can-utils" ein slcanpty-Program was socket can auf 
slcan transferiert. Die umgekehrte Richtung (von einem slcan-Adapter wie 
usbtin zu socketcan) gibt es mit slcand auch. Auf dem Raspi werden 
häufig (oder fast ausschließlich) Erweiterungsplatinen mit MCP2515 
verwendet die auch socketcan sprechen. Mit slcand macht man daraus dann 
auch einen slcan-Adapter der sich ueber die serielle Schnittstelle 
ansprechen lässt.

Irgendwie haben die bei CAN alle den Schuss nicht gehört. Jeder macht 
seinen eigenen Brei mit eigenen Treibern und eigenen APIs. Traurig das 
bisher immer noch kein allgemeingültiger Standard existiert. Und nein, 
socketcan kann's auch nicht sein solange Windows aussen vor bleibt.

von Programmierer (Gast)


Lesenswert?

Du kannst native Erweiterungen für node.js schreiben. Damit kannst du 
einen Adapter zwischen node.js und den Peak-CAN API's (die kommen als 
DLL) in C/C++ bauen. Ich würde dazu raten das "PCAN-Developer 4" zu 
nutzen, welches flexibler und besser ist als das normale API 
(PCAN-Basic). Beide APIs sind aber ziemlich skurril strukturiert, 
feinste deutsche Software-Qualität.

von temp (Gast)


Lesenswert?

Programmierer schrieb:
> Du kannst native Erweiterungen für node.js schreiben

Naja, er wollte einfach in nodejs ein paar CAN-Messages 
empfangen/senden. Wenn er dazu erst ein natives c/c++ Modul schreiben 
muss, passt wohl was nicht. Das sollte wenn dann eine Aufgabe für den 
Hersteller des Adapters sein. Schließlich verlangen die dafür auch Geld. 
Und nodejs ist ja nun kein Exot.

von temp (Gast)


Lesenswert?

Nachtrag:

ich dachte du hast selbst schon gesucht:

https://www.npmjs.com/package/@csllc/cs-pcan-usb

war das zu schwer zu finden?

von n00b (Gast)


Lesenswert?

temp schrieb:
> Nachtrag:
>
> ich dachte du hast selbst schon gesucht:
>
> https://www.npmjs.com/package/@csllc/cs-pcan-usb
>
> war das zu schwer zu finden?

oh ok,

Vielen Dank, ich hatte immer in Kombination mit node red gesucht, ich 
hatte da node.js garnicht auf dem Schirm, ich muss auch mal sehen wie 
das zusammen hängt.

Bisher kante ich nur das installieren über das Programm -> "Paletten 
Verwalten".

von Joachim (Gast)


Lesenswert?

n00b schrieb:
> Vielen Dank, ich hatte immer in Kombination mit node red gesucht, ich
> hatte da node.js garnicht auf dem Schirm, ich muss auch mal sehen wie
> das zusammen hängt.
>
> Bisher kante ich nur das installieren über das Programm -> "Paletten
> Verwalten".

Vereinfacht gesagt:
Wenn es für eine bestimmte gewünschte Funktionalität noch keine fertigen 
Komponenten/Nodes gibt, die Du in Node Red über die "Palette 
verwalten"-Funktion suchen und hinzufügen kannst, dann kannst derartigen 
Komponenten/Nodes halt auch selbst programmieren. Und zwar in Node.js 
bzw. Javascript, denn Node Red ist halt in Node.js bzw. Javascript 
implementiert.

Da es in diesem Fall ja offenbar bereits eine fertige Library für 
Node.js gibt, die Du nutzen kannst, musst Du im Grunde nur eine Art 
kleinen Wrapper für diese Library bauen, um sie mit Node Red nutzen zu 
können.

Auf der Webseite von Node Red gibt's ein gutes Tutorial, wie man seine 
eigenen Nodes bzw. Komponenten entwickelt:
https://nodered.org/docs/creating-nodes/

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.