ITS: use custom value format for CPM elements
This commit is contained in:
parent
cdfab0d6e9
commit
033068916d
|
@ -290,6 +290,10 @@ Node-XY-32b/y n32bY
|
|||
Longitude DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(its_longitude_fmt)
|
||||
Latitude DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(its_latitude_fmt)
|
||||
AltitudeValue DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(its_altitude_fmt)
|
||||
DeltaLatitude DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(its_delta_longitude_fmt)
|
||||
DeltaLongitude DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(its_delta_latitude_fmt)
|
||||
DeltaAltitude DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(its_delta_altitude_fmt)
|
||||
PathDeltaTime DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(its_path_delta_time_fmt)
|
||||
SemiAxisLength DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(its_sax_length_fmt)
|
||||
HeadingValue DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(its_heading_value_fmt)
|
||||
HeadingConfidence DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(its_heading_confidence_fmt)
|
||||
|
@ -316,6 +320,19 @@ Velocity DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(dsrc_velocity_fmt)
|
|||
Angle DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(dsrc_angle_fmt)
|
||||
HeadingDSRC DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(dsrc_angle_fmt)
|
||||
DeltaTime DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(dsrc_delta_time_fmt)
|
||||
|
||||
TimeOfMeasurement STRINGS=NULL
|
||||
ClassConfidence DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(cpm_general_confidence_fmt)
|
||||
FreeSpaceConfidence DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(cpm_general_confidence_fmt)
|
||||
ObjectConfidence DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(cpm_general_confidence_fmt)
|
||||
DistanceValue DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(cpm_distance_value_fmt)
|
||||
DistanceConfidence DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(cpm_distance_confidence_fmt)
|
||||
SpeedValueExtended DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(cpm_speed_value_ext_fmt)
|
||||
CartesianAngleValue DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(cpm_cartesian_angle_value_fmt)
|
||||
AngleConfidence DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(cpm_angle_confidence_fmt)
|
||||
ObjectDimensionValue DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(cpm_object_dimension_value_fmt)
|
||||
ObjectDimensionConfidence DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(cpm_object_dimension_confidence_fmt)
|
||||
|
||||
#.END
|
||||
|
||||
#.FIELD_ATTR
|
||||
|
@ -766,6 +783,10 @@ addGrpC RegionId
|
|||
Latitude
|
||||
Longitude
|
||||
AltitudeValue
|
||||
DeltaLatitude
|
||||
DeltaLongitude
|
||||
DeltaAltitude
|
||||
PathDeltaTime
|
||||
SemiAxisLength
|
||||
$ITS-ContainerV1$HeadingValue
|
||||
HeadingConfidence
|
||||
|
@ -782,6 +803,17 @@ YawRateValue
|
|||
SteeringWheelAngleValue
|
||||
SteeringWheelAngleConfidence
|
||||
GenerationDeltaTime
|
||||
TimeOfMeasurement
|
||||
ClassConfidence
|
||||
FreeSpaceConfidence
|
||||
ObjectConfidence
|
||||
DistanceValue
|
||||
DistanceConfidence
|
||||
SpeedValueExtended
|
||||
CartesianAngleValue
|
||||
AngleConfidence
|
||||
ObjectDimensionValue
|
||||
ObjectDimensionConfidence
|
||||
#.END
|
||||
|
||||
#.NO_EMIT WITHOUT_VALS
|
||||
|
|
|
@ -363,7 +363,7 @@ its_latitude_fmt(gchar *s, guint32 v)
|
|||
{
|
||||
gint32 lat = (gint32)v;
|
||||
if (lat == 900000001) {
|
||||
g_snprintf(s, ITEM_LABEL_LENGTH, "unavailable(%d)", lat);
|
||||
g_snprintf(s, ITEM_LABEL_LENGTH, "unavailable (%d)", lat);
|
||||
} else {
|
||||
g_snprintf(s, ITEM_LABEL_LENGTH, "%u°%u'%.3f\"%c (%d)",
|
||||
abs(lat) / 10000000,
|
||||
|
@ -379,7 +379,7 @@ its_longitude_fmt(gchar *s, guint32 v)
|
|||
{
|
||||
gint32 lng = (gint32)v;
|
||||
if (lng == 1800000001) {
|
||||
g_snprintf(s, ITEM_LABEL_LENGTH, "unavailable(%d)", lng);
|
||||
g_snprintf(s, ITEM_LABEL_LENGTH, "unavailable (%d)", lng);
|
||||
} else {
|
||||
g_snprintf(s, ITEM_LABEL_LENGTH, "%u°%u'%.3f\"%c (%d)",
|
||||
abs(lng) / 10000000,
|
||||
|
@ -395,19 +395,70 @@ its_altitude_fmt(gchar *s, guint32 v)
|
|||
{
|
||||
gint32 alt = (gint32)v;
|
||||
if (alt == 800001) {
|
||||
g_snprintf(s, ITEM_LABEL_LENGTH, "unavailable(%d)", alt);
|
||||
g_snprintf(s, ITEM_LABEL_LENGTH, "unavailable (%d)", alt);
|
||||
} else {
|
||||
g_snprintf(s, ITEM_LABEL_LENGTH, "%.2fm (%d)", alt * 0.01, alt);
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
its_delta_latitude_fmt(gchar *s, guint32 v)
|
||||
{
|
||||
gint32 lat = (gint32)v;
|
||||
if (lat == 131072) {
|
||||
g_snprintf(s, ITEM_LABEL_LENGTH, "unavailable (%d)", lat);
|
||||
} else {
|
||||
g_snprintf(s, ITEM_LABEL_LENGTH, "%u°%u'%.3f\"%c (%d)",
|
||||
abs(lat) / 10000000,
|
||||
abs(lat) % 10000000 * 6 / 1000000,
|
||||
abs(lat) % 10000000 * 6 % 1000000 * 6.0 / 100000.0,
|
||||
(lat >= 0) ? 'N' : 'S',
|
||||
lat);
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
its_delta_longitude_fmt(gchar *s, guint32 v)
|
||||
{
|
||||
gint32 lng = (gint32)v;
|
||||
if (lng == 131072) {
|
||||
g_snprintf(s, ITEM_LABEL_LENGTH, "unavailable (%d)", lng);
|
||||
} else {
|
||||
g_snprintf(s, ITEM_LABEL_LENGTH, "%u°%u'%.3f\"%c (%d)",
|
||||
abs(lng) / 10000000,
|
||||
abs(lng) % 10000000 * 6 / 1000000,
|
||||
abs(lng) % 10000000 * 6 % 1000000 * 6.0 / 100000.0,
|
||||
(lng >= 0) ? 'E' : 'W',
|
||||
lng);
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
its_delta_altitude_fmt(gchar *s, guint32 v)
|
||||
{
|
||||
gint32 alt = (gint32)v;
|
||||
if (alt == 12800) {
|
||||
g_snprintf(s, ITEM_LABEL_LENGTH, "unavailable (%d)", alt);
|
||||
} else {
|
||||
g_snprintf(s, ITEM_LABEL_LENGTH, "%.2fm (%d)", alt * 0.01, alt);
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
its_path_delta_time_fmt(gchar *s, guint32 v)
|
||||
{
|
||||
gint32 dt = (gint32)v;
|
||||
g_snprintf(s, ITEM_LABEL_LENGTH, "%.2fs (%d)", dt * 0.01, dt);
|
||||
}
|
||||
|
||||
|
||||
static void
|
||||
its_sax_length_fmt(gchar *s, guint32 v)
|
||||
{
|
||||
if (v == 4095) {
|
||||
g_snprintf(s, ITEM_LABEL_LENGTH, "unavailable(%d)", v);
|
||||
g_snprintf(s, ITEM_LABEL_LENGTH, "unavailable (%d)", v);
|
||||
} else if (v == 4094) {
|
||||
g_snprintf(s, ITEM_LABEL_LENGTH, "outOfRange(%d)", v);
|
||||
g_snprintf(s, ITEM_LABEL_LENGTH, "outOfRange (%d)", v);
|
||||
} else {
|
||||
g_snprintf(s, ITEM_LABEL_LENGTH, "%.2fm (%d)", v * 0.01, v);
|
||||
}
|
||||
|
@ -418,7 +469,7 @@ its_heading_value_fmt(gchar *s, guint32 v)
|
|||
{
|
||||
const gchar *p = try_val_to_str(v, VALS(its_HeadingValue_vals));
|
||||
if (p) {
|
||||
g_snprintf(s, ITEM_LABEL_LENGTH, "%s(%d)", p, v);
|
||||
g_snprintf(s, ITEM_LABEL_LENGTH, "%s (%d)", p, v);
|
||||
} else {
|
||||
g_snprintf(s, ITEM_LABEL_LENGTH, "%.1f° (%d)", v * 0.1, v);
|
||||
}
|
||||
|
@ -428,9 +479,9 @@ static void
|
|||
its_heading_confidence_fmt(gchar *s, guint32 v)
|
||||
{
|
||||
if (v == 127) {
|
||||
g_snprintf(s, ITEM_LABEL_LENGTH, "unavailable(%d)", v);
|
||||
g_snprintf(s, ITEM_LABEL_LENGTH, "unavailable (%d)", v);
|
||||
} else if (v == 126) {
|
||||
g_snprintf(s, ITEM_LABEL_LENGTH, "outOfRange(%d)", v);
|
||||
g_snprintf(s, ITEM_LABEL_LENGTH, "outOfRange (%d)", v);
|
||||
} else {
|
||||
g_snprintf(s, ITEM_LABEL_LENGTH, "%.1f° (%d)", v * 0.1, v);
|
||||
}
|
||||
|
@ -440,9 +491,9 @@ static void
|
|||
its_speed_value_fmt(gchar *s, guint32 v)
|
||||
{
|
||||
if (v == 0) {
|
||||
g_snprintf(s, ITEM_LABEL_LENGTH, "standstill(%d)", v);
|
||||
g_snprintf(s, ITEM_LABEL_LENGTH, "standstill (%d)", v);
|
||||
} else if (v == 16383) {
|
||||
g_snprintf(s, ITEM_LABEL_LENGTH, "unavailable(%d)", v);
|
||||
g_snprintf(s, ITEM_LABEL_LENGTH, "unavailable (%d)", v);
|
||||
} else {
|
||||
double vms = v * 0.01;
|
||||
g_snprintf(s, ITEM_LABEL_LENGTH, "%.2fm/s = %.1fkm/h (%d)",
|
||||
|
@ -454,9 +505,9 @@ static void
|
|||
its_speed_confidence_fmt(gchar *s, guint32 v)
|
||||
{
|
||||
if (v == 127) {
|
||||
g_snprintf(s, ITEM_LABEL_LENGTH, "unavailable(%d)", v);
|
||||
g_snprintf(s, ITEM_LABEL_LENGTH, "unavailable (%d)", v);
|
||||
} else if (v == 126) {
|
||||
g_snprintf(s, ITEM_LABEL_LENGTH, "outOfRange(%d)", v);
|
||||
g_snprintf(s, ITEM_LABEL_LENGTH, "outOfRange (%d)", v);
|
||||
} else {
|
||||
g_snprintf(s, ITEM_LABEL_LENGTH, "%.2fm/s (%d)", v * 0.01, v);
|
||||
}
|
||||
|
@ -466,9 +517,9 @@ static void
|
|||
its_vehicle_length_value_fmt(gchar *s, guint32 v)
|
||||
{
|
||||
if (v == 1023) {
|
||||
g_snprintf(s, ITEM_LABEL_LENGTH, "unavailable(%d)", v);
|
||||
g_snprintf(s, ITEM_LABEL_LENGTH, "unavailable (%d)", v);
|
||||
} else if (v == 1022) {
|
||||
g_snprintf(s, ITEM_LABEL_LENGTH, "outOfRange(%d)", v);
|
||||
g_snprintf(s, ITEM_LABEL_LENGTH, "outOfRange (%d)", v);
|
||||
} else {
|
||||
g_snprintf(s, ITEM_LABEL_LENGTH, "%.1fm (%d)", v * 0.1, v);
|
||||
}
|
||||
|
@ -478,9 +529,9 @@ static void
|
|||
its_vehicle_width_fmt(gchar *s, guint32 v)
|
||||
{
|
||||
if (v == 62) {
|
||||
g_snprintf(s, ITEM_LABEL_LENGTH, "unavailable(%d)", v);
|
||||
g_snprintf(s, ITEM_LABEL_LENGTH, "unavailable (%d)", v);
|
||||
} else if (v == 61) {
|
||||
g_snprintf(s, ITEM_LABEL_LENGTH, "outOfRange(%d)", v);
|
||||
g_snprintf(s, ITEM_LABEL_LENGTH, "outOfRange (%d)", v);
|
||||
} else {
|
||||
g_snprintf(s, ITEM_LABEL_LENGTH, "%.1fm (%d)", v * 0.1, v);
|
||||
}
|
||||
|
@ -491,7 +542,7 @@ its_acceleration_value_fmt(gchar *s, guint32 v)
|
|||
{
|
||||
gint32 acc = (gint32)v;
|
||||
if (acc == 161) {
|
||||
g_snprintf(s, ITEM_LABEL_LENGTH, "unavailable(%d)", v);
|
||||
g_snprintf(s, ITEM_LABEL_LENGTH, "unavailable (%d)", v);
|
||||
} else {
|
||||
g_snprintf(s, ITEM_LABEL_LENGTH, "%.1fm/s² (%d)", acc * 0.1, acc);
|
||||
}
|
||||
|
@ -501,9 +552,9 @@ static void
|
|||
its_acceleration_confidence_fmt(gchar *s, guint32 v)
|
||||
{
|
||||
if (v == 102) {
|
||||
g_snprintf(s, ITEM_LABEL_LENGTH, "unavailable(%d)", v);
|
||||
g_snprintf(s, ITEM_LABEL_LENGTH, "unavailable (%d)", v);
|
||||
} else if (v == 101) {
|
||||
g_snprintf(s, ITEM_LABEL_LENGTH, "outOfRange(%d)", v);
|
||||
g_snprintf(s, ITEM_LABEL_LENGTH, "outOfRange (%d)", v);
|
||||
} else {
|
||||
g_snprintf(s, ITEM_LABEL_LENGTH, "%.1fm/s² (%d)", v * 0.1, v);
|
||||
}
|
||||
|
@ -514,9 +565,9 @@ its_curvature_value_fmt(gchar *s, guint32 v)
|
|||
{
|
||||
gint32 curv = (gint32)v;
|
||||
if (curv == 0) {
|
||||
g_snprintf(s, ITEM_LABEL_LENGTH, "straight(%d)", v);
|
||||
g_snprintf(s, ITEM_LABEL_LENGTH, "straight (%d)", v);
|
||||
} else if (curv == 30001) {
|
||||
g_snprintf(s, ITEM_LABEL_LENGTH, "unavailable(%d)", v);
|
||||
g_snprintf(s, ITEM_LABEL_LENGTH, "unavailable (%d)", v);
|
||||
} else {
|
||||
g_snprintf(s, ITEM_LABEL_LENGTH, "%.3fm %s (%d)",
|
||||
30000.0 / curv,
|
||||
|
@ -530,9 +581,9 @@ its_yaw_rate_value_fmt(gchar *s, guint32 v)
|
|||
{
|
||||
gint32 yaw = (gint32)v;
|
||||
if (yaw == 0) {
|
||||
g_snprintf(s, ITEM_LABEL_LENGTH, "straight(%d)", v);
|
||||
g_snprintf(s, ITEM_LABEL_LENGTH, "straight (%d)", v);
|
||||
} else if (yaw == 32767) {
|
||||
g_snprintf(s, ITEM_LABEL_LENGTH, "unavailable(%d)", v);
|
||||
g_snprintf(s, ITEM_LABEL_LENGTH, "unavailable (%d)", v);
|
||||
} else {
|
||||
g_snprintf(s, ITEM_LABEL_LENGTH, "%.2f°/s %s (%d)",
|
||||
yaw * 0.01,
|
||||
|
@ -546,9 +597,9 @@ its_swa_value_fmt(gchar *s, guint32 v)
|
|||
{
|
||||
gint32 swa = (gint32)v;
|
||||
if (swa == 0) {
|
||||
g_snprintf(s, ITEM_LABEL_LENGTH, "straight(%d)", v);
|
||||
g_snprintf(s, ITEM_LABEL_LENGTH, "straight (%d)", v);
|
||||
} else if (swa == 512) {
|
||||
g_snprintf(s, ITEM_LABEL_LENGTH, "unavailable(%d)", v);
|
||||
g_snprintf(s, ITEM_LABEL_LENGTH, "unavailable (%d)", v);
|
||||
} else {
|
||||
g_snprintf(s, ITEM_LABEL_LENGTH, "%.1f° %s (%d)",
|
||||
swa * 1.5,
|
||||
|
@ -561,9 +612,9 @@ static void
|
|||
its_swa_confidence_fmt(gchar *s, guint32 v)
|
||||
{
|
||||
if (v == 127) {
|
||||
g_snprintf(s, ITEM_LABEL_LENGTH, "unavailable(%d)", v);
|
||||
g_snprintf(s, ITEM_LABEL_LENGTH, "unavailable (%d)", v);
|
||||
} else if (v == 126) {
|
||||
g_snprintf(s, ITEM_LABEL_LENGTH, "outOfRange(%d)", v);
|
||||
g_snprintf(s, ITEM_LABEL_LENGTH, "outOfRange (%d)", v);
|
||||
} else {
|
||||
g_snprintf(s, ITEM_LABEL_LENGTH, "%.1f° (%d)", v * 1.5, v);
|
||||
}
|
||||
|
@ -573,7 +624,7 @@ static void
|
|||
dsrc_moi_fmt(gchar *s, guint32 v)
|
||||
{
|
||||
if (v == 527040) {
|
||||
g_snprintf(s, ITEM_LABEL_LENGTH, "invalid(%d)", v);
|
||||
g_snprintf(s, ITEM_LABEL_LENGTH, "invalid (%d)", v);
|
||||
} else {
|
||||
g_snprintf(s, ITEM_LABEL_LENGTH, "%ud %02u:%02u (%d)",
|
||||
v / 1440, v % 1440 / 60, v % 60, v);
|
||||
|
@ -584,9 +635,9 @@ static void
|
|||
dsrc_dsecond_fmt(gchar *s, guint32 v)
|
||||
{
|
||||
if (v == 65535) {
|
||||
g_snprintf(s, ITEM_LABEL_LENGTH, "unavailable(%d)", v);
|
||||
g_snprintf(s, ITEM_LABEL_LENGTH, "unavailable (%d)", v);
|
||||
} else if ((61000 <= v) && (v <= 65534)) {
|
||||
g_snprintf(s, ITEM_LABEL_LENGTH, "reserved(%d)", v);
|
||||
g_snprintf(s, ITEM_LABEL_LENGTH, "reserved (%d)", v);
|
||||
} else {
|
||||
g_snprintf(s, ITEM_LABEL_LENGTH, "%02u.%03u (%d)",
|
||||
v / 1000, v % 1000, v);
|
||||
|
@ -597,9 +648,9 @@ static void
|
|||
dsrc_time_mark_fmt(gchar *s, guint32 v)
|
||||
{
|
||||
if (v == 36001) {
|
||||
g_snprintf(s, ITEM_LABEL_LENGTH, "unknown(%d)", v);
|
||||
g_snprintf(s, ITEM_LABEL_LENGTH, "unknown (%d)", v);
|
||||
} else if (v == 36000) {
|
||||
g_snprintf(s, ITEM_LABEL_LENGTH, "moreThanHour(%d)", v);
|
||||
g_snprintf(s, ITEM_LABEL_LENGTH, "moreThanHour (%d)", v);
|
||||
} else {
|
||||
g_snprintf(s, ITEM_LABEL_LENGTH, "%02u:%02u.%u (%d)",
|
||||
v / 600, v % 600 / 10, v % 10, v);
|
||||
|
@ -630,7 +681,7 @@ static void
|
|||
dsrc_velocity_fmt(gchar *s, guint32 v)
|
||||
{
|
||||
if (v == 8191) {
|
||||
g_snprintf(s, ITEM_LABEL_LENGTH, "unavailable(%d)", v);
|
||||
g_snprintf(s, ITEM_LABEL_LENGTH, "unavailable (%d)", v);
|
||||
} else {
|
||||
double vms = v * 0.02;
|
||||
g_snprintf(s, ITEM_LABEL_LENGTH, "%.2fm/s = %ukm/h (%d)",
|
||||
|
@ -649,17 +700,103 @@ dsrc_delta_time_fmt(gchar *s, guint32 v)
|
|||
{
|
||||
gint32 dt = (gint32)v;
|
||||
if (dt == -122) {
|
||||
g_snprintf(s, ITEM_LABEL_LENGTH, "unknown(%d)", dt);
|
||||
g_snprintf(s, ITEM_LABEL_LENGTH, "unknown (%d)", dt);
|
||||
} else if (dt == -121) {
|
||||
g_snprintf(s, ITEM_LABEL_LENGTH, "moreThanMinus20Minutes(%d)", dt);
|
||||
g_snprintf(s, ITEM_LABEL_LENGTH, "moreThanMinus20Minutes (%d)", dt);
|
||||
} else if (dt == 121) {
|
||||
g_snprintf(s, ITEM_LABEL_LENGTH, "moreThanPlus20Minutes(%d)", dt);
|
||||
g_snprintf(s, ITEM_LABEL_LENGTH, "moreThanPlus20Minutes (%d)", dt);
|
||||
} else {
|
||||
g_snprintf(s, ITEM_LABEL_LENGTH, "%s%d:%02u (%d)",
|
||||
(dt < 0) ? "-" : "", abs(dt) / 6, abs(dt) % 6 * 10, dt);
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
cpm_general_confidence_fmt(gchar *s, guint32 v)
|
||||
{
|
||||
if (v == 0) {
|
||||
g_snprintf(s, ITEM_LABEL_LENGTH, "unknown (%u)", v);
|
||||
} else if (v == 101) {
|
||||
g_snprintf(s, ITEM_LABEL_LENGTH, "unavailable (%u)", v);
|
||||
} else {
|
||||
g_snprintf(s, ITEM_LABEL_LENGTH, "%u%% (%u)", v, v);
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
cpm_distance_value_fmt(gchar *s, guint32 v)
|
||||
{
|
||||
gint32 sv = (gint32)v;
|
||||
g_snprintf(s, ITEM_LABEL_LENGTH, "%.2fm (%d)", sv * 0.01, sv);
|
||||
}
|
||||
|
||||
static void
|
||||
cpm_distance_confidence_fmt(gchar *s, guint32 v)
|
||||
{
|
||||
if (v == 102) {
|
||||
g_snprintf(s, ITEM_LABEL_LENGTH, "unavailable (%d)", v);
|
||||
} else if (v == 101) {
|
||||
g_snprintf(s, ITEM_LABEL_LENGTH, "outOfRange (%d)", v);
|
||||
} else {
|
||||
g_snprintf(s, ITEM_LABEL_LENGTH, "%.2fm (%d)", v * 0.01, v);
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
cpm_speed_value_ext_fmt(gchar *s, guint32 v)
|
||||
{
|
||||
gint32 sv = (gint32)v;
|
||||
if (sv == 0) {
|
||||
g_snprintf(s, ITEM_LABEL_LENGTH, "standstill (%d)", sv);
|
||||
} else if (sv == 16383) {
|
||||
g_snprintf(s, ITEM_LABEL_LENGTH, "unavailable (%d)", sv);
|
||||
} else {
|
||||
double vms = sv * 0.01;
|
||||
g_snprintf(s, ITEM_LABEL_LENGTH, "%.2fm/s = %.1fkm/h (%d)",
|
||||
vms, vms * 3.6, sv);
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
cpm_cartesian_angle_value_fmt(gchar *s, guint32 v)
|
||||
{
|
||||
if (v == 3601) {
|
||||
g_snprintf(s, ITEM_LABEL_LENGTH, "unavailable (%d)", v);
|
||||
} else {
|
||||
g_snprintf(s, ITEM_LABEL_LENGTH, "%.1f° (%d)", v * 0.1, v);
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
cpm_angle_confidence_fmt(gchar *s, guint32 v)
|
||||
{
|
||||
if (v == 127) {
|
||||
g_snprintf(s, ITEM_LABEL_LENGTH, "unavailable (%d)", v);
|
||||
} else if (v == 126) {
|
||||
g_snprintf(s, ITEM_LABEL_LENGTH, "outOfRange (%d)", v);
|
||||
} else {
|
||||
g_snprintf(s, ITEM_LABEL_LENGTH, "%.1f° (%d)", v * 0.1, v);
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
cpm_object_dimension_value_fmt(gchar *s, guint32 v)
|
||||
{
|
||||
g_snprintf(s, ITEM_LABEL_LENGTH, "%.1fm (%d)", v * 0.1, v);
|
||||
}
|
||||
|
||||
static void
|
||||
cpm_object_dimension_confidence_fmt(gchar *s, guint32 v)
|
||||
{
|
||||
if (v == 102) {
|
||||
g_snprintf(s, ITEM_LABEL_LENGTH, "unavailable (%d)", v);
|
||||
} else if (v == 101) {
|
||||
g_snprintf(s, ITEM_LABEL_LENGTH, "outOfRange (%d)", v);
|
||||
} else {
|
||||
g_snprintf(s, ITEM_LABEL_LENGTH, "%.2fm (%d)", v * 0.01, v);
|
||||
}
|
||||
}
|
||||
|
||||
static int
|
||||
dissect_its_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data)
|
||||
{
|
||||
|
|
|
@ -2964,6 +2964,7 @@ void
|
|||
proto_register_geonw(void)
|
||||
{
|
||||
static const value_string bh_next_header_names[] = {
|
||||
{ 0, "ANY" },
|
||||
{ 1, "Common Header" },
|
||||
{ 2, "Secured Packet" },
|
||||
{ 0, NULL}
|
||||
|
@ -2978,6 +2979,7 @@ proto_register_geonw(void)
|
|||
};
|
||||
|
||||
static const value_string ch_next_header_names[] = {
|
||||
{ 0, "ANY" },
|
||||
{ CH_NH_BTP_A, "BTP-A Transport protocol" },
|
||||
{ CH_NH_BTP_B, "BTP-B Transport protocol" },
|
||||
{ CH_NH_IPV6, "IPv6 header" },
|
||||
|
|
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue