Differences
This shows you the differences between two versions of the page.
| Both sides previous revision Previous revision Next revision | Previous revision | ||
| msg [2018/09/25 09:01] – alberto | msg [2023/09/06 11:21] (current) – external edit 127.0.0.1 | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| + | =====Communication Protocol===== | ||
| + | \\ | ||
| + | \\ | ||
| An adoption of NMEA0183 (National Marine electronics Association) at RS-232 voltage levels is used for the data link between level 1 and level 2. The standard was chosen on the following basis: It has a low power consumption, | An adoption of NMEA0183 (National Marine electronics Association) at RS-232 voltage levels is used for the data link between level 1 and level 2. The standard was chosen on the following basis: It has a low power consumption, | ||
| requirements are low, it is human readable, and the signal can be tapped for easy debugging. Level 1 will once per second transmit a request for rudder and commands to the Level 2, in the form of a NMEA message. | requirements are low, it is human readable, and the signal can be tapped for easy debugging. Level 1 will once per second transmit a request for rudder and commands to the Level 2, in the form of a NMEA message. | ||
| Line 12: | Line 15: | ||
| Level 2 sends messages to Level 1 containing the desired rudder angle and thruster intensity. These come as a result of high-level control (PIDs) implemented in DUNE. The format of this message is: | Level 2 sends messages to Level 1 containing the desired rudder angle and thruster intensity. These come as a result of high-level control (PIDs) implemented in DUNE. The format of this message is: | ||
| \\ | \\ | ||
| + | ;#; | ||
| + | **MSG = BBB01 , RUD , THR , PWR_SETT , FALLB_MODE** | ||
| + | ;#; | ||
| + | Where:\\ | ||
| + | - BBB01 is the msg ID; \\ | ||
| + | - RUD is the rudder angle [-450,450]; \\ | ||
| + | - THR is the thruster intensity [-100,100]; \\ | ||
| + | - PWR_SETT are the power settings: 6-bits string where 1 disables and 0 enables; \\ | ||
| + | - FALLB_MODE selects the fallback mode: 0 for //rudder 0//, 1 for //circle//, 2 for // | ||
| + | |||
| + | \\ | ||
| + | |||
| + | ============================================================================================================================= | ||
| + | |||
| + | The operator can comminicate to Level 1 through Neptus (Java Plugin), sending messages that respect this format:\\ | ||
| + | ;#; | ||
| + | **MSG = RCC01 , RUD , THR , Kp , Ki , PWR_SETT , FALLB_MODE , MANUAL_CTRL** | ||
| + | ;#; | ||
| + | Where:\\ | ||
| + | - RCC01 is the msg ID; \\ | ||
| + | - RUD is the rudder angle [-450,450]; \\ | ||
| + | - THR is the thruster intensity [-100,100]; \\ | ||
| + | - Kp and Ki set the gains for the Level 1 //Fallback Autopilot//; | ||
| + | - PWR_SETT are the power settings: 6-bits string where 1 disables and 0 enables; \\ | ||
| + | - FALLB_MODE selects the fallback mode: 0 for //rudder 0//, 1 for //circle//, 2 for // | ||
| + | - MANUAL_CTRL is a boolean: 1 for taking control (manual), 0 for giving control (autopilot). | ||
| + | |||
| + | \\ | ||
| + | |||
| + | ============================================================================================================================= | ||
| - | HERE YOU CAN HAVE EVERYTHING YOU WANT | + | Level 1 can send messages to the Operator showing the status of the system. These massage have the following format:\\ |
| + | ;#; | ||
| + | **MSG = CR601 , LEAK , PWR_SETT , LOAD, PANEL1_2 , BATT , COG , SOG , N_SAT , LAT , LONG , Kp , Ki , e , int_e , RUD , THRUST , L1_STATE , FALLB_MODE** | ||
| + | ;#; | ||
| + | Where:\\ | ||
| + | - CR601 is the msg ID;\\ | ||
| + | - LEAK indicates a leak is happening: 1 for TRUE, 0 for FALSE;\\ | ||
| + | - PWR_SETT indicates the power settings: 6-bits string where 1 means disabled and 0 enabled; \\ | ||
| + | - LOAD is the load power (W);\\ | ||
| + | - PANEL1_2 is the panel 1 and panel 2 power (W);\\ | ||
| + | - BATT is the voltage battery (V); \\ | ||
| + | - COG is the course over ground (°); \\ | ||
| + | - SOG is the speed over ground (kn); \\ | ||
| + | - N_SAT is the satellites number used by the GPS; \\ | ||
| + | - LAT is the latitude; \\ | ||
| + | - LONG is the longitude; \\ | ||
| + | - Kp and Ki are the gains used by the PI fallback autopilot controller; \\ | ||
| + | - e is the error; \\ | ||
| + | - int_e is the integrated error; \\ | ||
| + | - RUD is the rudder computed by the PI fallback autopilot controller; \\ | ||
| + | - THR is the thruster applied to the servo; \\ | ||
| + | - L1_STATE shows the operating state of L1: 1 = normal, 2=fallback, 3=manual; \\ | ||
| + | - FALLB_MODE selects the fallback mode: 0 for //rudder 0//, 1 for //circle//, 2 for // | ||