Commits (4)
......@@ -14,13 +14,13 @@ module LibItsCommon_ASN1_NamedNumbers {
const AccelerationConfidence AccelerationConfidence_outOfRange_ := 101;
const AccelerationConfidence AccelerationConfidence_unavailable_ := 102;
const AccelerationControl AccelerationControl_brakePedalEngaged_ := '0000000'B;
const AccelerationControl AccelerationControl_gasPedalEngaged_ := '0000001'B;
const AccelerationControl AccelerationControl_emergencyBrakeEngaged_ := '0000010'B;
const AccelerationControl AccelerationControl_collisionWarningEngaged_ := '0000011'B;
const AccelerationControl AccelerationControl_brakePedalEngaged_ := '1000000'B;
const AccelerationControl AccelerationControl_gasPedalEngaged_ := '0100000'B;
const AccelerationControl AccelerationControl_emergencyBrakeEngaged_ := '0010000'B;
const AccelerationControl AccelerationControl_collisionWarningEngaged_ := '0001000'B;
const AccelerationControl AccelerationControl_accEngaged_ := '0000100'B;
const AccelerationControl AccelerationControl_cruiseControlEngaged_ := '0000101'B;
const AccelerationControl AccelerationControl_speedLimiterEngaged_ := '0000110'B;
const AccelerationControl AccelerationControl_cruiseControlEngaged_ := '0000010'B;
const AccelerationControl AccelerationControl_speedLimiterEngaged_ := '0000001'B;
const AltitudeValue AltitudeValue_referenceEllipsoidSurface_ := 0;
const AltitudeValue AltitudeValue_oneCentimeter_ := 1;
......@@ -31,7 +31,7 @@ module LibItsCommon_ASN1_NamedNumbers {
const CurvatureValue CurvatureValue_reciprocalOf1MeterRadiusToLeft_ := 30000;
const CurvatureValue CurvatureValue_unavailable_ := 30001;
const ExteriorLights ExteriorLights_lowBeamHeadlightsOn_ := '00000000'B;
const ExteriorLights ExteriorLights_lowBeamHeadlightsOn_ := '10000000'B;
const ExteriorLights ExteriorLights_highBeamHeadlightsOn_ := '01000000'B;
const ExteriorLights ExteriorLights_leftTurnSignalOn_ := '00100000'B;
const ExteriorLights ExteriorLights_rightTurnSignalOn_ := '00010000'B;
......
......@@ -220,6 +220,7 @@ module LibItsGeoNetworking_Functions {
function f_cf02Up(in charstring p_mainUtComponent := c_compMTC, Scenario p_scenario := e_staticPosition) runs on ItsMtc /* TITAN TODO: mtc ItsMtc system ItsGeoNetworkingSystem */ {
// Variables
var LongPosVector v_longPosVectorIut := valueof(m_dummyLongPosVector);
var PositionTable v_positionTable := {};
var GeoAreaTable v_areaTable := {};
var ItsGeoNetworking v_component;
......@@ -261,7 +262,9 @@ module LibItsGeoNetworking_Functions {
}
// Positions & Areas
f_preparePositionsAndAreas(v_positionTable, v_areaTable);
vc_componentTable[0].gnComponent.start(f_getIutLongPosVector_1(v_longPosVectorIut)); // Get positions
vc_componentTable[0].gnComponent.done;
f_preparePositionsAndAreas(v_positionTable, v_areaTable, v_longPosVectorIut);
// Initialize components
for(i:=0; i < lengthof(vc_componentTable); i:=i+1) {
......@@ -317,6 +320,7 @@ module LibItsGeoNetworking_Functions {
function f_cf03Up(in charstring p_mainUtComponent := c_compMTC, Scenario p_scenario := e_staticPosition) runs on ItsMtc /* TITAN TODO: mtc ItsMtc system ItsGeoNetworkingSystem */ {
// Variables
var LongPosVector v_longPosVectorIut := valueof(m_dummyLongPosVector);
var PositionTable v_positionTable := {};
var GeoAreaTable v_areaTable := {};
var ItsGeoNetworking v_component;
......@@ -358,7 +362,9 @@ module LibItsGeoNetworking_Functions {
}
// Positions & Areas
f_preparePositionsAndAreas(v_positionTable, v_areaTable);
vc_componentTable[0].gnComponent.start(f_getIutLongPosVector_1(v_longPosVectorIut)); // Get positions
vc_componentTable[0].gnComponent.done;
f_preparePositionsAndAreas(v_positionTable, v_areaTable, v_longPosVectorIut);
// Initialize components
for(i:=0; i < lengthof(vc_componentTable); i:=i+1) {
......@@ -417,6 +423,7 @@ module LibItsGeoNetworking_Functions {
function f_cf04Up(in charstring p_mainUtComponent := c_compMTC, Scenario p_scenario := e_staticPosition) runs on ItsMtc /* TITAN TODO: mtc ItsMtc system ItsGeoNetworkingSystem */ {
// Variables
var LongPosVector v_longPosVectorIut := valueof(m_dummyLongPosVector);
var PositionTable v_positionTable := {};
var GeoAreaTable v_areaTable := {};
var ItsGeoNetworking v_component;
......@@ -458,7 +465,9 @@ module LibItsGeoNetworking_Functions {
}
// Positions & Areas
f_preparePositionsAndAreas(v_positionTable, v_areaTable);
vc_componentTable[0].gnComponent.start(f_getIutLongPosVector_1(v_longPosVectorIut)); // Get positions
vc_componentTable[0].gnComponent.done;
f_preparePositionsAndAreas(v_positionTable, v_areaTable, v_longPosVectorIut);
// Initialize components
for(i:=0; i < lengthof(vc_componentTable); i:=i+1) {
......@@ -513,6 +522,7 @@ module LibItsGeoNetworking_Functions {
function f_cf05Up(in charstring p_mainUtComponent := c_compMTC, Scenario p_scenario := e_staticPosition) runs on ItsMtc /* TITAN TODO: mtc ItsMtc system ItsGeoNetworkingSystem */ {
// Variables
var LongPosVector v_longPosVectorIut := valueof(m_dummyLongPosVector);
var PositionTable v_positionTable := {};
var GeoAreaTable v_areaTable := {};
var ItsGeoNetworking v_component;
......@@ -554,7 +564,9 @@ module LibItsGeoNetworking_Functions {
}
// Positions & Areas
f_preparePositionsAndAreas(v_positionTable, v_areaTable);
vc_componentTable[0].gnComponent.start(f_getIutLongPosVector_1(v_longPosVectorIut)); // Get positions
vc_componentTable[0].gnComponent.done;
f_preparePositionsAndAreas(v_positionTable, v_areaTable, v_longPosVectorIut);
// Initialize components
for(i:=0; i < lengthof(vc_componentTable); i:=i+1) {
......@@ -608,6 +620,7 @@ module LibItsGeoNetworking_Functions {
function f_cf06Up(in charstring p_mainUtComponent := c_compMTC, Scenario p_scenario := e_staticPosition) runs on ItsMtc /* TITAN TODO: mtc ItsMtc system ItsGeoNetworkingSystem */ {
// Variables
var LongPosVector v_longPosVectorIut := valueof(m_dummyLongPosVector);
var PositionTable v_positionTable := {};
var GeoAreaTable v_areaTable := {};
var ItsGeoNetworking v_component;
......@@ -649,7 +662,9 @@ module LibItsGeoNetworking_Functions {
}
// Positions & Areas
f_preparePositionsAndAreas(v_positionTable, v_areaTable);
vc_componentTable[0].gnComponent.start(f_getIutLongPosVector_1(v_longPosVectorIut)); // Get positions
vc_componentTable[0].gnComponent.done;
f_preparePositionsAndAreas(v_positionTable, v_areaTable, v_longPosVectorIut);
// Initialize components
for(i:=0; i < lengthof(vc_componentTable); i:=i+1) {
......@@ -703,6 +718,7 @@ module LibItsGeoNetworking_Functions {
function f_cf07Up(in charstring p_mainUtComponent := c_compMTC, Scenario p_scenario := e_staticPosition) runs on ItsMtc /* TITAN TODO mtc ItsMtc system ItsGeoNetworkingSystem */{
// Variables
var LongPosVector v_longPosVectorIut := valueof(m_dummyLongPosVector);
var PositionTable v_positionTable := {};
var GeoAreaTable v_areaTable := {};
var ItsGeoNetworking v_component;
......@@ -744,7 +760,9 @@ module LibItsGeoNetworking_Functions {
}
// Positions & Areas
f_preparePositionsAndAreas(v_positionTable, v_areaTable);
vc_componentTable[0].gnComponent.start(f_getIutLongPosVector_1(v_longPosVectorIut)); // Get positions
vc_componentTable[0].gnComponent.done;
f_preparePositionsAndAreas(v_positionTable, v_areaTable, v_longPosVectorIut);
// Initialize components
for(i:=0; i < lengthof(vc_componentTable); i:=i+1) {
......@@ -781,7 +799,7 @@ module LibItsGeoNetworking_Functions {
unmap(self:utPort, system:utPort);
disconnect(self:syncPort, mtc:syncPort);
} // end f_cf0yDown
} // end f_cf07Down
/**
* @desc Behavior function for initializing component's variables and tables
......@@ -898,13 +916,18 @@ module LibItsGeoNetworking_Functions {
*/
function f_preparePositionsAndAreas(
inout PositionTable p_positionTable,
inout GeoAreaTable p_areaTable
inout GeoAreaTable p_areaTable,
in template (omit) LongPosVector p_longPosVectorIut := omit
) runs on ItsBaseGeoNetworking {
var LongPosVector v_longPosVectorIut, v_longPosVectorNodeA, v_longPosVectorNodeB, v_longPosVectorNodeC, v_longPosVectorNodeD, v_longPosVectorNodeE, v_longPosVectorNodeF;
// Get positions
if (not(ispresent(p_longPosVectorIut))) {
v_longPosVectorIut := f_getIutLongPosVector();
} else {
v_longPosVectorIut := valueof(p_longPosVectorIut);
}
v_longPosVectorNodeA := f_computePosition(v_longPosVectorIut, c_longitudeFactorNodeA, c_latitudeFactorNodeA);
v_longPosVectorNodeB := f_computePosition(v_longPosVectorIut, c_longitudeFactorNodeB, c_latitudeFactorNodeB);
v_longPosVectorNodeC := f_computePosition(v_longPosVectorIut, c_longitudeFactorNodeC, c_latitudeFactorNodeC);
......@@ -2492,6 +2515,9 @@ module LibItsGeoNetworking_Functions {
function f_getIutLongPosVector() runs on ItsBaseGeoNetworking return LongPosVector {
return f_acGetLongPosVector(f_getIutGnLocalAddress());
}
function f_getIutLongPosVector_1(inout LongPosVector p_longPosVectorIut) runs on ItsGeoNetworking {
p_longPosVectorIut := f_acGetLongPosVector(f_getIutGnLocalAddress());
}
/**
* @desc Get IUT's short position vector
......
......@@ -993,7 +993,7 @@ module LibItsGeoNetworking_Templates {
p_sourceLongPosVec,
p_seqNumber
),
payload := ?
payload := *
}
/**
......