Wiki » Historie » Revision 10
      « Zurück |
    Revision 10/17
      (diff)
      | Weiter »
    
    Maximilian Seesslen, 15.08.2024 16:20 
    
    
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);
      }
        Server                      
        List
            connectionCan       <-----\
      /---- connectionTcpServer <-----|
      |     connectionTcpServer <-----|
      |     connectionTcpServer <-----|
      |                               |
      \-->serverDataInSlot------------/
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 etwa 1 Jahr aktualisiert · 10 Revisionen