| @@ -11,3 +11,11 @@ | |||||
| /AudioConsole.X/build/ChaletDuinoV2_795F512H_/production/Source/Terminal.o | /AudioConsole.X/build/ChaletDuinoV2_795F512H_/production/Source/Terminal.o | ||||
| /AudioConsole.X/build/ChaletDuinoV2_795F512H_/production/Source/WiFiCtrl.o | /AudioConsole.X/build/ChaletDuinoV2_795F512H_/production/Source/WiFiCtrl.o | ||||
| /AudioConsole.X/build/ChaletDuinoV2_795F512H_/production/Source/BootloaderInterface.o | /AudioConsole.X/build/ChaletDuinoV2_795F512H_/production/Source/BootloaderInterface.o | ||||
| /AudioConsole.X/build/ChaletDuinoV2_795F512H_/production/Source/BootloaderInterface.o | |||||
| /AudioConsole.X/build/ChaletDuinoV2_795F512H_/production/Source/BootloaderProtocol.o | |||||
| /AudioConsole.X/build/ChaletDuinoV2_795F512H_/production/Source/main.o | |||||
| /AudioConsole.X/build/ChaletDuinoV2_795F512H_/production/Source/NetworkProtocol.o | |||||
| /AudioConsole.X/build/ChaletDuinoV2_795F512H_/production/Source/Syslog.o | |||||
| /AudioConsole.X/build/ChaletDuinoV2_795F512H_/production/Source/Terminal.o | |||||
| /AudioConsole.X/build/ChaletDuinoV2_795F512H_/production/Source/WiFiCtrl.o | |||||
| /AudioConsole.X/build/ChaletDuinoV2_795F512H_/production/Source/WiFiCtrl.o.d | |||||
| @@ -8,3 +8,94 @@ | |||||
| #include <stdio.h> | #include <stdio.h> | ||||
| void AudioConsoleIFExecuteMasterCommand(int SenderID, int Command, unsigned char *Data, int DataSize) | |||||
| { | |||||
| switch(Command) | |||||
| { | |||||
| case AV_RECEIVER_INTERFACE_ACK: | |||||
| { | |||||
| break; | |||||
| } | |||||
| case AV_RECEIVER_INTERFACE_GENERAL_STATUS_RESPONSE: | |||||
| { | |||||
| break; | |||||
| } | |||||
| case AV_RECEIVER_INTERFACE_SET_MAIN_POWER_RESPONSE: | |||||
| { | |||||
| break; | |||||
| } | |||||
| case AV_RECEIVER_INTERFACE_SET_ZONE2_RESPONSE: | |||||
| { | |||||
| break; | |||||
| } | |||||
| case AV_RECEIVER_INTERFACE_SET_MAIN_ZONE_RESPONSE: | |||||
| { | |||||
| break; | |||||
| } | |||||
| case AV_RECEIVER_INTERFACE_SET_SPEAKERS_RESPONSE: | |||||
| { | |||||
| break; | |||||
| } | |||||
| case AV_RECEIVER_INTERFACE_SEND_DIRECT_CMD_RESPONSE: | |||||
| { | |||||
| break; | |||||
| } | |||||
| case AV_RECEIVER_INTERFACE_SELECT_SCENE_RESPONSE: | |||||
| { | |||||
| break; | |||||
| } | |||||
| case AV_RECEIVER_INTERFACE_SET_MAIN_VOLUME_RESPONSE: | |||||
| { | |||||
| break; | |||||
| } | |||||
| case AV_RECEIVER_INTERFACE_SET_ZONE2_VOLUME_RESPONSE: | |||||
| { | |||||
| break; | |||||
| } | |||||
| case AV_RECEIVER_INTERFACE_SET_ZONE2_INPUT_RESPONSE: | |||||
| { | |||||
| break; | |||||
| } | |||||
| case AV_RECEIVER_INTERFACE_SET_SYNC_Z2_WITH_Z1_RESPONSE: | |||||
| { | |||||
| break; | |||||
| } | |||||
| case ETH_NETWK_DEVICE_INFO_REQUEST: | |||||
| { | |||||
| char data[2]; | |||||
| data[0] = ID_AVRECEIVER_CONSOLE_INTERFACE; | |||||
| data[1] = MY_DEVICE_ADDRESS; | |||||
| int PayloadSize; | |||||
| unsigned char *response = ProtocolGetFrame(ID_MASTER,MASTER_ADDRESS,ID_ETHERNET_VIRTUAL,ETH_NETWK_DEVICE_INFO_RESPONSE, data,2,0, &PayloadSize); | |||||
| SendAudioInterfaceData((char*)response,PayloadSize); | |||||
| break; | |||||
| } | |||||
| case ETH_NETWK_SET_DEVICE_INFO_ACK: | |||||
| { | |||||
| // LTENetworInterfaceExecSM(LTE_NWI_MASTER_CONNECTED_EVENT); | |||||
| break; | |||||
| } | |||||
| case ETH_NETWK_CONNECTION_REFUSED: | |||||
| { | |||||
| break; | |||||
| } | |||||
| case AV_RECEIVER_INTERFACE_GENERAL_STATUS_REQUEST: | |||||
| case AV_RECEIVER_INTERFACE_SET_MAIN_POWER_REQUEST: | |||||
| case AV_RECEIVER_INTERFACE_SET_ZONE2_REQUEST: | |||||
| case AV_RECEIVER_INTERFACE_SET_MAIN_ZONE_REQUEST: | |||||
| case AV_RECEIVER_INTERFACE_SET_SPEAKERS_REQUEST: | |||||
| case AV_RECEIVER_INTERFACE_SEND_DIRECT_CMD_REQUEST: | |||||
| case AV_RECEIVER_INTERFACE_SELECT_SCENE_REQUEST: | |||||
| case AV_RECEIVER_INTERFACE_SET_MAIN_VOLUME_REQUEST: | |||||
| case AV_RECEIVER_INTERFACE_SET_ZONE2_VOLUME_REQUEST: | |||||
| case AV_RECEIVER_INTERFACE_SET_ZONE2_INPUT_REQUEST: | |||||
| case AV_RECEIVER_INTERFACE_SET_SYNC_Z2_WITH_Z1_REQUEST: | |||||
| default: | |||||
| { | |||||
| } | |||||
| } | |||||
| } | |||||
| @@ -15,11 +15,10 @@ enum eAudioConsoleIFConnectionStates | |||||
| AUDIO_CONSOLE_IF_CONNECTED | AUDIO_CONSOLE_IF_CONNECTED | ||||
| }; | }; | ||||
| int InitAudioConsoleInterface(void); | |||||
| int AudioConsoleIFConnectToMasterCtrl(void); | |||||
| int AudioConsoleInterfaceInit(void); | |||||
| void TickAudioConsoleInterface(void); | void TickAudioConsoleInterface(void); | ||||
| void AudioConsoleInterfaceSM(int Event); | void AudioConsoleInterfaceSM(int Event); | ||||
| void NewAudioConsoleIFMsgReceived(char* Message); | |||||
| void AudioConsoleIFExecuteMasterCommand(int SenderID, int Command, unsigned char *Data, int DataSize); | |||||
| //bool SendFrame(unsigned char DestDevice,unsigned char DestAddress, unsigned char SenderDevice, unsigned char Cmd, unsigned char *Data,unsigned int Size,unsigned char Flags); | //bool SendFrame(unsigned char DestDevice,unsigned char DestAddress, unsigned char SenderDevice, unsigned char Cmd, unsigned char *Data,unsigned int Size,unsigned char Flags); | ||||
| @@ -29,7 +29,7 @@ unsigned int BootloaderCRC = 0; | |||||
| unsigned int BtldrComputedCRC = CRC_START_32; | unsigned int BtldrComputedCRC = CRC_START_32; | ||||
| unsigned char *BootloaderRxPtr; | unsigned char *BootloaderRxPtr; | ||||
| unsigned char BootloaderCommand = 0; | unsigned char BootloaderCommand = 0; | ||||
| unsigned char BootloaderState = RxHeader1; | |||||
| unsigned char BootloaderState = BLRxHeader1; | |||||
| const unsigned char *BootloaderDataStartPtr = &BootloaderBuffer[9]; | const unsigned char *BootloaderDataStartPtr = &BootloaderBuffer[9]; | ||||
| @@ -45,17 +45,17 @@ void BootloaderProtocolStateMachine(unsigned char Data) | |||||
| { | { | ||||
| switch(BootloaderState) | switch(BootloaderState) | ||||
| { | { | ||||
| case Initialization: //Reset all pointers and data... | |||||
| case BLInitialization: //Reset all pointers and data... | |||||
| { | { | ||||
| BootloaderDataSize = 0; | BootloaderDataSize = 0; | ||||
| BootloaderBufPtr = 0; | BootloaderBufPtr = 0; | ||||
| BootloaderCommand = 0; | BootloaderCommand = 0; | ||||
| BootloaderCRC = 0; | BootloaderCRC = 0; | ||||
| BootloaderState = RxHeader1; | |||||
| BootloaderState = BLRxHeader1; | |||||
| BtldrComputedCRC = CRC_START_32; | BtldrComputedCRC = CRC_START_32; | ||||
| break; | break; | ||||
| } | } | ||||
| case RxHeader1: //Wait for data header... | |||||
| case BLRxHeader1: //Wait for data header... | |||||
| { | { | ||||
| BootloaderHeader <<= 8; | BootloaderHeader <<= 8; | ||||
| BootloaderHeader += Data; //0xDE | BootloaderHeader += Data; //0xDE | ||||
| @@ -63,7 +63,7 @@ void BootloaderProtocolStateMachine(unsigned char Data) | |||||
| if(Data == BOOTLOADER_FRAME_HEADER_1) | if(Data == BOOTLOADER_FRAME_HEADER_1) | ||||
| { | { | ||||
| BootloaderState = RxHeader2; | |||||
| BootloaderState = BLRxHeader2; | |||||
| } | } | ||||
| else | else | ||||
| { | { | ||||
| @@ -71,7 +71,7 @@ void BootloaderProtocolStateMachine(unsigned char Data) | |||||
| } | } | ||||
| break; | break; | ||||
| } | } | ||||
| case RxHeader2: //Wait for data header... | |||||
| case BLRxHeader2: //Wait for data header... | |||||
| { | { | ||||
| BootloaderHeader <<= 8; | BootloaderHeader <<= 8; | ||||
| BootloaderHeader += Data; //0xAD | BootloaderHeader += Data; //0xAD | ||||
| @@ -79,7 +79,7 @@ void BootloaderProtocolStateMachine(unsigned char Data) | |||||
| if(Data == BOOTLOADER_FRAME_HEADER_2) | if(Data == BOOTLOADER_FRAME_HEADER_2) | ||||
| { | { | ||||
| BootloaderState = RxHeader3; | |||||
| BootloaderState = BLRxHeader3; | |||||
| } | } | ||||
| else | else | ||||
| { | { | ||||
| @@ -87,7 +87,7 @@ void BootloaderProtocolStateMachine(unsigned char Data) | |||||
| } | } | ||||
| break; | break; | ||||
| } | } | ||||
| case RxHeader3: //Wait for data header... | |||||
| case BLRxHeader3: //Wait for data header... | |||||
| { | { | ||||
| BootloaderHeader <<= 8; | BootloaderHeader <<= 8; | ||||
| BootloaderHeader += Data; //0xBE | BootloaderHeader += Data; //0xBE | ||||
| @@ -95,7 +95,7 @@ void BootloaderProtocolStateMachine(unsigned char Data) | |||||
| if(Data == BOOTLOADER_FRAME_HEADER_3) | if(Data == BOOTLOADER_FRAME_HEADER_3) | ||||
| { | { | ||||
| BootloaderState = RxHeader4; | |||||
| BootloaderState = BLRxHeader4; | |||||
| } | } | ||||
| else | else | ||||
| { | { | ||||
| @@ -103,7 +103,7 @@ void BootloaderProtocolStateMachine(unsigned char Data) | |||||
| } | } | ||||
| break; | break; | ||||
| } | } | ||||
| case RxHeader4: //Wait for data header... | |||||
| case BLRxHeader4: //Wait for data header... | |||||
| { | { | ||||
| BootloaderHeader <<= 8; | BootloaderHeader <<= 8; | ||||
| BootloaderHeader += Data; //0xEF | BootloaderHeader += Data; //0xEF | ||||
| @@ -117,44 +117,44 @@ void BootloaderProtocolStateMachine(unsigned char Data) | |||||
| } | } | ||||
| else | else | ||||
| { | { | ||||
| BootloaderState = RxCmd; | |||||
| BootloaderState = BLRxCmd; | |||||
| } | } | ||||
| break; | break; | ||||
| } | } | ||||
| case RxCmd: | |||||
| case BLRxCmd: | |||||
| { | { | ||||
| BootloaderCommand = Data; | BootloaderCommand = Data; | ||||
| BootloaderState = RxPayloadSize1; | |||||
| BootloaderState = BLRxPayloadSize1; | |||||
| BtldrComputedCRC = update_crc_32(BtldrComputedCRC,Data); | BtldrComputedCRC = update_crc_32(BtldrComputedCRC,Data); | ||||
| break; | break; | ||||
| } | } | ||||
| case RxPayloadSize1: | |||||
| case BLRxPayloadSize1: | |||||
| { | { | ||||
| BootloaderDataSize = Data; | BootloaderDataSize = Data; | ||||
| BootloaderState = RxPayloadSize2; | |||||
| BootloaderState = BLRxPayloadSize2; | |||||
| BtldrComputedCRC = update_crc_32(BtldrComputedCRC,Data); | BtldrComputedCRC = update_crc_32(BtldrComputedCRC,Data); | ||||
| break; | break; | ||||
| } | } | ||||
| case RxPayloadSize2: | |||||
| case BLRxPayloadSize2: | |||||
| { | { | ||||
| BootloaderDataSize <<= 8; | BootloaderDataSize <<= 8; | ||||
| BootloaderDataSize += Data; | BootloaderDataSize += Data; | ||||
| BtldrComputedCRC = update_crc_32(BtldrComputedCRC,Data); | BtldrComputedCRC = update_crc_32(BtldrComputedCRC,Data); | ||||
| BootloaderState = RxPayloadSize3; | |||||
| BootloaderState = BLRxPayloadSize3; | |||||
| break; | break; | ||||
| } | } | ||||
| case RxPayloadSize3: | |||||
| case BLRxPayloadSize3: | |||||
| { | { | ||||
| BootloaderDataSize <<= 8; | BootloaderDataSize <<= 8; | ||||
| BootloaderDataSize += Data; | BootloaderDataSize += Data; | ||||
| BtldrComputedCRC = update_crc_32(BtldrComputedCRC,Data); | BtldrComputedCRC = update_crc_32(BtldrComputedCRC,Data); | ||||
| BootloaderState = RxPayloadSize4; | |||||
| BootloaderState = BLRxPayloadSize4; | |||||
| break; | break; | ||||
| } | } | ||||
| case RxPayloadSize4: | |||||
| case BLRxPayloadSize4: | |||||
| { | { | ||||
| BootloaderDataSize <<= 8; | BootloaderDataSize <<= 8; | ||||
| BootloaderDataSize += Data; | BootloaderDataSize += Data; | ||||
| @@ -169,15 +169,15 @@ void BootloaderProtocolStateMachine(unsigned char Data) | |||||
| if(BootloaderDataSize == 0) | if(BootloaderDataSize == 0) | ||||
| { | { | ||||
| BootloaderState = RxCRC1; | |||||
| BootloaderState = BLRxCRC1; | |||||
| } | } | ||||
| else | else | ||||
| { | { | ||||
| BootloaderState = RxPayload; | |||||
| BootloaderState = BLRxPayload; | |||||
| } | } | ||||
| break; | break; | ||||
| } | } | ||||
| case RxPayload: //Data size | |||||
| case BLRxPayload: //Data size | |||||
| { | { | ||||
| *BootloaderRxPtr = Data; | *BootloaderRxPtr = Data; | ||||
| BootloaderRxPtr++; | BootloaderRxPtr++; | ||||
| @@ -187,33 +187,33 @@ void BootloaderProtocolStateMachine(unsigned char Data) | |||||
| if(BootloaderDataCtr == BootloaderDataSize) | if(BootloaderDataCtr == BootloaderDataSize) | ||||
| { | { | ||||
| BootloaderState = RxCRC1; | |||||
| BootloaderState = BLRxCRC1; | |||||
| break; | break; | ||||
| } | } | ||||
| break; | break; | ||||
| } | } | ||||
| case RxCRC1: //Data size | |||||
| case BLRxCRC1: //Data size | |||||
| { | { | ||||
| BootloaderCRC = Data; | BootloaderCRC = Data; | ||||
| BootloaderState = RxCRC2; | |||||
| BootloaderState = BLRxCRC2; | |||||
| break; | break; | ||||
| } | } | ||||
| case RxCRC2: //Data size | |||||
| case BLRxCRC2: //Data size | |||||
| { | { | ||||
| BootloaderCRC <<= 8; | BootloaderCRC <<= 8; | ||||
| BootloaderCRC += Data; | BootloaderCRC += Data; | ||||
| BootloaderState = RxCRC3; | |||||
| BootloaderState = BLRxCRC3; | |||||
| break; | break; | ||||
| } | } | ||||
| case RxCRC3: //Data size | |||||
| case BLRxCRC3: //Data size | |||||
| { | { | ||||
| BootloaderCRC <<= 8; | BootloaderCRC <<= 8; | ||||
| BootloaderCRC += Data; | BootloaderCRC += Data; | ||||
| BootloaderState = RxCRC4; | |||||
| BootloaderState = BLRxCRC4; | |||||
| break; | break; | ||||
| } | } | ||||
| case RxCRC4: //Data size | |||||
| case BLRxCRC4: //Data size | |||||
| { | { | ||||
| BootloaderCRC <<= 8; | BootloaderCRC <<= 8; | ||||
| BootloaderCRC += Data; | BootloaderCRC += Data; | ||||
| @@ -257,7 +257,7 @@ void BootloaderProtocolResetStateMachine() | |||||
| BootloaderBufPtr = 0; | BootloaderBufPtr = 0; | ||||
| BootloaderCommand = 0; | BootloaderCommand = 0; | ||||
| BootloaderCRC = 0; | BootloaderCRC = 0; | ||||
| BootloaderState = RxHeader1; | |||||
| BootloaderState = BLRxHeader1; | |||||
| BootloaderDataCtr = 0; | BootloaderDataCtr = 0; | ||||
| BtldrComputedCRC = CRC_START_32; | BtldrComputedCRC = CRC_START_32; | ||||
| BootloaderRxPtr = &BootloaderBuffer[0]; | BootloaderRxPtr = &BootloaderBuffer[0]; | ||||
| @@ -26,23 +26,23 @@ jean-francois.martel@polymtl.ca | |||||
| #define BOOTLOADER_FRAME_HEADER_4 0xEF | #define BOOTLOADER_FRAME_HEADER_4 0xEF | ||||
| #define PROTOCOL_INFO_DATA_SIZE 13 //Header + Cmd + Size + CRC = 13 bytes | #define PROTOCOL_INFO_DATA_SIZE 13 //Header + Cmd + Size + CRC = 13 bytes | ||||
| //State Machine states | //State Machine states | ||||
| enum States | |||||
| enum BLStates | |||||
| { | { | ||||
| Initialization, | |||||
| RxHeader1, | |||||
| RxHeader2, | |||||
| RxHeader3, | |||||
| RxHeader4, | |||||
| RxCmd, | |||||
| RxPayloadSize1, | |||||
| RxPayloadSize2, | |||||
| RxPayloadSize3, | |||||
| RxPayloadSize4, | |||||
| RxPayload, | |||||
| RxCRC1, | |||||
| RxCRC2, | |||||
| RxCRC3, | |||||
| RxCRC4 | |||||
| BLInitialization, | |||||
| BLRxHeader1, | |||||
| BLRxHeader2, | |||||
| BLRxHeader3, | |||||
| BLRxHeader4, | |||||
| BLRxCmd, | |||||
| BLRxPayloadSize1, | |||||
| BLRxPayloadSize2, | |||||
| BLRxPayloadSize3, | |||||
| BLRxPayloadSize4, | |||||
| BLRxPayload, | |||||
| BLRxCRC1, | |||||
| BLRxCRC2, | |||||
| BLRxCRC3, | |||||
| BLRxCRC4 | |||||
| }; | }; | ||||
| enum eBootloaderProtocolDataTransferError | enum eBootloaderProtocolDataTransferError | ||||
| @@ -27,8 +27,8 @@ static char MyDeviceID = ID_SPRINKLER_DEVICE; | |||||
| char mFrameData[MAX_MESSAGE_SIZE+10]; | char mFrameData[MAX_MESSAGE_SIZE+10]; | ||||
| ProtocolData_t mLoraProtocolData; | |||||
| ProtocolData_t mLTEProtocolData; | |||||
| ProtocolData_t mAudioConsoleIFProtocolData; | |||||
| ProtocolData_t mMasterCtrlIFData; | |||||
| void ProtocolInit(int User) | void ProtocolInit(int User) | ||||
| @@ -36,14 +36,14 @@ void ProtocolInit(int User) | |||||
| ProtocolData_t *DataStruct; | ProtocolData_t *DataStruct; | ||||
| switch(User) | switch(User) | ||||
| { | { | ||||
| case NETWORK_PROTOCOL_USER_LORA: | |||||
| case NETWORK_PROTOCOL_USER_AUDIO_CONSOLE_IF: | |||||
| { | { | ||||
| DataStruct = &mLoraProtocolData; | |||||
| DataStruct = &mAudioConsoleIFProtocolData; | |||||
| break; | break; | ||||
| } | } | ||||
| case NETWORK_PROTOCOL_USER_LTE: | |||||
| case NETWORK_PROTOCOL_USER_MASTER_CTRL_IF: | |||||
| { | { | ||||
| DataStruct = &mLTEProtocolData; | |||||
| DataStruct = &mMasterCtrlIFData; | |||||
| break; | break; | ||||
| } | } | ||||
| default: | default: | ||||
| @@ -214,11 +214,11 @@ void StateMachine(unsigned char Data,ProtocolData_t *ProtocolData ) | |||||
| break; | break; | ||||
| } | } | ||||
| // NewMasterMessageReceived(mRxData); | // NewMasterMessageReceived(mRxData); | ||||
| if(ProtocolData == &mLoraProtocolData) | |||||
| if(ProtocolData == &mAudioConsoleIFProtocolData) | |||||
| { | { | ||||
| // ExecuteLoraMasterCommand(ProtocolData->Command,ProtocolMsgDataPtr(ProtocolData),ProtocolData->DataSize); | // ExecuteLoraMasterCommand(ProtocolData->Command,ProtocolMsgDataPtr(ProtocolData),ProtocolData->DataSize); | ||||
| } | } | ||||
| else if(ProtocolData == &mLTEProtocolData) | |||||
| else if(ProtocolData == &mMasterCtrlIFData) | |||||
| { | { | ||||
| // ExecuteLTEMasterCommand(ProtocolData->SenderID, ProtocolData->Command,ProtocolMsgDataPtr(ProtocolData),ProtocolData->DataSize); | // ExecuteLTEMasterCommand(ProtocolData->SenderID, ProtocolData->Command,ProtocolMsgDataPtr(ProtocolData),ProtocolData->DataSize); | ||||
| } | } | ||||
| @@ -232,20 +232,28 @@ void StateMachine(unsigned char Data,ProtocolData_t *ProtocolData ) | |||||
| } | } | ||||
| } | } | ||||
| } | } | ||||
| void ProtocolAnalyzeBuffer(unsigned char *Data, int size, int User) | |||||
| { | |||||
| int i = 0; | |||||
| for(i = 0; i < size; i++) | |||||
| { | |||||
| ProtocolAnalyzeNewData(Data[i],User); | |||||
| } | |||||
| } | |||||
| void ProtocolAnalyzeNewData(unsigned char Data, int User) | void ProtocolAnalyzeNewData(unsigned char Data, int User) | ||||
| { | { | ||||
| ProtocolData_t *DataStruct; | ProtocolData_t *DataStruct; | ||||
| switch(User) | switch(User) | ||||
| { | { | ||||
| case NETWORK_PROTOCOL_USER_LORA: | |||||
| case NETWORK_PROTOCOL_USER_AUDIO_CONSOLE_IF: | |||||
| { | { | ||||
| DataStruct = &mLoraProtocolData; | |||||
| DataStruct = &mAudioConsoleIFProtocolData; | |||||
| break; | break; | ||||
| } | } | ||||
| case NETWORK_PROTOCOL_USER_LTE: | |||||
| case NETWORK_PROTOCOL_USER_MASTER_CTRL_IF: | |||||
| { | { | ||||
| DataStruct = &mLTEProtocolData; | |||||
| DataStruct = &mMasterCtrlIFData; | |||||
| break; | break; | ||||
| } | } | ||||
| default: | default: | ||||
| @@ -14,7 +14,9 @@ jean-francois.martel@polymtl.ca | |||||
| #ifndef BOOTLOADERINTERFACE_H | #ifndef BOOTLOADERINTERFACE_H | ||||
| #define BOOTLOADERINTERFACE_H | |||||
| #define BOOTLOADERINTERFACE_H | |||||
| #ifndef NETWORKPROTOCOL_H | |||||
| #define NETWORKPROTOCOL_H | |||||
| //Protocol buffer specific definitions | //Protocol buffer specific definitions | ||||
| #include "ProtocolDefs.h" | #include "ProtocolDefs.h" | ||||
| @@ -26,8 +28,8 @@ jean-francois.martel@polymtl.ca | |||||
| enum eProtocolUser | enum eProtocolUser | ||||
| { | { | ||||
| NETWORK_PROTOCOL_USER_LORA, | |||||
| NETWORK_PROTOCOL_USER_LTE | |||||
| NETWORK_PROTOCOL_USER_AUDIO_CONSOLE_IF, | |||||
| NETWORK_PROTOCOL_USER_MASTER_CTRL_IF | |||||
| }; | }; | ||||
| //State Machine states | //State Machine states | ||||
| @@ -91,6 +93,7 @@ unsigned char *BmpDataPtr; | |||||
| void ProtocolInit(int User); | void ProtocolInit(int User); | ||||
| void StateMachine(unsigned char STATE, ProtocolData_t *ProtocolData); | void StateMachine(unsigned char STATE, ProtocolData_t *ProtocolData); | ||||
| void ProtocolAnalyzeNewData(unsigned char RxByte, int User); | void ProtocolAnalyzeNewData(unsigned char RxByte, int User); | ||||
| void ProtocolAnalyzeBuffer(unsigned char *Data, int size, int User); | |||||
| void ResetStateMachine(ProtocolData_t *ProtocolData); | void ResetStateMachine(ProtocolData_t *ProtocolData); | ||||
| void ProtocolExecCmd(void); | void ProtocolExecCmd(void); | ||||
| void ProtocolAcknowledge(unsigned char Answer,unsigned char Cmd, unsigned char Data); | void ProtocolAcknowledge(unsigned char Answer,unsigned char Cmd, unsigned char Data); | ||||
| @@ -99,4 +102,5 @@ unsigned char ProtocolCalcCrc(unsigned char* Buffer,unsigned char size); | |||||
| unsigned char ProtocolIsReceiving(void); | unsigned char ProtocolIsReceiving(void); | ||||
| unsigned char *ProtocolMsgDataPtr(ProtocolData_t *ProtocolData); | unsigned char *ProtocolMsgDataPtr(ProtocolData_t *ProtocolData); | ||||
| #endif | |||||
| #endif | #endif | ||||
| @@ -247,16 +247,26 @@ enum AV_RECEIVER_INTERFACE_CMDS | |||||
| AV_RECEIVER_INTERFACE_GENERAL_STATUS_RESPONSE, | AV_RECEIVER_INTERFACE_GENERAL_STATUS_RESPONSE, | ||||
| AV_RECEIVER_INTERFACE_SET_MAIN_POWER_REQUEST, | AV_RECEIVER_INTERFACE_SET_MAIN_POWER_REQUEST, | ||||
| AV_RECEIVER_INTERFACE_SET_MAIN_POWER_RESPONSE, | AV_RECEIVER_INTERFACE_SET_MAIN_POWER_RESPONSE, | ||||
| AV_RECEIVER_INTERFACE_SET_SPEAKERB_REQUEST, | |||||
| AV_RECEIVER_INTERFACE_SET_SPEAKERB_RESPONSE, | |||||
| AV_RECEIVER_INTERFACE_SET_SPEAKERA_REQUEST, | |||||
| AV_RECEIVER_INTERFACE_SET_SPEAKERA_RESPONSE, | |||||
| AV_RECEIVER_INTERFACE_SET_ZONE2_REQUEST, | |||||
| AV_RECEIVER_INTERFACE_SET_ZONE2_RESPONSE, | |||||
| AV_RECEIVER_INTERFACE_SET_MAIN_ZONE_REQUEST, | |||||
| AV_RECEIVER_INTERFACE_SET_MAIN_ZONE_RESPONSE, | |||||
| AV_RECEIVER_INTERFACE_SET_SPEAKERS_REQUEST, | AV_RECEIVER_INTERFACE_SET_SPEAKERS_REQUEST, | ||||
| AV_RECEIVER_INTERFACE_SET_SPEAKERS_RESPONSE, | AV_RECEIVER_INTERFACE_SET_SPEAKERS_RESPONSE, | ||||
| AV_RECEIVER_INTERFACE_SEND_DIRECT_CMD_REQUEST, | AV_RECEIVER_INTERFACE_SEND_DIRECT_CMD_REQUEST, | ||||
| AV_RECEIVER_INTERFACE_SEND_DIRECT_CMD_RESPONSE, | AV_RECEIVER_INTERFACE_SEND_DIRECT_CMD_RESPONSE, | ||||
| AV_RECEIVER_INTERFACE_SELECT_SCENE_REQUEST, | |||||
| AV_RECEIVER_INTERFACE_SELECT_SCENE_RESPONSE, | |||||
| AV_RECEIVER_INTERFACE_SET_MAIN_VOLUME_REQUEST, | |||||
| AV_RECEIVER_INTERFACE_SET_MAIN_VOLUME_RESPONSE, | |||||
| AV_RECEIVER_INTERFACE_SET_ZONE2_VOLUME_REQUEST, | |||||
| AV_RECEIVER_INTERFACE_SET_ZONE2_VOLUME_RESPONSE, | |||||
| AV_RECEIVER_INTERFACE_SET_ZONE2_INPUT_REQUEST, | |||||
| AV_RECEIVER_INTERFACE_SET_ZONE2_INPUT_RESPONSE, | |||||
| AV_RECEIVER_INTERFACE_SET_SYNC_Z2_WITH_Z1_REQUEST, | |||||
| AV_RECEIVER_INTERFACE_SET_SYNC_Z2_WITH_Z1_RESPONSE, | |||||
| MAX_AV_RECEIVER_INTERFACE_CMD | MAX_AV_RECEIVER_INTERFACE_CMD | ||||
| }; | }; | ||||
| @@ -12,6 +12,7 @@ | |||||
| #include "BootloaderProtocol.h" | #include "BootloaderProtocol.h" | ||||
| #include "SPI_Flash.h" | #include "SPI_Flash.h" | ||||
| #include "FlashMapping.h" | #include "FlashMapping.h" | ||||
| #include "NetworkProtocol.h" | |||||
| /** IP address of host. */ | /** IP address of host. */ | ||||
| @@ -241,13 +242,10 @@ static void socket_cb(SOCKET sock, uint8 u8Msg, void *pvMsg) | |||||
| } | } | ||||
| else if(sock == NetworkSocket) | else if(sock == NetworkSocket) | ||||
| { | { | ||||
| //Fwd data to Network... | |||||
| recv(NetworkSocket, NetworkRxBuf, sizeof(NetworkRxBuf), 0); | recv(NetworkSocket, NetworkRxBuf, sizeof(NetworkRxBuf), 0); | ||||
| } | } | ||||
| else if(sock == BootloaderSocket) | else if(sock == BootloaderSocket) | ||||
| { | { | ||||
| //Fwd data to Network... | |||||
| if(recv(BootloaderSocket, BootloaderRxBuf, sizeof(BootloaderRxBuf), 0) != 0) | if(recv(BootloaderSocket, BootloaderRxBuf, sizeof(BootloaderRxBuf), 0) != 0) | ||||
| { | { | ||||
| char toto; | char toto; | ||||
| @@ -256,6 +254,12 @@ static void socket_cb(SOCKET sock, uint8 u8Msg, void *pvMsg) | |||||
| BootloaderProtocolProtocolAnalyzeNewData(pstrRecvMsg->pu8Buffer, pstrRecvMsg->s16BufferSize); | BootloaderProtocolProtocolAnalyzeNewData(pstrRecvMsg->pu8Buffer, pstrRecvMsg->s16BufferSize); | ||||
| } | } | ||||
| else if(sock == AudioConsoleIFSocket) | |||||
| { | |||||
| recv(AudioConsoleIFSocket, AudioConsoleIFRxBuf, sizeof(AudioConsoleIFRxBuf), 0); | |||||
| ProtocolAnalyzeBuffer(AudioConsoleIFRxBuf, pstrRecvMsg->s16BufferSize,NETWORK_PROTOCOL_USER_AUDIO_CONSOLE_IF); | |||||
| } | |||||
| } | } | ||||
| else //Socket must be closed. | else //Socket must be closed. | ||||
| { | { | ||||
| @@ -286,6 +290,12 @@ static void socket_cb(SOCKET sock, uint8 u8Msg, void *pvMsg) | |||||
| printf("Bootloader client disconnected\n"); | printf("Bootloader client disconnected\n"); | ||||
| BootloaderDeactivateBootloader(); | BootloaderDeactivateBootloader(); | ||||
| } | } | ||||
| else if(sock == AudioConsoleIFSocket) | |||||
| { | |||||
| close(AudioConsoleIFSocket); | |||||
| AudioConsoleIFSocket = -1; | |||||
| printf("Audio Console Interface with Master Ctrl disconnected\n"); | |||||
| } | |||||
| } | } | ||||
| break; | break; | ||||
| } | } | ||||
| @@ -657,6 +667,11 @@ char GetWiFiSate() | |||||
| return mWiFiState; | return mWiFiState; | ||||
| } | } | ||||
| bool IsWiFiConnected() | |||||
| { | |||||
| return mWiFiState == WIFI_CONNECTED_STATE; | |||||
| } | |||||
| uint32 GetCurIPAddress() | uint32 GetCurIPAddress() | ||||
| { | { | ||||
| return mCurIPAddress; | return mCurIPAddress; | ||||
| @@ -886,6 +901,11 @@ int IsBootloaderClientConnected() | |||||
| int ConnectAudioInterface() | int ConnectAudioInterface() | ||||
| { | { | ||||
| if(IsWiFiConnected() == false) | |||||
| { | |||||
| return 0; | |||||
| } | |||||
| struct sockaddr_in strAddr; | struct sockaddr_in strAddr; | ||||
| AudioConsoleIFSocket = socket(AF_INET, SOCK_STREAM,0); | AudioConsoleIFSocket = socket(AF_INET, SOCK_STREAM,0); | ||||
| @@ -79,6 +79,7 @@ int TurnOFFWiFi(); | |||||
| int CloseSockets(); | int CloseSockets(); | ||||
| char GetWiFiSate(); | char GetWiFiSate(); | ||||
| uint32 GetCurIPAddress(); | uint32 GetCurIPAddress(); | ||||
| bool IsWiFiConnected(); | |||||
| int OpenTerminalServer(); | int OpenTerminalServer(); | ||||
| void SendTerminalData(uint8 *data, int size); | void SendTerminalData(uint8 *data, int size); | ||||
| @@ -13,7 +13,7 @@ build/ChaletDuinoV2_795F512H_/production/Source/WiFiCtrl.o: \ | |||||
| Source/Terminal.h Source/winc3400_142/driver/include/m2m_periph.h \ | Source/Terminal.h Source/winc3400_142/driver/include/m2m_periph.h \ | ||||
| Source/ProtocolDefs.h Source/BoardCfg.h Source/BoardCfg_ChaletduinoV2.h \ | Source/ProtocolDefs.h Source/BoardCfg.h Source/BoardCfg_ChaletduinoV2.h \ | ||||
| Source/timer.h Source/BootloaderProtocol.h Source/SPI_Flash.h \ | Source/timer.h Source/BootloaderProtocol.h Source/SPI_Flash.h \ | ||||
| Source/FlashMapping.h | |||||
| Source/FlashMapping.h Source/NetworkProtocol.h | |||||
| Source/WiFiCtrl.h: | Source/WiFiCtrl.h: | ||||
| @@ -58,3 +58,5 @@ Source/BootloaderProtocol.h: | |||||
| Source/SPI_Flash.h: | Source/SPI_Flash.h: | ||||
| Source/FlashMapping.h: | Source/FlashMapping.h: | ||||
| Source/NetworkProtocol.h: | |||||
| @@ -1,5 +1,5 @@ | |||||
| # | # | ||||
| #Tue Feb 18 14:45:13 EST 2025 | |||||
| #Wed Feb 19 17:06:21 EST 2025 | |||||
| ChaletDuinoV2_795F512H_.languagetoolchain.dir=C\:\\Program Files\\Microchip\\xc32\\v1.33\\bin | ChaletDuinoV2_795F512H_.languagetoolchain.dir=C\:\\Program Files\\Microchip\\xc32\\v1.33\\bin | ||||
| default.languagetoolchain.dir=C\:\\Program Files\\Microchip\\xc32\\v1.33\\bin | default.languagetoolchain.dir=C\:\\Program Files\\Microchip\\xc32\\v1.33\\bin | ||||
| proj.dir=D\:\\Main\\PicDev\\Projets\\AudioConsole\\AudioConsole.X | proj.dir=D\:\\Main\\PicDev\\Projets\\AudioConsole\\AudioConsole.X | ||||
| @@ -49,13 +49,10 @@ | |||||
| <open-files xmlns="http://www.netbeans.org/ns/projectui-open-files/2"> | <open-files xmlns="http://www.netbeans.org/ns/projectui-open-files/2"> | ||||
| <group> | <group> | ||||
| <file>file:/D:/Main/PicDev/Projets/AudioConsole/AudioConsole.X/Source/WiFiCtrl.c</file> | <file>file:/D:/Main/PicDev/Projets/AudioConsole/AudioConsole.X/Source/WiFiCtrl.c</file> | ||||
| <file>file:/D:/Main/PicDev/Projets/AudioConsole/AudioConsole.X/Source/main.c</file> | |||||
| <file>file:/D:/Main/PicDev/Projets/AudioConsole/AudioConsole.X/Source/AudioConsoleInterface.h</file> | <file>file:/D:/Main/PicDev/Projets/AudioConsole/AudioConsole.X/Source/AudioConsoleInterface.h</file> | ||||
| <file>file:/D:/Main/PicDev/Projets/AudioConsole/AudioConsole.X/Source/NetworkProtocol.c</file> | |||||
| <file>file:/D:/Main/PicDev/Projets/AudioConsole/AudioConsole.X/Source/AudioConsoleInterface.c</file> | <file>file:/D:/Main/PicDev/Projets/AudioConsole/AudioConsole.X/Source/AudioConsoleInterface.c</file> | ||||
| <file>file:/D:/Main/PicDev/Projets/AudioConsole/AudioConsole.X/Source/winc3400_142/socket/source/socket.c</file> | |||||
| <file>file:/D:/Main/PicDev/Projets/AudioConsole/AudioConsole.X/Source/winc3400_142/socket/include/socket.h</file> | |||||
| <file>file:/D:/Main/PicDev/Projets/AudioConsole/AudioConsole.X/Source/ProtocolDefs.h</file> | <file>file:/D:/Main/PicDev/Projets/AudioConsole/AudioConsole.X/Source/ProtocolDefs.h</file> | ||||
| <file>file:/D:/Main/PicDev/Projets/AudioConsole/AudioConsole.X/Source/Terminal.c</file> | |||||
| <file>file:/D:/Main/PicDev/Projets/AudioConsole/AudioConsole.X/Source/WiFiCtrl.h</file> | <file>file:/D:/Main/PicDev/Projets/AudioConsole/AudioConsole.X/Source/WiFiCtrl.h</file> | ||||
| </group> | </group> | ||||
| </open-files> | </open-files> | ||||