module ItsAutoInterop_Pics {
    
    // LibCommon
    import from LibCommon_BasicTypesAndValues all;
    
    // LibIts
    import from IEEE1609dot2BaseTypes language "ASN.1:1997" all;
    import from IEEE1609dot2 language "ASN.1:1997" all;
    import from EtsiTs103097Module language "ASN.1:1997" all;
    
    // LibItsBtp
    import from LibItsBtp_TypesAndValues all;
    
    // LibItsSecurity
    import from LibItsSecurity_TypesAndValues all;
    
    /**
     * @desc BTP destination port identifier for CAM protocol 
     * @see  ETSI DTS/ITS0144 Table 
     */
    modulepar BtpPortId PICS_CAM_BTP_DESTINATION_PORT  := 2001;
    
    /**
     * @desc BTP source port identifier for CAM protocol 
     * @see  TODO
     */
    modulepar BtpPortId PICS_CAM_BTP_SOURCE_PORT       := 0;
    
    /**
     * @desc ItsAid for CAM protocol 
     * @see  TODO
     */
    modulepar UInt32 PICS_CAM_ITS_AID                  := 36;
    
    /**
     * @desc BTP destination port identifier for DENM protocol 
     * @see  TODO
     */
    modulepar BtpPortId PICS_DENM_BTP_DESTINATION_PORT := 2002;
    
    /**
     * @desc BTP source port identifier for DENM protocol 
     * @see  TODO
     */
    modulepar BtpPortId PICS_DENM_BTP_SOURCE_PORT      := 0;
    
    /**
     * @desc ItsAid for DENM protocol 
     * @see  TODO
     */
    modulepar UInt32 PICS_DENM_ITS_AID                 := 37;
    
    /**
     * @desc Z1-D1-EP/POS1
     */
    modulepar ThreeDLocation PICS_Z1_D1_EP := {
        latitude                                    := 435525352, // Z1-D1-EP/latitude
        longitude                                   := 103003415,  // Z1-D1-EP/longitude
        elevation                                   := 0
    }; // End of PICS_Z1_D1_EP
    
    /**
     * @desc Z1-D2-EP/POS2
     */
    modulepar ThreeDLocation PICS_Z1_D2_EP := {
        latitude                                    := 435519107, // Z1-D2-EP/latitude
        longitude                                   := 102993930, // Z1-D2-EP/longitude
        elevation                                   := 0
    }; // End of PICS_Z1_D2_EP
    
    /**
     * @desc Z1-D3-EP/POS3
     */
    modulepar ThreeDLocation PICS_Z1_D3_EP := {
        latitude                                    := 435513421, // Z1-D3-EP/latitude
        longitude                                   := 102986038, // Z1-D3-EP/longitude
        elevation                                   := 0
    }; // End of PICS_Z1_D3_EP
    
    /**
     * @desc Use the GPS position of each heavy truck
     */
    modulepar ThreeDLocation PICS_UC2_HEAVY_TRUCK_POS := {
        latitude                                    := 435536690,
        longitude                                   := 103031060,
        elevation                                   := 0
    }; // End of PICS_Z1_D3_EP
    
    /**
     * @desc DENM cause variant for TC_AUTO_IOT_DENM_SVW_BV_01
     * @see Draft ETSI TS yyy xxx-2 V0.0.87 (2017-03) Table 4: Possible DENM cause values (ETSI EN 302 637-3 [5] Table 10: Cause description and cause code assignment for ETSI use case)
     */
    modulepar integer  PICS_UC2_CAUSE := 94;
    
    /**
     * @desc DENM subcause variant for TC_AUTO_IOT_DENM_SVW_BV_01
     * @see Draft ETSI TS yyy xxx-2 V0.0.87 (2017-03) Table 5: Possible DENM sub-cause values (ETSI EN 302 637-3 [5] Table 10: Cause description and cause code assignment for ETSI use case)
     */
    modulepar integer PICS_UC2_SUBCAUSE := 5;
    
    /**
     * @desc Absolute coordinate for position 0 
     * @see  TODO
     */
    modulepar ThreeDLocation PICS_POS0             := {
        latitude                                        := 435522970,
        longitude                                       := 103000170,
        elevation                                       := 0
    }
    
    /**
     * @desc Absolute coordinate for position 1 
     * @see  TODO
     */
    modulepar ThreeDLocation PICS_POS1 := {
        latitude                                        := 435525352,
        longitude                                       := 103000415,
        elevation                                       := 0
    }
    
    /**
     * @desc Absolute coordinate for position 2 
     * @see  TODO
     */
    modulepar ThreeDLocation PICS_POS2 := {
        latitude                                        := 435519107,
        longitude                                       := 102993930,
        elevation                                       := 0
    }
    
    /**
     * @desc Absolute coordinate for position 3 
     * @see  TODO
     */
    modulepar ThreeDLocation PICS_POS3 := {
        latitude                                        := 435513421,
        longitude                                       := 102986038,
        elevation                                       := 0
    }
    
    /**
     * @desc Absolute coordinate for position 4 
     * @see  TODO
     */
    modulepar ThreeDLocation PICS_POS4 := {
        latitude                                        := 435522970,
        longitude                                       := 103000170,
        elevation                                       := 0
    }
    
    /**
     * @desc Absolute coordinate for TARGET_GEOAREA 
     * @see  TODO
     */
    modulepar ThreeDLocation PICS_TARGET_GEOAREA := {
        latitude                                        := 435522970,
        longitude                                       := 103000170,
        elevation                                       := 0
    }
    
} // End of module ItsAutoInterop_Pics 
