⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 can.h

📁 用can传输图像
💻 H
字号:
#if !defined(__CAN_H__)
#define __CAN_H__

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

#include <afxtempl.h>//支持模板
#include <afxdisp.h>

#define WM_MY_MESSAGECAN  (WM_USER+100)   // CAN数据帧消息
#define WM_MY_MESSAGEIMAGE  (WM_USER+101)   // 图像帧消息

#define  WINTIME  1000

#define ParametersFRAMELEN 10    //参数帧长度
#define ImageFRAMELEN 16        //图像帧长度


#define HostDevtype 7               //主机Can接口类型
#define HostDevind 0               //主机Can接口类型
#define HostCannum 0               //主机Can接口类型

#define HostAccCode 0x00000000      //can的验证码,屏蔽码和波特率以及滤波方式
#define HostAccMask 0xFFFFFFFF
#define HostFilter 0
#define HostMode 0
#define HostTiming0 0x00
#define HostTiming1 0x14

#define MAXNODE  1000               //最大节点
#define MAXWINDOWS  4				//最多窗口 
#define ResendCount 3               //重传次数

//**********************通信数据帧***********************//
const BYTE ParametersDataFrame [8] = {                  //参数数据帧命令
	    0x023,
		0x023,
		0x010,
		0x054,
		0x055,
		0x055,
		0x055,
		0x055
};

const BYTE ImageDataFrame [8] = {                  //图像数据帧命令
	    0x023,
		0x023,
		0x011,
		0x054,
		0x055,
		0x055,
		0x055,
		0x055
};


const BYTE SwitchesDataFrame [4] = {                  //开关继电器数据帧命令
	    0x023,
		0x023,
		0x020,
		0x076
		
};

const BYTE InsectNumDataFrame [4] = {                  //虫子数量数据帧 
	    0x023,
		0x023,
		0x030,
		0x087
		
};

const BYTE ReSendDataFrame [8] = {                  //请求重发数据帧  
	0x023,
		0x023,
		0x040,
		0x098,
		0x056,
		0x056,
		0x056,
		0x056
};

const BYTE ResponseDataFrame [8] = {                  //应答数据帧
	0x023,
		0x023,
		0x041,
		0x098,
		0x053,
		0x053,
		0x053,
		0x053
};



const BYTE EndDataFrame [8] = {                  //结束数据帧  
	0x023,
		0x023,
		0x042,
		0x098,
		0x057,
		0x057,
		0x057,
		0x057
};


//**********************全局数据结构***********************//
typedef struct{
	BOOL  OnLine;		//是否在线上
	BOOL  IfImage;      //是否有图像传感器
	UINT  ID    ;        //ID号
	FLOAT CO2concentra ; //二氧化碳浓度
	FLOAT IndoorTemperature;  //室内温度
	FLOAT IndoorHumidity;     //室内湿度
	FLOAT OutdoorTemperature;  //室外温度
	FLOAT OutdoorHumidity;     //室外湿度
	FLOAT Temperature[32];      //温度传感器,最多32个
	
}SensorParameters;      //传感器参数



//**********************窗口数据结构***********************//
typedef struct{
	SensorParameters SensorParameter;		//传感器参数
	BOOL OnWork;					//是否显示
	BOOL IfWork;					//能否工作
}WindowParameters;      






typedef struct{
    long ID;
	CHAR STATE;         //=1 ;=2 ;=3;=4;=5;
	BOOL m_bConnected;
}CANSTATE;             //CAN状态,包括ID号,发送状态,连接没


//extern BYTE ParametersRECBUFF[80];      //参数帧缓存区
//extern BYTE ImageRECBUFF[30000];        //图像缓存区

//extern BOOL bReadFrame;
//extern BOOL bReadCOM;
//extern volatile BOOL m_bConnected;           

extern  volatile CANSTATE  CANSTATENOW;      //当前CAN的状态
extern  volatile CANSTATE  CANSTATELAST;	 //上次CAN的状态

extern volatile HANDLE m_hPostMsgEvent; // 用于CAN消息的事件对象

extern volatile HWND m_hTermWnd;

extern volatile UINT ImageBlockCount;

//**********************公共函数***********************//

UINT CANProc(LPVOID pParam);	//检测CAN,通返回0,否-1,参数无用(补)
BOOL SENDCAN(INT ID,CHAR pParam,BYTE *wParam);//向下位机发送通信帧,ID表示号,
											//pParam表示发送类型,wParam表示相关参数,成功返回true、
BOOL SENDCANBroadcasting();
										

BOOL  ConfigConnection();		//配置CAN端口(补)
BOOL  OpenConnection();	//打开端口,参数为当前窗体
void  CloseConnection();
void  CANERR();
  
//VOID  AlarmSignal(BYTE *RECBUFF,UINT LEN); //报警处理,级别最高
//VOID ParameterSignal(BYTE *RECBUFF,UINT LEN);//参数处理
#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -