计算机串口有连续的变化数据输入55 AA 41 4E 41 56 01 4E 00 00 EC 01,数组起始标识为55 AA,如何用串口接收此数组,并将数组中的数据赋值给STRUCT NAV_data
具体的数据格式如下: 

struct NAV_data 
{ unsigned 
long azimuth; 
long roll; 
long pitch; 
int sec_align_left; 
long lon; 
long lat; 
long hgt; 
long vel_x; 
long vel_y; 
long vel_z; 
long distance_run; 
long Ax,Ay,Az; 
long RESERVED; 
int state; 
int code_fault; 
}Nav_data; 

以下是用串口调试助手十六进制显示接收到的一组数据:55 AA 41 4E 41 56 01 4E 00 00 EC 01 00 00 91 FD FF FF 2F 00 06 11 E4 18 F0 89 B9 07 EA 02 00 00 00 00 00 00 E8 FF FF FF F5 FF FF FF 1F 02 00 00 71 B9 FD FF BD 78 FE FF 5F 19 6A FF 2C 36 01 00 01 04 3F 00 2D 

其中55AA是字头,41是数据长度65字节,4E 41 56是常数,接下来的就是需要按长短字节赋值到上面所定义的变量里,例如01 4E 00 00应该是long azimuth,EC 01 00 00应该是long roll 
请问实现此功能的VC源代码如何编写
拜谢!!!!