Re-organized sub-directory by category
[staging/basesystem.git] / service / vehicle / positioning / server / include / Sensor / VehicleSens_DeliveryCtrl.h
diff --git a/service/vehicle/positioning/server/include/Sensor/VehicleSens_DeliveryCtrl.h b/service/vehicle/positioning/server/include/Sensor/VehicleSens_DeliveryCtrl.h
new file mode 100755 (executable)
index 0000000..3fb7056
--- /dev/null
@@ -0,0 +1,253 @@
+/*
+ * @copyright Copyright (c) 2016-2020 TOYOTA MOTOR CORPORATION.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef POSITIONING_SERVER_INCLUDE_SENSOR_VEHICLESENS_DELIVERYCTRL_H_
+#define POSITIONING_SERVER_INCLUDE_SENSOR_VEHICLESENS_DELIVERYCTRL_H_
+/******************************************************************************
+ * File name        :VehicleSens_DeliveryCtrl.h
+ * System name        :_CWORD107_
+ * Subsystem name    :
+ ******************************************************************************/
+
+#include "Vehicle_API_Dummy.h"
+#include "Sensor_API.h"
+#include "Vehicle_API_private.h"
+#include "Sensor_API_private.h"
+#include "VehicleSens_SelectionItemList.h"
+#include "VehicleSens_DataMaster.h"
+#include "Dead_Reckoning_Local_Api.h"
+
+/************************************************************************
+*            Macro definitions                                                    *
+************************************************************************/
+#define    VEHICLESENS_CANID_EFFECTIVE        29        /* CAN ID Effective number   */
+#define    VEHICLESENS_CANID_RESERVE        11        /* CAN ID Reserved number  */
+#define    VEHICLESENS_SIGNAL                VEHICLESENS_SELECTION_ITEM_LIST_LEN    /* Number of vehicle signals  */
+#define    VEHICLESENS_DELIVERY            10        /* Number of delivery destinations                */
+/* CAN ID Maximum number            */
+#define    VEHICLESENS_CANID_MAX            (VEHICLESENS_CANID_EFFECTIVE + VEHICLESENS_CANID_RESERVE)
+/* Vehicle sensor information            */
+#define    VEHICLESENS_DELIVERY_INFO        (VEHICLESENS_CANID_MAX + VEHICLESENS_SIGNAL)
+/* Maximum number of vehicle sensor information    */
+#define    VEHICLESENS_DELIVERY_INFO_MAX    (VEHICLESENS_DELIVERY_INFO * VEHICLESENS_DELIVERY)
+/* Vehicle Sensor Information Valid Number    */
+#define    VEHICLESENS_DID_EFFECTIVE        (VEHICLESENS_CANID_EFFECTIVE + VEHICLESENS_SIGNAL)
+#define    VEHICLESENS_ACTION_TYPE_ADD        0        /* Vehicle sensor addition processing        */
+#define    VEHICLESENS_ACTION_TYPE_UPDATE    1        /* Vehicle sensor update processing        */
+#define    VEHICLESENS_LINK_INDEX_END        0xFFFF    /* End of the link index    */
+
+
+#define    VEHICLESENS_PKG_DELIVERY_INFO_MAX    2560    /* Maximum number of vehicle sensor information  */
+#define    VEHICLESENS_DELIVERY_METHOD_NORMAL    0        /* Delivery system normal delivery    */
+#define    VEHICLESENS_DELIVERY_METHOD_PACKAGE    1        /* Delivery system package delivery */
+#define    VEHICLESENS_PKG_EXT_SEND_MAX        10        /* Number of data master transmissions/onece  */
+#define    VEHICLESENS_PKG_EXT_SEND_MAX_10DATA    100        /* Number of data masters transmitted (GYRO),SPEED)/once */
+
+#define    VEHICLESENS_DELIVERY_MAX_SIZE            SENSOR_MSG_VSINFO_DSIZE        /* Maximum Size of Delivery       */
+#define    VEHICLESENS_DELIVERY_FSTSNS_HDR_SIZE    8        /* Initial Sensor Data Delivery Data Header Size    */
+
+/************************************************************************
+*            Struct definitions                                                    *
+************************************************************************/
+/*********************************************************************
+* TAG       : VEHICLESENS_DELIVERY_LIST_CANID
+* ABSTRACT  : CAN data delivery registration request information
+***********************************************************************/
+typedef struct {
+    u_int8    uc_can_num;                            /* CANID delivery registrations */
+    u_int8    uc_reserve[3];
+    u_int32    ul_can_id[VEHICLESENS_CANID_MAX];        /* Delivery registrationCANID */ /* CANIF_API deletion */
+} VEHICLESENS_DELIVERY_LIST_CANID;
+
+/*********************************************************************
+* TAG       :VEHICLESENS_DELIVERY_CTRL_TBL_DATA
+* ABSTRACT  : Structure of each data of the vehicle sensor delivery destination management table
+***********************************************************************/
+typedef struct {
+    DID        ul_did;                /* Data ID                */
+    PNO        us_pno;                /* Shipping PID            */
+    u_int8    uc_chg_type;            /* Delivery timing            */
+    u_int8    uc_ctrl_flg;            /* Delivery operation                */
+    u_int16    us_link_idx;            /* Link index    */
+    u_int16    us_pkg_start_idx;        /* Package Delivery Start Index    */
+    u_int16    us_pkg_end_idx;        /* Package delivery end index        */
+    u_int8    uc_method;            /* Delivery system                */
+    u_int8    uc_reserve;            /* reserve                */
+    /* Modify to store the destination service name TODO */
+    /* Add handles as needed TODO */
+} VEHICLESENS_DELIVERY_CTRL_TBL_DATA;
+
+/*********************************************************************
+* TAG       : VEHICLESENS_DELIVERY_CTRL_TBL
+* ABSTRACT  : Vehicle Sensor Delivery Destination Management Table Structure
+***********************************************************************/
+typedef struct {
+    u_int16        us_dnum;            /* Number of delivery destination management data items    */
+    u_int8        uc_reserve[2];    /* Reserved                */
+    /* Array of each data        */
+    VEHICLESENS_DELIVERY_CTRL_TBL_DATA    st_ctrl_data[VEHICLESENS_DELIVERY_INFO_MAX];
+} VEHICLESENS_DELIVERY_CTRL_TBL;
+
+/*********************************************************************
+* TAG       : VEHICLESENS_DELIVERY_CTRL_TBL_MNG_DATA
+* ABSTRACT  : Structure of each data of Vehicle Sensor Destination Management Table Management
+***********************************************************************/
+typedef struct {
+    DID        ul_did;                    /* Data ID                */
+    u_int16    us_start_idx;                /* Start index    */
+    u_int16    us_end_idx;                /* End index    */
+    u_int16    usdlvry_entry_num;        /* Number of registered shipping addresses        */
+    u_int8    uc_reserve[2];            /* Reserved                */
+} VEHICLESENS_DELIVERY_CTRL_TBL_MNG_DATA;
+
+/*********************************************************************
+* TAG       : VEHICLESENS_DELIVERY_CTRL_TBL_MNG
+* ABSTRACT  : Structure of Vehicle Sensor Delivery Destination Management Table Management
+***********************************************************************/
+typedef struct {
+    u_int16        us_dnum;            /* Number of data items            */
+    u_int8        uc_reserve[2];    /* Reserved                */
+    /* Array of each data        */
+    VEHICLESENS_DELIVERY_CTRL_TBL_MNG_DATA     st_ctrl_tbl_mng_data[VEHICLESENS_DELIVERY_INFO];
+} VEHICLESENS_DELIVERY_CTRL_TBL_MNG;
+
+/*********************************************************************
+* TAG       : VEHICLESENS_PKG_DELIVERY_TBL_MNG_DATA
+* ABSTRACT  : Structure of each data of the vehicle sensor package delivery management table
+***********************************************************************/
+typedef struct {
+    DID        ul_did;                    /* Data ID                    */
+    u_int16    usdlvry_idx;                /* Delivery data index    */
+    u_int8    uc_reserve[2];            /* Reserved                    */
+} VEHICLESENS_PKG_DELIVERY_TBL_MNG_DATA;
+
+
+/*********************************************************************
+* TAG       : VEHICLESENS_PKG_DELIVERY_TBL_MNG
+* ABSTRACT  : Structure of Vehicle Sensor Package Delivery Management Table
+***********************************************************************/
+typedef struct {
+    u_int16        us_dnum;            /* Number of data items            */
+    u_int8        uc_reserve[2];    /* Reserved                */
+    /* Array of each data        */
+    VEHICLESENS_PKG_DELIVERY_TBL_MNG_DATA     st_pkg_data[VEHICLESENS_PKG_DELIVERY_INFO_MAX];
+} VEHICLESENS_PKG_DELIVERY_TBL_MNG;
+
+/*********************************************************************
+* TAG       : VEHICLESENS_DELIVERY_PNO_TBL
+* ABSTRACT  : Vehicle Sensor Destination PNO Table
+***********************************************************************/
+typedef struct {
+    PNO        us_pno;                /* Thread ID    */
+    u_int16    us_pkg_start_idx;        /* Package Delivery Start Index    */
+    u_int16    us_pkg_end_idx;        /* Package delivery end index        */
+    u_int8    uc_method;            /* Delivery system                                */
+    u_int8    uc_reserve;            /* reserve                                */
+} VEHICLESENS_DELIVERY_PNO_TBL_DAT;
+
+typedef struct {
+    u_int16    us_dnum;                /* Number of data items    */
+    u_int8    uc_reserve[2];        /* reserve        */
+    VEHICLESENS_DELIVERY_PNO_TBL_DAT    st_pno_data[VEHICLESENS_DELIVERY_INFO_MAX];
+} VEHICLESENS_DELIVERY_PNO_TBL;
+
+/*********************************************************************
+* TAG       : VEHICLESENS_DELIVERY_HEADER
+* ABSTRACT  : Delivery data header
+***********************************************************************/
+typedef struct {
+    DID        did;                                        /* Data ID            */
+    u_int16    size;                                        /* Size of the data    */
+    u_int8    rcv_flag;                                    /* Receive flag        */
+    u_int8    sensor_cnt;                                    /* Sensor Counter    */
+} VEHICLESENS_DELIVERY_HEADER;
+
+/*********************************************************************
+* TAG       : VEHICLESENS_DELIVERY_FORMAT
+* ABSTRACT  : Delivery data format
+***********************************************************************/
+typedef struct {
+    VEHICLESENS_DELIVERY_HEADER        header;                                    /* Header            */
+    u_int8                            data[VEHICLESENS_DELIVERY_MAX_SIZE];    /* Data            */
+} VEHICLESENS_DELIVERY_FORMAT;
+
+/************************************************************************
+*            Function prototype                                              *
+************************************************************************/
+void VehicleSensInitDeliveryCtrlTbl(void);
+void VehicleSensInitDeliveryCtrlTblMng(void);
+void VehicleSensInitPkgDeliveryTblMng(void);
+VEHICLE_RET_API VehicleSensEntryDeliveryCtrl(const VEHICLE_MSG_DELIVERY_ENTRY *);
+void VehicleSensAddDeliveryCtrlTbl(const VEHICLE_MSG_DELIVERY_ENTRY *);
+void VehicleSensUpdateDeliveryCtrlTbl(VEHICLESENS_DELIVERY_CTRL_TBL_MNG_DATA *);
+void VehicleSensUpdatePkgDeliveryCtrlTbl(u_int16, u_int16);
+void VehicleSensAddDeliveryCtrlTblMng(const VEHICLE_MSG_DELIVERY_ENTRY *);
+void VehicleSensUpdateDeliveryCtrlTblMng(VEHICLESENS_DELIVERY_CTRL_TBL_MNG_DATA *);
+void VehicleSensAddPkgDeliveryTblMng(const SENSOR_MSG_DELIVERY_ENTRY *);
+VEHICLE_RET_API VehicleSensEntryPkgDeliveryCtrl(const SENSOR_MSG_DELIVERY_ENTRY *, u_int8 uc_ext_chk);
+VEHICLESENS_DELIVERY_PNO_TBL* VehicleSensMakeDeliveryPnoTbl(DID ul_did, u_int8 change_type);
+void VehicleSensAddPnoTbl(u_int16);
+u_int8 VehicleSensDeliveryGPS(DID ul_did, u_int8 uc_get_method, u_int8 uc_current_get_method, int32 pno_index,
+                            u_int32* cid, VEHICLESENS_DATA_MASTER* stmaster,
+                            const VEHICLESENS_DELIVERY_PNO_TBL *pst_pno_tbl);
+u_int8 VehicleSensDeliveryFst(DID ul_did, u_int8 uc_get_method, int32 pno_index,
+                            const VEHICLESENS_DELIVERY_PNO_TBL *pst_pno_tbl);
+u_int8 VehicleSensDeliveryGyro(DID ul_did, u_int8 uc_current_get_method, int32 pno_index,
+                            const VEHICLESENS_DELIVERY_PNO_TBL *pst_pno_tbl);
+void VehicleSensDeliveryAntenna(DID ul_did, u_int8 uc_current_get_method, int32 pno_index,
+                            const VEHICLESENS_DELIVERY_PNO_TBL *pst_pno_tbl);
+u_int8 VehicleSensDeliveryOther(DID ul_did, u_int8 uc_current_get_method, int32 pno_index,
+                            u_int32* cid,
+                            VEHICLESENS_DATA_MASTER* stmaster,
+                            const VEHICLESENS_DELIVERY_PNO_TBL *pst_pno_tbl);
+void VehicleSensDeliveryProc(DID ul_did, u_int8 uc_chg_type, u_int8 uc_get_method);
+u_int8 VehicleSensFirstDeliverySens(PNO us_pno, DID ul_did, u_int8 uc_get_method,
+                                    VEHICLESENS_DATA_MASTER_FST* stmaster_fst,
+                                    VEHICLESENS_DATA_MASTER_FST* stmaster_fst_temp);
+u_int8 VehicleSensFirstDeliveryOther(PNO us_pno, DID ul_did, u_int8 uc_get_method,
+                                    u_int32* cid,
+                                    VEHICLESENS_DATA_MASTER* stmaster);
+void VehicleSensFirstDelivery(PNO us_pno, DID ul_did);
+void VehicleSensFirstPkgDelivery(const SENSOR_MSG_DELIVERY_ENTRY_DAT *);
+RET_API    VehicleSensCanDeliveryEntry(void);
+void VehicleSensFirstPkgDelivery(const SENSOR_MSG_DELIVERY_ENTRY_DAT *);
+
+#if CONFIG_SENSOR_EXT_VALID                /* Initial Sensor Support */
+void VehicleSensFirstPkgDeliveryExt(const SENSOR_MSG_DELIVERY_ENTRY_DAT *pst_data);
+#endif
+
+#if CONFIG_HW_PORTSET_TYPE_C
+void VehicleSensInitSeqNum(void);
+void VehicleSensDivideDeliveryProc(PNO, const void *);
+#endif
+
+/* ++ PastModel002 support DR */
+void VehicleSensInitDeliveryCtrlTblDR(void);
+void VehicleSensInitDeliveryCtrlTblMngDR(void);
+VEHICLE_RET_API VehicleSensEntryDeliveryCtrlDR(const DEADRECKONING_MSG_DELIVERY_ENTRY *);
+void VehicleSensAddDeliveryCtrlTblDR(const DEADRECKONING_MSG_DELIVERY_ENTRY *);
+void VehicleSensAddDeliveryCtrlTblMngDR(const DEADRECKONING_MSG_DELIVERY_ENTRY *);
+void VehicleSensUpdateDeliveryCtrlTblDR(VEHICLESENS_DELIVERY_CTRL_TBL_MNG_DATA *);
+void VehicleSensUpdateDeliveryCtrlTblMngDR(VEHICLESENS_DELIVERY_CTRL_TBL_MNG_DATA *);
+void VehicleSensDeliveryProcDR(DID ul_did, u_int8 uc_chg_type, u_int8 uc_get_method);
+VEHICLESENS_DELIVERY_PNO_TBL* VehicleSensMakeDeliveryPnoTblDR(DID ul_did, u_int8 change_type);
+void VehicleSensAddPnoTblDR(u_int16 us_index);
+void VehicleSensGetDebugDeliveryCtrlTbl(void* pbuf);
+void VehicleSensGetDebugDeliveryCtrlTblMng(void* pbuf);
+void VehicleSensGetDebugPkgDeliveryTblMng(void* pbuf);
+void VehicleSensGetDebugDeliveryPnoTbl(void* pbuf);
+/* -- PastModel002 supprt DR */
+#endif  // POSITIONING_SERVER_INCLUDE_SENSOR_VEHICLESENS_DELIVERYCTRL_H_