Wiki » Historie » Revision 9
« Zurück |
Revision 9/17
(diff)
| Weiter »
Maximilian Seesslen, 15.08.2024 16:14
CANHub
h2. Intro¶
CANServer is an Server-Client library that provides multiple applications access to an CAN-Bus via TCP/IP.
Every message received via CAN gets send to all clients. When an client sends an message, it is send
via CAN-Bus and also to the other clients.
The physical CAN-Bus is optional.
Usecases¶
- CAN over ethernet
- Graphical user interface for home automatisation
An laptop/tablet can be connected to an server via WLAN - Recording/Replay
An PC-Application could record CAN messages and replay them. - Debugging
Show CAN traffic while interacting with the bus with other devices. - WLAN CAN-Bridge
Two CAN segments can be connected via WLAN
Architecture¶
Server TCP Client List< /-----> connectionTcpClient connectionCan | connectionTcpServer | connectionTcpServer <-----/ connectionTcpServer >
class CConnector { signal dataIn(SMsg); slot dataOut(SMsg); }Each connection has an id which is an ongoing number handled by the server.
- Terminal Output
The server prints a dynamic list with the connections and traffic statistics.
- ID/Type
- Connection uptime
- in/out messag count
- in msg/s
Example:
Id Target Uptime In Out In/s ----------------------------------------- 0: CAN 0:10s 12 55 0 1: Server 0:10s 3 51 0 2: Client 0:05s 43 52 0 3: Client 0:01s 1 57 0
Loop detection¶
An Heartbeat is send/routed to every tcp connection.
When server sends heartbeat, it must not receive it back. Otherwise there is a loop. How to generate uuid?
Ansi¶
box(x1,y1,x2,y2)
hLine(x1,y1,x2)
vLine(x1,y1,y2)
┬ │ ┴ ├──┤ ┌─┐ │ │ └─┘QLoggingCategory::setFilterRules("*.debug=false");
qSetMessagePattern("[%{time process}] %{function}: %{message}");
qDebug("Happy debugging");
Links¶
https://www.sciencebuddies.org/science-fair-projects/references/ascii-table
Von Maximilian Seesslen vor 5 Monaten aktualisiert · 9 Revisionen