LibItsCam_Templates.ttcn 4.75 KB
Newer Older
/**
 *	@author 	ETSI / STF405
berge's avatar
berge committed
 *  @version 	$URL$
 *				$Id$
 *	@desc		Module containing base template definitions for CAM
 *
 */
module LibItsCam_Templates {

    import from LibIts_Interface all;    
fischer's avatar
fischer committed
	import from LibItsCam_Pixits all;
fischer's avatar
fischer committed
	import from CAM_PDU_Descriptions language "ASN.1:1997" all;
berge's avatar
berge committed
	import from DENM_PDU_Descriptions language "ASN.1:1997" all;
fischer's avatar
fischer committed
    

	template CamInd mw_camInd (in template (present) CamPdu p_camMsg) := { msgIn := p_camMsg };
	template CamReq m_camReq (in template (value) CamPdu p_camMsg) := { msgOut := p_camMsg };
fischer's avatar
fischer committed
	
	template CamPdu mw_camMsg_any := {
		header := {
		    protocolVersion := 0, 
		    messageID := 0, 
		    generationTime := ?
		    },
		cam := {
			stationID := ?,
			stationCharacteristics := ?,
			referencePosition := ?,
			camParameters := *
		}
	}

    template CamPdu mw_camMsg_anyVehicle modifies mw_camMsg_any := {
		cam := {
			stationCharacteristics := {?, ?, ?},
			camParameters := {
					vehicleCommonParameters := {
						vehicleType := ?,
						stationLength := ?,
						stationLengthConfidence := *,
						stationWidth := ?,
						stationWidthConfidence := *,
						vehicleSpeed := ?,
						vehicleSpeedConfidence := ?,
						longAcceleration := ?,
						longAccelerationConfidence := ?,
						accelerationControl := ?,
						yawRate := ?,
						yawRateConfidence := ?,
						exteriorLights := ?,
						turnAdvice := *,
						distanceToStopLine := *,
						occupancy := *,
						doorOpen := *,
						posConfidenceEllipse := ?,
						curvature := ?,
fischer's avatar
fischer committed
						curvatureChange := *,
						curvatureConfidence := ?,
						crashStatus := *,
						headingConfidence := ?,
						dangerousGoods := *
					},
					profileDependent := *
			}
		}
	}
fischer's avatar
fischer committed
    
	template CamPdu mw_camMsg_basicIRS modifies mw_camMsg_any := {
		cam := {
			stationCharacteristics := {false, false, false},
			referencePosition := {
				longitude := ?,
				latitude := ?,
				elevation := ?,
				heading := omit,
				streetName := *,
				positionConfidence := omit,
				elevationConfidence := omit,
				roadSegmentID := *
			}
fischer's avatar
fischer committed

fischer's avatar
fischer committed
	template CamPdu m_camMsg_valid(	TimeStamp p_generationTime, 
    								StationID p_stationID,
    								CoopAwareness.stationCharacteristics p_stationCharacteristics,
    								template (value) ReferencePosition p_referencePosition
									) := {
		header := {
fischer's avatar
fischer committed
			protocolVersion := 0,
			messageID := 0,
			generationTime := p_generationTime
		},
		cam := {
fischer's avatar
fischer committed
			stationID := p_stationID,
			stationCharacteristics := p_stationCharacteristics,
			referencePosition := p_referencePosition,
			camParameters := omit
fischer's avatar
fischer committed
		}
	};
	template CamPdu mw_camMsg_basicVehicle modifies mw_camMsg_anyVehicle := {
		cam := {
			stationCharacteristics := {true, false, true},
			camParameters := {
				profileDependent := {basicVehicle := ?}
fischer's avatar
fischer committed
			}
		}
fischer's avatar
fischer committed
	}

	template CamPdu mw_camMsg_emergencyVehicle modifies mw_camMsg_anyVehicle := {
		cam := {
			stationCharacteristics := {true, false, true},
			camParameters := {
					profileDependent := {
						emergencyVehicle := {
							lightBarInUse := *,
							sireneInUse := *,
							emergencyResponseType := ?
						}
					}
			}
		}
	};

	template CamPdu mw_camMsg_publicTransportVehicle modifies mw_camMsg_basicVehicle := {
		cam := {
			stationCharacteristics := {true, false, true},
			camParameters := {
					profileDependent := {
						publicTransportVehicle := {
							publicVehicleType := ?,
							pTLineDescription := *,
							scheduleDeviation := *,
							trafficLightPriority := *
						}
					}
fischer's avatar
fischer committed
			}
		}
	};

group exteriorLights {
    
template ExteriorLights m_lowBeamLightsOff := '0???????'B ; 
template ExteriorLights m_lowBeamLightsOn := '1???????'B ; 

template ExteriorLights m_highBeamLightsOff := '?0??????'B ; 
template ExteriorLights m_highBeamLightsOn := '?1??????'B ; 

template ExteriorLights m_leftTurnSignalOff := '??0?????'B ; 
template ExteriorLights m_leftTurnSignalOn := '??1?????'B ; 

template ExteriorLights m_rightTurnSignalOff := '???0????'B ; 
template ExteriorLights m_rightTurnSignalOn := '???1????'B ; 

template ExteriorLights m_automaticLightControlOff := '????0???'B ; 
template ExteriorLights m_automaticLightControlOn := '????1???'B ; 

template ExteriorLights m_daytimeRunningLightOff := '?????0??'B ; 
template ExteriorLights m_daytimeRunningLightOn := '?????1??'B ; 

template ExteriorLights m_fogLightOff := '??????0?'B ; 
template ExteriorLights m_fogLightOn := '??????1?'B ; 

template ExteriorLights m_parkingLightsOff := '???????0'B ; 
template ExteriorLights m_parkingLightsOn := '???????1'B ; 

template ExteriorLights m_hazardConditionOn := '??11????'B ; 

} // end group exteriorLights


} // end LibItsCam_Templates