Index: firmware/App/DDCommon.h =================================================================== diff -u -rd23e4fac50c7034e75f1f4a37505f495dcf16b8e -rc4fdfa017d6df768c5bf1223a5a69cafa47d6b42 --- firmware/App/DDCommon.h (.../DDCommon.h) (revision d23e4fac50c7034e75f1f4a37505f495dcf16b8e) +++ firmware/App/DDCommon.h (.../DDCommon.h) (revision c4fdfa017d6df768c5bf1223a5a69cafa47d6b42) @@ -104,6 +104,20 @@ U32 compatibilityRev; ///< DD compatibility revision. } DD_VERSIONS_T; +/// Payload record structure for an FP versions message. +typedef struct +{ + U08 major; ///< FP version major revision. + U08 minor; ///< FP version minor revision. + U08 micro; ///< FP version micro revision. + U16 build; ///< FP build version. + U08 fpgaId; ///< FP FPGA ID. + U08 fpgaMajor; ///< FP FPGA major revision. + U08 fpgaMinor; ///< FP FPGA minor revision. + U08 fpgaLab; ///< FP FPGA lab revision. + U32 compatibilityRev; ///< FP compatibility revision. +} FP_VERSIONS_T; + /// Record defining the fields in a UI version request message. typedef struct { Index: firmware/App/Services/Messaging.c =================================================================== diff -u -r4c340aa7b7dfaff7e23b6d6b3ff010b83f7e5f9c -rc4fdfa017d6df768c5bf1223a5a69cafa47d6b42 --- firmware/App/Services/Messaging.c (.../Messaging.c) (revision 4c340aa7b7dfaff7e23b6d6b3ff010b83f7e5f9c) +++ firmware/App/Services/Messaging.c (.../Messaging.c) (revision c4fdfa017d6df768c5bf1223a5a69cafa47d6b42) @@ -747,6 +747,7 @@ if ( message->hdr.payloadLen == sizeof( UI_VERSIONS_T ) ) { DD_VERSIONS_T ddVersionRecord; + FP_VERSIONS_T fpVersionRecord; // Record UI version information memcpy( (U08*)(&uiVersionRecord), &message->payload, sizeof( UI_VERSIONS_T ) ); @@ -761,6 +762,17 @@ // Send DD version information result = sendMessage( MSG_ID_DD_VERSION_RESPONSE, COMM_BUFFER_OUT_CAN_DD_BROADCAST, (U08*)&ddVersionRecord, sizeof( DD_VERSIONS_T ) ); + + // Build FP version record + fpVersionRecord.major = DD_VERSION_MAJOR; + fpVersionRecord.minor = DD_VERSION_MINOR; + fpVersionRecord.micro = DD_VERSION_MICRO; + fpVersionRecord.build = DD_VERSION_BUILD; + getFPGAVersions( &fpVersionRecord.fpgaId, &fpVersionRecord.fpgaMajor, &fpVersionRecord.fpgaMinor, &fpVersionRecord.fpgaLab ); + fpVersionRecord.compatibilityRev = SW_COMPATIBILITY_REV; + + // Send FP version information + result = sendMessage( MSG_ID_FP_VERSION_RESPONSE, COMM_BUFFER_OUT_CAN_FP_BROADCAST, (U08*)&fpVersionRecord, sizeof( FP_VERSIONS_T ) ); } return result;