The SMCCg protocol is a modified version of the SMCC protocol. The key difference between SMCC and SMCCg is that SMCCg includes gravity in the z-axis acceleration measurement.
Data:
-
Roll, pitch, heading
-
Surge, sway, heave
-
Surge velocity, sway velocity, heave velocity
-
x acceleration, y acceleration, z acceleration (including gravity)
Format:
$PSMCCG,±xx.xx, ±yy.yy, ±zzz.z, ±ss.ss, ±ww.ww, ±hh.hh, ±sv.sv, ±sw.sw, ±hv. hv, ±ax.axa, ±ay.aya, ±az.aza*cs<CR><LF>
|
SMCCg protocol description |
|||||
|---|---|---|---|---|---|
|
FIELD N. |
FIELD |
DESCRIPTION |
UNIT |
TYPE |
NOTE |
|
0 |
$PSMCCG |
identifier |
- |
string |
Telegram identifier. |
|
1 |
±xx.xx |
roll angle |
[deg] |
DBL |
Sign: Positive (+) is port up, negative (-) is port down. xx.xx : ‘xx' is the integer part of the roll represented by two digits in range [-99,99], ‘.’ is decimal separator and 'xx’ is the fractional part of the roll represented by two positive digits in range [0,99]. |
|
2 |
±yy.yy |
pitch angle |
[deg] |
DBL |
Sign: Positive (+) is bow down, negative is (-) bow up. yy.yy: ‘yy' is the integer part of the pitch represented by two digits in range [-99,99], ‘.’ is decimal separator and 'yy’ is the fractional part of the pitch represented by two positive digits in range [0,99]. |
|
3 |
±zzz.z |
heading angle |
[deg] |
DBL |
Heading increase in clockwise direction. zzz.z: ‘zzz' is the integer part of the heading represented by three positive digits in range [0,359], ‘.’ is decimal separator and 'z’ is the fractional part of the heading represented by one positive digit in range [0,9]. |
|
4 |
±ss.ss |
surge |
[m] |
DBL |
Sign: Positive (+) is forward (bow direction), negative (-) is backward (stern direction). ss.ss: ‘ss' is the integer part of the surge represented by two digits in range [-99,99], ‘.’ is decimal separator and 'ss’ is the fractional part of the surge represented by two positive digits in range [0,99]. |
|
5 |
±ww.ww |
sway |
[m] |
DBL |
Sign: Positive (+) is starboard right, negative (-) is port left. ww.ww: ‘ww' is the integer part of the sway represented by two digits in range [-99,99], ‘.’ is decimal separator and 'ww’ is the fractional part of the sway represented by two positive digits in range [0,99]. |
|
6 |
±hh.hh |
heave |
[m] |
DBL |
Sign: Positive (+) is upward w.r.t reference plane, negative (-) is downward w.r.t reference plane. hh.hh: ‘hh' is the integer part of the heave represented by two digits in range [-99,99], ‘.’ is decimal separator and 'hh’ is the fractional part of the heave represented by two positive digits in range [0,99]. |
|
7 |
surge velocity |
[m/s] |
DBL |
Sign: Positive (+) is forward (bow direction), negative (-) is backward (stern direction). sv.sv : ‘sv' is the integer part of the surge velocity represented by two digits in range [-99,99], ‘.’ is decimal separator and 'sv’ is the fractional part of the surge velocity represented by two positive digits in range [0,99]. |
|
|
8 |
±sw.sw |
sway velocity |
[m/s] |
DBL |
Sign: Positive (+) is starboard right, negative (-) is port left. sw.sw: ‘sw' is the integer part of the sway velocity represented by two digits in range [-99,99], ‘.’ is decimal separator and 'sw’ is the fractional part of the sway velocity represented by two positive digits in range [0,99]. |
|
9 |
±hv.hv |
heave velocity |
[m/s] |
DBL |
Sign: Positive (+) is upward w.r.t reference plane, negative (-) is downward w.r.t reference plane. hv.hv: ‘hv' is the integer part of the heave velocity represented by two digits in range [-99,99], ‘.’ is decimal separator and 'hv’ is the fractional part of the heave velocity represented by two positive digits in range [0,99]. |
|
10 |
±ax.axa |
acceleration x |
[m/s²] |
DBL |
Sign: Positive (+) is forward (bow direction), negative (-) is backward (stern direction). ax.axa: ‘ax' is the integer part of the acceleration (x) represented by two digits in range [-99,99], ‘.’ is the decimal separator and 'axa’ is the fractional part of the acceleration (x) represented by three positive digits in range [0,999]. |
|
11 |
±ay.aya |
acceleration y |
[m/s²] |
DBL |
Sign: Positive (+) is starboard right, negative (-) is port left. ay.aya: ‘ay' is the integer part of the acceleration (y) represented by two digits in range [-99,99], ‘.’ is the decimal separator and 'aya’ is the fractional part of the acceleration (y) represented by three positive digits in range [0,999]. |
|
12 |
±az.aza |
acceleration z (including gravity) |
[m/s²] |
DBL |
Sign: Positive (+) is downward, negative (-) is upward. az.aza: ‘az' is the integer part of the acceleration (z) represented by two digits in range [-99,99], ‘.’ is the decimal separator and 'aza’ is the fractional part of the acceleration (z) represented by three positive digits in range [0,999]. |
|
13 |
CS |
checksum |
- |
HEX |
XOR of characters between $ and * |
Example:
SMCC frame with raw example data is listed below.
$PSMCC,+00.28,-02.08,+106.0,-00.30,+00.08,-00.17,-00.06,+00.01,-00.02,- 00.365,-00.046,-09.813*70<CR><LF>
|
Field 0 |
Field 1 |
Field 2 |
Field 3 |
Field 4 |
Field 5 |
Field 6 |
Field 7 |
Field 8 |
Field 9 |
Field 10 |
Field 11 |
Field 12 |
Field 13 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
PSMCCG |
+00.28 |
-02.08 |
+106.0 |
-00.30 |
+00.08 |
-00.17 |
-00.06 |
+00.01 |
-00.02 |
-00.365 |
-00.046 |
-09.813 |
70 |
Decoded values:
-
Roll
-
Raw value: +00.28, decoded roll angle: 0.28 degrees
-
-
Pitch
-
Raw value: -02.08, decoded pitch angle: 2.08 degrees
-
-
Heading
-
Raw value: +106.0, decoded heading angle: 106.0 degrees
-
-
Surge
-
Raw value: -00.30, decoded surge: -0.3 m
-
-
Sway
-
Raw value: +00.08, decoded sway: 0.08 m
-
-
Heave
-
Raw value: -00.17, decoded heave: -0.17 m
-
-
Surge velocity
-
Raw value: -00.06, decoded surge velocity: 0.06 m/s
-
-
Sway velocity
-
Raw value: +00.01, decoded sway velocity: 0.01 m/s
-
-
Heave velocity
-
Raw value: -00.02, decoded heave velocity: -0.02 m/s
-
-
Acceleration x
-
Raw value: -00.365, decoded acceleration x: -0.365 m/s²
-
-
Acceleration y
-
Raw value: -00.046, decoded acceleration y: -0.046 m/s²
-
-
Acceleration z
-
Raw value: -09.813, decoded acceleration z: -9.813 m/s²
-
-
Checksum
-
Created from XOR operations of characters between $ and * in the example frame.
-
Note 1
The fields of data (e.g., ‘xx.xx’) are decimal numbers with leading zeroes where appropriate.
Note 2
The reference frame for data (e.g., roll) is configurable in the SMCCg protocol. Also, the data's location (e.g., MRU or MP1) is configurable.