网站基本代码,猎头公司网站建设方案,苏州招聘网站建设,网页设计跟网站建设结构体#xff1a;
C#中的结构体很少用#xff0c;一般用class
结构体是值类型传递。
public unsafe struct VCI_CAN_OBJ //CAN每帧对象#xff0c;
{ public uint ID;// 帧ID。 【u32】帧id#xff0c;数据格式为靠右对齐。 详情请参照#xff1a; 《…结构体
C#中的结构体很少用一般用class
结构体是值类型传递。
public unsafe struct VCI_CAN_OBJ //CAN每帧对象
{ public uint ID;// 帧ID。 【u32】帧id数据格式为靠右对齐。 详情请参照 《8.附件1 ID对齐方式.pdf》说明文档。public uint TimeStamp; //【u32】设备时间标识。 时间标示从CAN卡上电开始计时计时单位为0.1ms。public byte TimeFlag; //是否使用时间标识1时TimeStamp有效public byte SendType; //发送类型。0时为正常发送发送失败会自动重发重发超时时间为4秒 4秒内没有发出则取消1时为单次发送public byte RemoteFlag; //是否远程帧标志。 0时为数据帧 1时为远程帧数据段空。public byte ExternFlag; //是否扩展帧标志。 0时为标准帧11位ID 1时为扩展帧29位ID。public byte DataLen; //有效字节 DLC (8)即CAN帧Data有几个字节。约束了后面Data[8]中有效字节数。public fixed byte Data[8]; //数据包如DataLen定义为3即Data[0]、 Data[1]、 Data[2]是有效的。public fixed byte Reserved[3];//系统保留。
}fixed是固定的意思//public struct VCI_BOARD_INFO //主板信息{ // VCI_ReadBoardInfo【要先运行VCI_OpenDevice(4,0,0);】 VCI_FindUsbDevice2public UInt16 hw_Version;//【0x0900】硬件版本比如0x0100表示V1.00。public UInt16 fw_Version;//【0x0341】固件版本v3.41public UInt16 dr_Version;//【0x0900】驱动版本public UInt16 in_Version;//【0x0905】接口版本public UInt16 irq_Num;// 【0x00】 保留参数。public byte can_Num; // 【0x02】 表示有几路CAN通道。[MarshalAs(UnmanagedType.ByValArray, SizeConst 20)]public char[] str_Serial_Num;// 板卡序列号。【31F01031C93】[MarshalAs(UnmanagedType.ByValArray, SizeConst 40)]public char[] str_hw_Type;// 硬件类型【55 53 42 43 41 4e 2d 49 49】“USBCAN-II”[MarshalAs(UnmanagedType.ByValArray, SizeConst 4)]public UInt16[] Reserved;// 系统保留。}
C语言的结构体
typedef struct _VCI_CAN_OBJ
{ UINT ID; UINT TimeStamp; BYTE TimeFlag; BYTE SendType; BYTE RemoteFlag; BYTE ExternFlag; BYTE DataLen; BYTE Data[8]; BYTE Reserved[3];
}VCI_CAN_OBJ, *PVCI_CAN_OBJ; //定义了结构体还定义了指针// *是解指针用于获取对象// 是取指针用于取对象地址【注意这个指针是有类型的】