#include #include #include #include #include #include #include "include.h" #include "inc/hw_uart.h" #include "driverlib/gpio.h" #include #include "Drivers/I2C_Communication/RFID_NFC/logi-tag/LT_RFID.h" #include #include "Drivers/I2C_Communication/RFID_NFC/NFC.h" #include #include #include #include #include "Stub_Status.h" void Stub_CartridgeReadRequest(MessageContainer* requestContainer) { //uint32_t status = PASSED; MessageContainer responseContainer; //static bool first_time = true; StubCartridgeReadRequest* request = stub_cartridge_read_request__unpack(NULL, requestContainer->data.len, requestContainer->data.data); Cartridge CartridgeRead = CARTRIDGE__INIT; CartridgeTagContent TagRead = CARTRIDGE_TAG_CONTENT__INIT; //NFC_Tag NFC_TagRead; StubCartridgeReadResponse response = STUB_CARTRIDGE_READ_RESPONSE__INIT; uint8_t readerID = request->cartridgeid >> 8; if(request->cartridgeid == 0x0100) { Init_RFID_Reader(readerID);//0-2 - done in main.c. by Init_IFS no need to use it } else if(request->cartridgeid == 0x0101) { Connect_to_RFID_Reder(readerID);//0-2 - conect the card and get tag id - while(1) } else if(request->cartridgeid == 0x0102) { /* Active_RFID_Reader = readerID + 1; // if(first_time == true) // { // TagStage = Tag_PrepareForDiscovery; // first_time = false; // } TagStage[readerID] = Tag_PrepareForDiscovery; RFIDTagComm_StateMachine(readerID, Auto); */ Trigger_RFID_TestTask(readerID); } else if(request->cartridgeid == 0x0103)//first time before 0x0102 - no need done in 102 { Active_RFID_Reader = readerID + 1; TagStage[readerID] = Tag_PrepareForDiscovery; } else if((request->cartridgeid & 0xFF)== 0xC1) { Trigger_RFID_UpdateInkFill(readerID); } else if((request->cartridgeid & 0xFF)== 0xC2) { Trigger_RFID_UpdateInkUsed(readerID); } else if((request->cartridgeid & 0xFF)== 0xC3) { Trigger_RFID_UpdateInkEmpty(readerID); } else if((request->cartridgeid & 0xFF)== 0xC4) { Trigger_RFID_UpdateInkMachineID(readerID); } else if((request->cartridgeid & 0xFF)== 0xE1) { Trigger_RFID_UpdateWasteFill(readerID); } else if((request->cartridgeid & 0xFF)== 0xE2) { Trigger_RFID_UpdateWasteFull(readerID); } else if((request->cartridgeid & 0xFF)== 0xE3) { Trigger_RFID_UpdateWasteEmpty(readerID); } else if((request->cartridgeid & 0xFF)== 0xE4) { Trigger_RFID_UpdateWasteMachineID(readerID); } response.cartridge = &CartridgeRead; CartridgeRead.has_index = false; CartridgeRead.has_slot = true; CartridgeRead.slot = request->cartridgeid; CartridgeRead.tag = &TagRead; responseContainer = createContainer(MESSAGE_TYPE__StubCartridgeReadResponse, requestContainer->token, true, &response, &stub_cartridge_read_response__pack, &stub_cartridge_read_response__get_packed_size); responseContainer.has_error = false; responseContainer.error = ERROR_CODE__NONE; responseContainer.errormessage = "PASSED"; //------------------------------------------------------------------------------------------- uint8_t* container_buffer = malloc(message_container__get_packed_size(&responseContainer)); size_t container_size = message_container__pack(&responseContainer, container_buffer); free(responseContainer.data.data); SendChars((char*)container_buffer, container_size); //free(container_buffer); //free(requestContainer); stub_cartridge_read_request__free_unpacked(request,NULL); } void Stub_CartridgeWriteRequest(MessageContainer* requestContainer) { //uint32_t status = NOT_SUPPORTED; MessageContainer responseContainer; StubCartridgeWriteRequest* request = stub_cartridge_write_request__unpack(NULL, requestContainer->data.len, requestContainer->data.data); //request->cartridgeid //request->cartridgecolor //request->cartridgeversion //request->cartridgedata //request->cartridgeused StubCartridgeWriteResponse response = STUB_CARTRIDGE_WRITE_RESPONSE__INIT; response.cartridgeid = request->cartridge->slot; response.has_cartridgeid = true; // char temp[7] = "PASSED"; // response.status = temp; // response.statusword = OK; // response.has_statusword = true; responseContainer = createContainer(MESSAGE_TYPE__StubCartridgeWriteResponse, requestContainer->token, true, &response, &stub_cartridge_write_response__pack, &stub_cartridge_write_response__get_packed_size); responseContainer.has_error = false; responseContainer.error = ERROR_CODE__NONE; responseContainer.errormessage = "PASSED"; //------------------------------------------------------------------------------------------- uint8_t* container_buffer = malloc(message_container__get_packed_size(&responseContainer)); size_t container_size = message_container__pack(&responseContainer, container_buffer); free(responseContainer.data.data); SendChars((char*)container_buffer, container_size); //free(container_buffer); //free(requestContainer); stub_cartridge_write_request__free_unpacked(request,NULL); }