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 // |