Loading ttcn/BTP/LibItsBtp_Functions.ttcn +4 −4 Original line number Original line Diff line number Diff line Loading @@ -53,15 +53,15 @@ altstep a_default() runs on ItsNt { altstep a_default() runs on ItsNt { [] btpPort.receive { [] btpPort.receive { log("*** a_default: Received an unexpected message ***"); log("*** a_default: ERROR: Received an unexpected message ***"); f_selfOrClientSyncAndVerdict("error", e_error); f_selfOrClientSyncAndVerdict("error", e_error); } } [] tc_wait.timeout { [] tc_wait.timeout { log("*** a_default: Timeout while awaiting reaction of the IUT prior to Upper Tester action ***"); log("*** a_default: INCONC: Timeout while awaiting reaction of the IUT prior to Upper Tester action ***"); f_selfOrClientSyncAndVerdict("error", e_timeout); f_selfOrClientSyncAndVerdict("error", e_timeout); } } [] tc_ac.timeout { [] tc_ac.timeout { log("*** a_default: Timeout while awaiting the reception of a message ***"); log("*** a_default: INCONC: Timeout while awaiting the reception of a message ***"); f_selfOrClientSyncAndVerdict("error", e_timeout); f_selfOrClientSyncAndVerdict("error", e_timeout); } } [] a_shutdown() { [] a_shutdown() { Loading Loading @@ -128,7 +128,7 @@ * @desc Gets a unknown BTP destination port of the IUT. * @desc Gets a unknown BTP destination port of the IUT. * @return * @return */ */ function f_getBtpDstPort_Unknown() return BtpPortId { function f_getBtpUnknownDstPort() return BtpPortId { return PX_UNKNOWN_DESTINATION_PORT; return PX_UNKNOWN_DESTINATION_PORT; } } Loading ttcn/BTP/LibItsBtp_Templates.ttcn +4 −4 Original line number Original line Diff line number Diff line Loading @@ -19,7 +19,7 @@ module LibItsBtp_Templates { * @desc Send template for BTP packet (BtpPort Primitive) * @desc Send template for BTP packet (BtpPort Primitive) * @param p_btpPkt BTP Packet to be sent * @param p_btpPkt BTP Packet to be sent */ */ template (value) BtpReq m_geoNwReq( template (value) BtpReq m_btpReq( template (value) BtpPacket p_btpPkt template (value) BtpPacket p_btpPkt ) := { ) := { msgOut := p_btpPkt msgOut := p_btpPkt Loading @@ -29,7 +29,7 @@ module LibItsBtp_Templates { * @desc Receive template for BTP packet (BtpPort Primitive) * @desc Receive template for BTP packet (BtpPort Primitive) * @param p_btpPkt BTP Packet to be received * @param p_btpPkt BTP Packet to be received */ */ template BtpInd mw_geoNwInd( template BtpInd mw_btpInd( template (present) BtpPacket p_btpPkt template (present) BtpPacket p_btpPkt ) := { ) := { msgIn := p_btpPkt msgIn := p_btpPkt Loading @@ -50,7 +50,7 @@ module LibItsBtp_Templates { * @param p_destPort The destination port * @param p_destPort The destination port * @param p_srcPort The source port * @param p_srcPort The source port */ */ template (value) UtEvent m_generateBtpAPacket(in BtpPortId p_destPort, in BtpPortId p_srcPort) := { template (value) UtEvent m_generateBtpA(in BtpPortId p_destPort, in BtpPortId p_srcPort) := { utBtpEvent := { utBtpEvent := { btpA := { btpA := { destinationPort := p_destPort, destinationPort := p_destPort, Loading @@ -64,7 +64,7 @@ module LibItsBtp_Templates { * @param p_destPort The destination port * @param p_destPort The destination port * @param p_destPortInfo The destination port information * @param p_destPortInfo The destination port information */ */ template (value) UtEvent m_generateBtpBPacket(in BtpPortId p_destPort, in BtpPortInfo p_destPortInfo) := { template (value) UtEvent m_generateBtpB(in BtpPortId p_destPort, in BtpPortInfo p_destPortInfo) := { utBtpEvent := { utBtpEvent := { btpB := { btpB := { destinationPort := p_destPort, destinationPort := p_destPort, Loading ttcn/CAM/LibItsCam_Functions.ttcn +5 −85 Original line number Original line Diff line number Diff line Loading @@ -58,15 +58,15 @@ module LibItsCam_Functions { altstep a_default() runs on ItsFa { altstep a_default() runs on ItsFa { [] camPort.receive(mw_camInd ( mw_camMsg_any )){ [] camPort.receive(mw_camInd ( mw_camMsg_any )){ log("*** a_basicDefault: CAM message received in default ***"); log("*** a_default: ERROR: CAM message received in default ***"); f_selfOrClientSyncAndVerdict("error", e_error); f_selfOrClientSyncAndVerdict("error", e_error); } } [] camPort.receive { [] camPort.receive { log("*** a_basicDefault: event received on CAM port in default ***"); log("*** a_default: ERROR: event received on CAM port in default ***"); f_selfOrClientSyncAndVerdict("error", e_error); f_selfOrClientSyncAndVerdict("error", e_error); } } [] any timer.timeout { [] any timer.timeout { log("*** a_basicDefault: a timer expired in default ***"); log("*** a_default: INCONC: a timer expired in default ***"); f_selfOrClientSyncAndVerdict("error", e_timeout); f_selfOrClientSyncAndVerdict("error", e_timeout); } } [] a_shutdown() { [] a_shutdown() { Loading Loading @@ -131,87 +131,6 @@ module LibItsCam_Functions { } // end group otherFunctions } // end group otherFunctions // group upperTester { // // /** // * @desc Requests to bring the IUT in an initial state // */ // function f_utInitializeIut() runs on ItsFa { // // utPort.send(UtCamInitialize:{}); // tc_wait.start; // alt { // [] utPort.receive(UtCamResult:true) { // tc_wait.stop; // log("*** f_utInitializeIut: IUT initialized ***"); // } // [] utPort.receive { // tc_wait.stop; // f_selfOrClientSyncAndVerdict("error", e_error, "*** f_utInitializeIut: IUT could not be initialized ***"); // } // [] tc_wait.timeout { // f_selfOrClientSyncAndVerdict("error", e_timeout, "*** f_utInitializeIut: IUT could not be initialized in time ***"); // } // } // // } // // /** // * @desc Triggers event from the application layer // * @param p_event The event to trigger. // */ // function f_utTriggerEvent(template (value) UtCamEvent p_event) runs on ItsFa return FncRetCode { // var FncRetCode v_ret := e_success; // var template (value) UtCamTrigger v_utMsg := { p_event }; // // utPort.send(v_utMsg); // // return v_ret; // } // // /** // * @desc Checks that the event was indicated at the application layer // * @param p_event The event to check. // * @param p_discard The event should not appear. Default value: FALSE. // */ // function f_utCheckEvent(template (value) CamPdu p_event, boolean p_discard := false) runs on ItsFa { // var template (value) UtCamCheck v_utMsg := { p_event }; // // utPort.send(v_utMsg); // tc_wait.start; // alt { // [] utPort.receive(UtCamResult:true) { // tc_wait.stop; // if (p_discard == false) { // log("*** f_utCheckEvent: Event correctly indicated at application layer ***"); // } // else { // f_selfOrClientSyncAndVerdict("error", e_error, "*** f_utCheckEvent: Event indicated at application layer where it should be discarded ***"); // } // } // [] utPort.receive { // tc_wait.stop; // if (p_discard == false) { // f_selfOrClientSyncAndVerdict("error", e_error, "*** f_utCheckEvent: Event not correctly indicated at application layer ***"); // } // else { // log("*** f_utCheckEvent: Another event indicated at application layer, repeating check ***"); // repeat; // } // } // [] tc_wait.timeout { // if (p_discard == false) { // f_selfOrClientSyncAndVerdict("error", e_timeout, "*** f_utCheckEvent: Timeout while waiting for event check result ***"); // } // else { // log("*** f_utCheckEvent: Event not indicated at application layer ***"); // } // } // } // } // // } // end group upperTester // group getIutFunctions { group getIutFunctions { /** /** Loading @@ -232,6 +151,7 @@ module LibItsCam_Functions { } // end getIutFunctions } // end getIutFunctions group getTesterFunctions { group getTesterFunctions { /** /** * @desc Gets tester's station characteristics * @desc Gets tester's station characteristics * @return Station characteristics * @return Station characteristics Loading ttcn/CAM/LibItsCam_Templates.ttcn +8 −8 Original line number Original line Diff line number Diff line Loading @@ -14,7 +14,7 @@ module LibItsCam_Templates { import from DENM_PDU_Descriptions language "ASN.1:1997" all; import from DENM_PDU_Descriptions language "ASN.1:1997" all; import from LibItsCommon_TypesAndValues all; import from LibItsCommon_TypesAndValues all; group Primitives { group camPrimitives { /** /** * @desc Send template for CAM Message (CamPort Primitive) * @desc Send template for CAM Message (CamPort Primitive) Loading @@ -36,7 +36,7 @@ module LibItsCam_Templates { msgOut := p_camMsg msgOut := p_camMsg }; }; group utPrimitives { group camUtPrimitives { /** /** * @desc Initializes the CAM IUT. * @desc Initializes the CAM IUT. Loading Loading @@ -220,7 +220,7 @@ module LibItsCam_Templates { * @desc Checks the receive of a message at LDM * @desc Checks the receive of a message at LDM * @param p_message The CAM message to check * @param p_message The CAM message to check */ */ template (value) UtEvent m_checkLDM(CamPdu p_message) := { template (value) UtEvent m_checkLdm(CamPdu p_message) := { utCamEvent := { utCamEvent := { checkLdm := p_message checkLdm := p_message } } Loading Loading @@ -291,7 +291,7 @@ module LibItsCam_Templates { * @desc Receive template for CAM PDU for road-side unit * @desc Receive template for CAM PDU for road-side unit * @see mw_camMsg_any * @see mw_camMsg_any */ */ template CamPdu mw_camMsg_basicIRS template CamPdu mw_camMsg_basicIrs modifies mw_camMsg_any := { modifies mw_camMsg_any := { cam := { cam := { stationCharacteristics := {false, false, false}, stationCharacteristics := {false, false, false}, Loading @@ -311,13 +311,13 @@ module LibItsCam_Templates { /** /** * @desc Send template for CAM PDU * @desc Send template for CAM PDU * @param p_generationTime Timestamp of the generated message * @param p_generationTime Timestamp of the generated message * @param p_stationID Station ID of the source * @param p_stationId Station ID of the source * @param p_stationCharacteristics Characteristics of the sending station * @param p_stationCharacteristics Characteristics of the sending station * @param p_referencePosition Position of the sending station * @param p_referencePosition Position of the sending station */ */ template (value) CamPdu m_camMsg_valid( template (value) CamPdu m_camMsg_valid( TimeStamp p_generationTime, TimeStamp p_generationTime, StationID p_stationID, StationID p_stationId, CoopAwareness.stationCharacteristics p_stationCharacteristics, CoopAwareness.stationCharacteristics p_stationCharacteristics, template (value) ReferencePosition p_referencePosition template (value) ReferencePosition p_referencePosition ) := { ) := { Loading @@ -327,7 +327,7 @@ module LibItsCam_Templates { generationTime := p_generationTime generationTime := p_generationTime }, }, cam := { cam := { stationID := p_stationID, stationID := p_stationId, stationCharacteristics := p_stationCharacteristics, stationCharacteristics := p_stationCharacteristics, referencePosition := p_referencePosition, referencePosition := p_referencePosition, camParameters := omit camParameters := omit Loading Loading @@ -389,7 +389,7 @@ module LibItsCam_Templates { } } }; }; group exteriorLights { group camExteriorLightsTemplates { /** /** * @desc Receive template for exterior lights with low beam lights off * @desc Receive template for exterior lights with low beam lights off Loading ttcn/CAM/LibItsCam_TypesAndValues.ttcn +1 −1 Original line number Original line Diff line number Diff line Loading @@ -46,7 +46,7 @@ module LibItsCam_TypesAndValues { const ExteriorLights c_automaticLightControlOn := '00001000'B; const ExteriorLights c_automaticLightControlOn := '00001000'B; const ExteriorLights c_rightTurnSignalOn := '00010000'B; const ExteriorLights c_rightTurnSignalOn := '00010000'B; const ExteriorLights c_leftTurnSignalOn := '00100000'B; const ExteriorLights c_leftTurnSignalOn := '00100000'B; const ExteriorLights c_HazardConditionsOn := '00110000'B; const ExteriorLights c_hazardConditionsOn := '00110000'B; const ExteriorLights c_lowBeamHeadlightsOn := '10000000'B; const ExteriorLights c_lowBeamHeadlightsOn := '10000000'B; const ExteriorLights c_fogLightOn := '00000010'B; const ExteriorLights c_fogLightOn := '00000010'B; const ExteriorLights c_parkingLightsOn := '00000001'B; const ExteriorLights c_parkingLightsOn := '00000001'B; Loading Loading
ttcn/BTP/LibItsBtp_Functions.ttcn +4 −4 Original line number Original line Diff line number Diff line Loading @@ -53,15 +53,15 @@ altstep a_default() runs on ItsNt { altstep a_default() runs on ItsNt { [] btpPort.receive { [] btpPort.receive { log("*** a_default: Received an unexpected message ***"); log("*** a_default: ERROR: Received an unexpected message ***"); f_selfOrClientSyncAndVerdict("error", e_error); f_selfOrClientSyncAndVerdict("error", e_error); } } [] tc_wait.timeout { [] tc_wait.timeout { log("*** a_default: Timeout while awaiting reaction of the IUT prior to Upper Tester action ***"); log("*** a_default: INCONC: Timeout while awaiting reaction of the IUT prior to Upper Tester action ***"); f_selfOrClientSyncAndVerdict("error", e_timeout); f_selfOrClientSyncAndVerdict("error", e_timeout); } } [] tc_ac.timeout { [] tc_ac.timeout { log("*** a_default: Timeout while awaiting the reception of a message ***"); log("*** a_default: INCONC: Timeout while awaiting the reception of a message ***"); f_selfOrClientSyncAndVerdict("error", e_timeout); f_selfOrClientSyncAndVerdict("error", e_timeout); } } [] a_shutdown() { [] a_shutdown() { Loading Loading @@ -128,7 +128,7 @@ * @desc Gets a unknown BTP destination port of the IUT. * @desc Gets a unknown BTP destination port of the IUT. * @return * @return */ */ function f_getBtpDstPort_Unknown() return BtpPortId { function f_getBtpUnknownDstPort() return BtpPortId { return PX_UNKNOWN_DESTINATION_PORT; return PX_UNKNOWN_DESTINATION_PORT; } } Loading
ttcn/BTP/LibItsBtp_Templates.ttcn +4 −4 Original line number Original line Diff line number Diff line Loading @@ -19,7 +19,7 @@ module LibItsBtp_Templates { * @desc Send template for BTP packet (BtpPort Primitive) * @desc Send template for BTP packet (BtpPort Primitive) * @param p_btpPkt BTP Packet to be sent * @param p_btpPkt BTP Packet to be sent */ */ template (value) BtpReq m_geoNwReq( template (value) BtpReq m_btpReq( template (value) BtpPacket p_btpPkt template (value) BtpPacket p_btpPkt ) := { ) := { msgOut := p_btpPkt msgOut := p_btpPkt Loading @@ -29,7 +29,7 @@ module LibItsBtp_Templates { * @desc Receive template for BTP packet (BtpPort Primitive) * @desc Receive template for BTP packet (BtpPort Primitive) * @param p_btpPkt BTP Packet to be received * @param p_btpPkt BTP Packet to be received */ */ template BtpInd mw_geoNwInd( template BtpInd mw_btpInd( template (present) BtpPacket p_btpPkt template (present) BtpPacket p_btpPkt ) := { ) := { msgIn := p_btpPkt msgIn := p_btpPkt Loading @@ -50,7 +50,7 @@ module LibItsBtp_Templates { * @param p_destPort The destination port * @param p_destPort The destination port * @param p_srcPort The source port * @param p_srcPort The source port */ */ template (value) UtEvent m_generateBtpAPacket(in BtpPortId p_destPort, in BtpPortId p_srcPort) := { template (value) UtEvent m_generateBtpA(in BtpPortId p_destPort, in BtpPortId p_srcPort) := { utBtpEvent := { utBtpEvent := { btpA := { btpA := { destinationPort := p_destPort, destinationPort := p_destPort, Loading @@ -64,7 +64,7 @@ module LibItsBtp_Templates { * @param p_destPort The destination port * @param p_destPort The destination port * @param p_destPortInfo The destination port information * @param p_destPortInfo The destination port information */ */ template (value) UtEvent m_generateBtpBPacket(in BtpPortId p_destPort, in BtpPortInfo p_destPortInfo) := { template (value) UtEvent m_generateBtpB(in BtpPortId p_destPort, in BtpPortInfo p_destPortInfo) := { utBtpEvent := { utBtpEvent := { btpB := { btpB := { destinationPort := p_destPort, destinationPort := p_destPort, Loading
ttcn/CAM/LibItsCam_Functions.ttcn +5 −85 Original line number Original line Diff line number Diff line Loading @@ -58,15 +58,15 @@ module LibItsCam_Functions { altstep a_default() runs on ItsFa { altstep a_default() runs on ItsFa { [] camPort.receive(mw_camInd ( mw_camMsg_any )){ [] camPort.receive(mw_camInd ( mw_camMsg_any )){ log("*** a_basicDefault: CAM message received in default ***"); log("*** a_default: ERROR: CAM message received in default ***"); f_selfOrClientSyncAndVerdict("error", e_error); f_selfOrClientSyncAndVerdict("error", e_error); } } [] camPort.receive { [] camPort.receive { log("*** a_basicDefault: event received on CAM port in default ***"); log("*** a_default: ERROR: event received on CAM port in default ***"); f_selfOrClientSyncAndVerdict("error", e_error); f_selfOrClientSyncAndVerdict("error", e_error); } } [] any timer.timeout { [] any timer.timeout { log("*** a_basicDefault: a timer expired in default ***"); log("*** a_default: INCONC: a timer expired in default ***"); f_selfOrClientSyncAndVerdict("error", e_timeout); f_selfOrClientSyncAndVerdict("error", e_timeout); } } [] a_shutdown() { [] a_shutdown() { Loading Loading @@ -131,87 +131,6 @@ module LibItsCam_Functions { } // end group otherFunctions } // end group otherFunctions // group upperTester { // // /** // * @desc Requests to bring the IUT in an initial state // */ // function f_utInitializeIut() runs on ItsFa { // // utPort.send(UtCamInitialize:{}); // tc_wait.start; // alt { // [] utPort.receive(UtCamResult:true) { // tc_wait.stop; // log("*** f_utInitializeIut: IUT initialized ***"); // } // [] utPort.receive { // tc_wait.stop; // f_selfOrClientSyncAndVerdict("error", e_error, "*** f_utInitializeIut: IUT could not be initialized ***"); // } // [] tc_wait.timeout { // f_selfOrClientSyncAndVerdict("error", e_timeout, "*** f_utInitializeIut: IUT could not be initialized in time ***"); // } // } // // } // // /** // * @desc Triggers event from the application layer // * @param p_event The event to trigger. // */ // function f_utTriggerEvent(template (value) UtCamEvent p_event) runs on ItsFa return FncRetCode { // var FncRetCode v_ret := e_success; // var template (value) UtCamTrigger v_utMsg := { p_event }; // // utPort.send(v_utMsg); // // return v_ret; // } // // /** // * @desc Checks that the event was indicated at the application layer // * @param p_event The event to check. // * @param p_discard The event should not appear. Default value: FALSE. // */ // function f_utCheckEvent(template (value) CamPdu p_event, boolean p_discard := false) runs on ItsFa { // var template (value) UtCamCheck v_utMsg := { p_event }; // // utPort.send(v_utMsg); // tc_wait.start; // alt { // [] utPort.receive(UtCamResult:true) { // tc_wait.stop; // if (p_discard == false) { // log("*** f_utCheckEvent: Event correctly indicated at application layer ***"); // } // else { // f_selfOrClientSyncAndVerdict("error", e_error, "*** f_utCheckEvent: Event indicated at application layer where it should be discarded ***"); // } // } // [] utPort.receive { // tc_wait.stop; // if (p_discard == false) { // f_selfOrClientSyncAndVerdict("error", e_error, "*** f_utCheckEvent: Event not correctly indicated at application layer ***"); // } // else { // log("*** f_utCheckEvent: Another event indicated at application layer, repeating check ***"); // repeat; // } // } // [] tc_wait.timeout { // if (p_discard == false) { // f_selfOrClientSyncAndVerdict("error", e_timeout, "*** f_utCheckEvent: Timeout while waiting for event check result ***"); // } // else { // log("*** f_utCheckEvent: Event not indicated at application layer ***"); // } // } // } // } // // } // end group upperTester // group getIutFunctions { group getIutFunctions { /** /** Loading @@ -232,6 +151,7 @@ module LibItsCam_Functions { } // end getIutFunctions } // end getIutFunctions group getTesterFunctions { group getTesterFunctions { /** /** * @desc Gets tester's station characteristics * @desc Gets tester's station characteristics * @return Station characteristics * @return Station characteristics Loading
ttcn/CAM/LibItsCam_Templates.ttcn +8 −8 Original line number Original line Diff line number Diff line Loading @@ -14,7 +14,7 @@ module LibItsCam_Templates { import from DENM_PDU_Descriptions language "ASN.1:1997" all; import from DENM_PDU_Descriptions language "ASN.1:1997" all; import from LibItsCommon_TypesAndValues all; import from LibItsCommon_TypesAndValues all; group Primitives { group camPrimitives { /** /** * @desc Send template for CAM Message (CamPort Primitive) * @desc Send template for CAM Message (CamPort Primitive) Loading @@ -36,7 +36,7 @@ module LibItsCam_Templates { msgOut := p_camMsg msgOut := p_camMsg }; }; group utPrimitives { group camUtPrimitives { /** /** * @desc Initializes the CAM IUT. * @desc Initializes the CAM IUT. Loading Loading @@ -220,7 +220,7 @@ module LibItsCam_Templates { * @desc Checks the receive of a message at LDM * @desc Checks the receive of a message at LDM * @param p_message The CAM message to check * @param p_message The CAM message to check */ */ template (value) UtEvent m_checkLDM(CamPdu p_message) := { template (value) UtEvent m_checkLdm(CamPdu p_message) := { utCamEvent := { utCamEvent := { checkLdm := p_message checkLdm := p_message } } Loading Loading @@ -291,7 +291,7 @@ module LibItsCam_Templates { * @desc Receive template for CAM PDU for road-side unit * @desc Receive template for CAM PDU for road-side unit * @see mw_camMsg_any * @see mw_camMsg_any */ */ template CamPdu mw_camMsg_basicIRS template CamPdu mw_camMsg_basicIrs modifies mw_camMsg_any := { modifies mw_camMsg_any := { cam := { cam := { stationCharacteristics := {false, false, false}, stationCharacteristics := {false, false, false}, Loading @@ -311,13 +311,13 @@ module LibItsCam_Templates { /** /** * @desc Send template for CAM PDU * @desc Send template for CAM PDU * @param p_generationTime Timestamp of the generated message * @param p_generationTime Timestamp of the generated message * @param p_stationID Station ID of the source * @param p_stationId Station ID of the source * @param p_stationCharacteristics Characteristics of the sending station * @param p_stationCharacteristics Characteristics of the sending station * @param p_referencePosition Position of the sending station * @param p_referencePosition Position of the sending station */ */ template (value) CamPdu m_camMsg_valid( template (value) CamPdu m_camMsg_valid( TimeStamp p_generationTime, TimeStamp p_generationTime, StationID p_stationID, StationID p_stationId, CoopAwareness.stationCharacteristics p_stationCharacteristics, CoopAwareness.stationCharacteristics p_stationCharacteristics, template (value) ReferencePosition p_referencePosition template (value) ReferencePosition p_referencePosition ) := { ) := { Loading @@ -327,7 +327,7 @@ module LibItsCam_Templates { generationTime := p_generationTime generationTime := p_generationTime }, }, cam := { cam := { stationID := p_stationID, stationID := p_stationId, stationCharacteristics := p_stationCharacteristics, stationCharacteristics := p_stationCharacteristics, referencePosition := p_referencePosition, referencePosition := p_referencePosition, camParameters := omit camParameters := omit Loading Loading @@ -389,7 +389,7 @@ module LibItsCam_Templates { } } }; }; group exteriorLights { group camExteriorLightsTemplates { /** /** * @desc Receive template for exterior lights with low beam lights off * @desc Receive template for exterior lights with low beam lights off Loading
ttcn/CAM/LibItsCam_TypesAndValues.ttcn +1 −1 Original line number Original line Diff line number Diff line Loading @@ -46,7 +46,7 @@ module LibItsCam_TypesAndValues { const ExteriorLights c_automaticLightControlOn := '00001000'B; const ExteriorLights c_automaticLightControlOn := '00001000'B; const ExteriorLights c_rightTurnSignalOn := '00010000'B; const ExteriorLights c_rightTurnSignalOn := '00010000'B; const ExteriorLights c_leftTurnSignalOn := '00100000'B; const ExteriorLights c_leftTurnSignalOn := '00100000'B; const ExteriorLights c_HazardConditionsOn := '00110000'B; const ExteriorLights c_hazardConditionsOn := '00110000'B; const ExteriorLights c_lowBeamHeadlightsOn := '10000000'B; const ExteriorLights c_lowBeamHeadlightsOn := '10000000'B; const ExteriorLights c_fogLightOn := '00000010'B; const ExteriorLights c_fogLightOn := '00000010'B; const ExteriorLights c_parkingLightsOn := '00000001'B; const ExteriorLights c_parkingLightsOn := '00000001'B; Loading