X-Git-Url: https://gerrit.automotivelinux.org/gerrit/gitweb?a=blobdiff_plain;f=ucs2-interface%2Fucs_config.h;h=b23d1694532ed537967a636aac87eae939feea2a;hb=refs%2Fchanges%2F22%2F24722%2F1;hp=74c82c6001499350e18b5a587f07767fb1b497ad;hpb=f4b34a4b00dc0983ae8f9a56828c2bc86ac11c7f;p=apps%2Fagl-service-unicens.git diff --git a/ucs2-interface/ucs_config.h b/ucs2-interface/ucs_config.h index 74c82c6..b23d169 100644 --- a/ucs2-interface/ucs_config.h +++ b/ucs2-interface/ucs_config.h @@ -1,5 +1,5 @@ /*------------------------------------------------------------------------------------------------*/ -/* Unicens Integration Helper Component */ +/* UNICENS Integration Helper Component */ /* Copyright 2017, Microchip Technology Inc. and its subsidiaries. */ /* */ /* Redistribution and use in source and binary forms, with or without */ @@ -38,7 +38,8 @@ #define ENABLE_AMS_LIB (true) #define DEBUG_XRM #define BOARD_PMS_TX_SIZE (72) -#define CMD_QUEUE_LEN (6) +#define CMD_QUEUE_LEN (40) +#define I2C_WRITE_MAX_LEN (32) #include #include @@ -51,7 +52,7 @@ /*>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>*/ /** - * \brief Internal enum for Unicens Integration + * \brief Internal enum for UNICENS Integration */ typedef enum { @@ -64,7 +65,15 @@ typedef enum } UnicensCmdResult_t; /** - * \brief Internal enum for Unicens Integration + * \brief Asynchronous callback notifiying a command result + * \param result_ptr The asynchronous result of the command + * \param request_ptr User reference, typically points to the afb_req + * object. + */ +typedef void (*Ucsi_ResultCb_t)(void *result_ptr, void *request_ptr); + +/** + * \brief Internal enum for UNICENS Integration */ typedef enum { @@ -72,11 +81,15 @@ typedef enum UnicensCmd_Init, UnicensCmd_Stop, UnicensCmd_RmSetRoute, - UnicensCmd_NsRun + UnicensCmd_NsRun, + UnicensCmd_GpioCreatePort, + UnicensCmd_GpioWritePort, + UnicensCmd_I2CWrite, + UnicensCmd_SendAmsMessage } UnicensCmd_t; /** - * \brief Internal struct for Unicens Integration + * \brief Internal struct for UNICENS Integration */ typedef struct { @@ -84,7 +97,7 @@ typedef struct } UnicensCmdInit_t; /** - * \brief Internal struct for Unicens Integration + * \brief Internal struct for UNICENS Integration */ typedef struct { @@ -93,7 +106,7 @@ typedef struct } UnicensCmdRmSetRoute_t; /** - * \brief Internal struct for Unicens Integration + * \brief Internal struct for UNICENS Integration */ typedef struct { @@ -101,7 +114,55 @@ typedef struct } UnicensCmdNsRun_t; /** - * \brief Internal struct for Unicens Integration + * \brief Internal struct for UNICENS Integration + */ +typedef struct +{ + uint16_t destination; + uint16_t debounceTime; +} UnicensCmdGpioCreatePort_t; + +/** + * \brief Internal struct for UNICENS Integration + */ +typedef struct +{ + uint16_t destination; + uint16_t mask; + uint16_t data; +} UnicensCmdGpioWritePort_t; + +/** + * \brief Internal struct for UNICENS Integration + */ +typedef struct +{ + uint16_t destination; + bool isBurst; + uint8_t blockCount; + uint8_t slaveAddr; + uint16_t timeout; + uint8_t dataLen; + uint8_t data[I2C_WRITE_MAX_LEN]; + + Ucsi_ResultCb_t result_fptr; + void *request_ptr; + +} UnicensCmdI2CWrite_t; + +/** + * \brief Internal struct for UNICENS Integration + */ +typedef struct +{ + uint16_t msgId; + uint16_t targetAddress; + uint8_t pPayload[UCS_AMS_SIZE_TX_MSG]; + uint32_t payloadLen; +} UnicensCmdSendAmsMessage_t; + +/** + * \brief Internal struct for UNICENS Integration */ typedef struct { @@ -111,11 +172,15 @@ typedef struct UnicensCmdInit_t Init; UnicensCmdRmSetRoute_t RmSetRoute; UnicensCmdNsRun_t NsRun; + UnicensCmdGpioCreatePort_t GpioCreatePort; + UnicensCmdGpioWritePort_t GpioWritePort; + UnicensCmdI2CWrite_t I2CWrite; + UnicensCmdSendAmsMessage_t SendAms; } val; } UnicensCmdEntry_t; /** - * \brief Internal variables for one instance of Unicens Integration + * \brief Internal variables for one instance of UNICENS Integration * \note Never touch any of this fields! */ typedef struct { @@ -129,7 +194,7 @@ typedef struct { } RB_t; /** - * \brief Internal variables for one instance of Unicens Integration + * \brief Internal variables for one instance of UNICENS Integration * \note Allocate this structure for each instance (static or malloc) * and pass it to UCSI_Init() * \note Never touch any of this fields!