+ case UnicensCmd_GpioCreatePort:
+ if (UCS_RET_SUCCESS == Ucs_Gpio_CreatePort(my->unicens, e->val.GpioCreatePort.destination, 0, e->val.GpioCreatePort.debounceTime, OnUcsGpioPortCreate))
+ popEntry = false;
+ else
+ UCSI_CB_OnUserMessage(my->tag, true, "Ucs_Gpio_CreatePort failed", 0);
+ break;
+ case UnicensCmd_GpioWritePort:
+ if (UCS_RET_SUCCESS == Ucs_Gpio_WritePort(my->unicens, e->val.GpioWritePort.destination, 0x1D00, e->val.GpioWritePort.mask, e->val.GpioWritePort.data, OnUcsGpioPortWrite))
+ popEntry = false;
+ else
+ UCSI_CB_OnUserMessage(my->tag, true, "UnicensCmd_GpioWritePort failed", 0);
+ break;
+ case UnicensCmd_I2CWrite:
+ ret = Ucs_I2c_WritePort(my->unicens, e->val.I2CWrite.destination, 0x0F00,
+ (e->val.I2CWrite.isBurst ? UCS_I2C_BURST_MODE : UCS_I2C_DEFAULT_MODE), e->val.I2CWrite.blockCount,
+ e->val.I2CWrite.slaveAddr, e->val.I2CWrite.timeout, e->val.I2CWrite.dataLen, e->val.I2CWrite.data, OnUcsI2CWrite);
+ if (UCS_RET_SUCCESS == ret)
+ popEntry = false;
+ else {
+ UCSI_CB_OnUserMessage(my->tag, true, "Ucs_I2c_WritePort failed ret=%d", 1, ret);
+ assert(e->val.I2CWrite.result_fptr != NULL);
+ e->val.I2CWrite.result_fptr(NULL /*processing error*/, e->val.I2CWrite.request_ptr);
+ }
+ break;
+ case UnicensCmd_SendAmsMessage:
+ {
+ Ucs_AmsTx_Msg_t *msg;
+ msg = Ucs_AmsTx_AllocMsg(my->unicens, e->val.SendAms.payloadLen);
+ if (NULL == msg)
+ {
+ /* Try again later */
+ popEntry = false;
+ break;
+ }
+ if (0 != e->val.SendAms.payloadLen)
+ {
+ assert(NULL != msg->data_ptr);
+ memcpy(msg->data_ptr, e->val.SendAms.pPayload, e->val.SendAms.payloadLen);
+ }
+ msg->custom_info_ptr = NULL;
+ msg->data_size = e->val.SendAms.payloadLen;
+ msg->destination_address = e->val.SendAms.targetAddress;
+ msg->llrbc = 10;
+ msg->msg_id = e->val.SendAms.msgId;
+ if (UCS_RET_SUCCESS == Ucs_AmsTx_SendMsg(my->unicens, msg, OnUcsAmsWrite))
+ {
+ popEntry = false;
+ }
+ else
+ {
+ Ucs_AmsTx_FreeUnusedMsg(my->unicens, msg);
+ UCSI_CB_OnUserMessage(my->tag, true, "Ucs_AmsTx_SendMsg failed", 0);
+ }
+ break;
+ }