My Project
 All Classes
MWCommon.h
1 // CONFIDENTIAL and PROPRIETARY software of Magewell Electronics Co., Ltd.
3 // Copyright (c) 2011-2014 Magewell Electronics Co., Ltd. (Nanjing)
4 // All rights reserved.
5 // This copyright notice MUST be reproduced on all authorized copies.
7 
8 #pragma once
9 
10 #pragma pack(push)
11 #pragma pack(1)
12 
13 // Firmware header
14 #define MW_SERIAL_NO_LEN 16
15 #define MW_FAMILY_NAME_LEN 64
16 #define MW_PRODUCT_NAME_LEN 64
17 
18 typedef enum _MW_FAMILY_ID {
19  MW_FAMILY_ID_PRO_CAPTURE = 0x00,
20  MW_FAMILY_ID_VALUE_CAPTURE = 0x01,
21  MW_FAMILY_ID_USB_CAPTURE = 0x02
22 } MW_FAMILY_ID;
23 
24 typedef struct _MW_DATE_TIME {
25  WORD wYear;
26  BYTE byMonth;
27  BYTE byDay;
28  BYTE byHour;
29  BYTE byMinute;
30  BYTE bySecond;
31  BYTE byReserved;
32 } MW_DATE_TIME;
33 
34 #define MW_FIRMWARE_HEADER_MAGIC ((DWORD)('M') | ((DWORD)('W') << 8) | ((DWORD)('F') << 16) | ((DWORD)('H') << 24))
35 #define MW_FIRMWARE_HEADER_VERSION 1
36 #define MW_FIRMWARE_NAME_LEN 64
37 #define MW_FIRMWARE_SECTION_NAME_LEN 16
38 
39 #define MW_MAX_NUM_FIRMWARE_SECTIONS 16
40 
41 // Compatible ID: wProductID, chHardwareVersion and byFirmwareID
42 typedef struct _MW_FIRMWARE_INFO_HEADER {
43  DWORD dwMagic;
44  DWORD dwCheckSum;
45  WORD wVersion;
46  WORD cbHeader;
47  WORD wProductID;
48  CHAR chHardwareVersion;
49  BYTE byFirmwareID;
50  DWORD dwFirmwareVersion;
51  CHAR szProductName[MW_PRODUCT_NAME_LEN];
52  CHAR szFirmwareName[MW_FIRMWARE_NAME_LEN];
53  MW_DATE_TIME dtBuild;
54  BYTE cSections;
56 
58  CHAR szName[MW_FIRMWARE_SECTION_NAME_LEN];
59  DWORD cbOffset;
60  DWORD cbSection;
61  DWORD dwCheckSum;
63 
64 typedef struct _MW_FIRMWARE_HEADER {
65  MW_FIRMWARE_INFO_HEADER infoHeader;
66  MW_FIRMWARE_SECTION_HEADER aSectionHeaders[MW_MAX_NUM_FIRMWARE_SECTIONS];
68 
69 #pragma pack(pop)
Definition: MWCommon.h:42
Definition: MWCommon.h:57
Definition: MWCommon.h:64
Definition: MWCommon.h:24