#pragma once #include "stdafx.h" #include "struct.h" #include #include "ado.h" #include "BaseVar.h" #include "Device.h" #include "Client2SrvType.h" #include #include "DevicesManager.h" using namespace std; extern char g_strDirectory[256]; //DOG extern INT g_nUseTimeLimit; //是否超过使用期限 extern CRITICAL_SECTION g_csWrDataBase;//写日志和告警数据库操作 #if 0 extern CServerSocket* g_pTcpServer; #endif // 客户端在线Tick extern DWORD g_dwClientOnlineTick[MAX_CLIENT_NUM]; //客户端数据 extern INT g_nClientNum; //程序退出事件 extern HANDLE g_hRunObject; extern CDevicesManager* g_pDevicesManager; //WatchServer extern CHAR g_strWatchServerIP[MAX_EQUIP_IP + 1]; extern CHAR g_strWatchServerPort[MAX_PORT + 1]; //Database extern CADODatabase* g_pADODatabase; extern CHAR g_strConnectString[MAX_PATH + 1]; extern CHAR g_strDBType[MAX_SERVER_LENGTH + 1]; extern CHAR g_strAccessFile[MAX_PATH_LENGTH + 1]; extern CHAR g_strServerName[MAX_SERVER_LENGTH + 1]; extern CHAR g_strDataBaseName[MAX_DATABASE_LENGTH + 1]; extern CHAR g_strUserName[MAX_USER_LENGTH + 1]; extern CHAR g_strPassword[MAX_PASSWORD_LENGTH + 1]; //用户信息 extern CHAR g_strLoginUserID[MAX_USER_LENGTH + 1]; extern CHAR g_strLoginPwd[MAX_PASSWORD_LENGTH + 1]; extern CHAR g_strDefaultUserID[MAX_USER_LENGTH + 1]; extern CHAR g_strDefaultUserPwd[MAX_PASSWORD_LENGTH + 1]; //操作提示 extern CHAR g_strErrorDBDisConnection[MAX_ERROR_LEN + 1] ; extern CHAR g_strMsgDBConnectionSuccess[MAX_ERROR_LEN + 1]; extern CHAR g_strErrorExecSql[MAX_ERROR_LEN + 1]; //系统设置 extern BOOL g_bEnableTimeLimited; extern INT g_iAutoRunSystem; extern INT g_nSendSms; extern INT g_nSendNotice; extern INT g_nSendEmail; extern CHAR g_strLanguage[MAX_LANG_LENGTH + 1]; // 默认语言 //日志 //extern CHAR g_strDirectory[MAX_PATH_LENGTH + 1]; // 软件所在路径 extern CHAR g_strAppName[MAX_PATH_LENGTH + 1]; // 软件名称 extern CHAR g_strSummaryLogPath[MAX_PATH_LENGTH + 1]; // 日志存放目录 //环境参数配置 extern INT g_nLevelWav; // 语音通知级别 extern INT g_nLevelSms; // 发送短信级别 extern INT g_nLevelEmail; // 发送Email级别 extern INT g_nLevelDevInterrupt; // 通讯中断级别 extern INT g_nLevelDlg; // 本地报警提示框级别 extern INT g_nLevelLocalWav; // 本地声音提示级别 extern INT g_nDBRecordDate; // 数据库记录时间 //Sms extern INT g_nSendSms; // 是否启动短信报警功能 extern CHAR g_strSmsComPort[MAX_TEL_LENGTH + 1]; // 短信猫端口 extern INT g_nSmsRate; // 串口波特率 extern INT g_nSmsDataBit; // 数据位 extern INT g_nSmsStopBit; // 停止位 extern INT g_nSmsParity; // 检验位 extern INT g_nSmsInterval; // 间隔时间 extern INT g_nSmsLanguageTrans; // 是否需要繁简转换 extern INT g_nSmsMaxChar; // 短信猫支持最大字符个数 extern INT g_nSmsMakeCall; // 发送短信后,是否拔打电话提醒 extern CHAR g_strSmsSMSC[MAX_TEL_LENGTH + 1]; // smsc号码 extern INT g_nSmsTimOut; // 短信发送超时 extern INT g_nSmsCallTimes; // 最大的短信发送次数 //Email extern INT g_nSendEmail; // 是否启动Email报警功能 extern CHAR g_strEmailSMTPSrv[MAX_MAILSERVER_LENGTH]; // SMTPServer地址 extern INT g_nEmailSMTPPort; // SMTP端口 extern INT g_nEmailIsNeed; // 是否需要身份验证 extern CHAR g_strEmailUserAcc[MAX_USER_LENGTH]; // 用户名 extern CHAR g_strEmailUserPwd[MAX_PASSWORD_LENGTH]; // 密码 extern INT g_nEmailTimeOut; // 发送邮件超时 extern CHAR g_strEmailFromAddr[MAX_MAILTO_LENGTH]; // 发信人Email地址 extern CHAR g_strEmailSubject[MAX_EMAIL_LENGTH]; // Email标题 extern INT g_nEmailCallTimes; // 最大的Email发送次数 //语音通知 extern INT g_nSendNotice; // 是否启动语音通知功能 extern INT g_nNoticeCardType; // 板卡类型 extern CHAR g_strNoticeTelPre[MAX_TEL_LENGTH + 1]; // 外线前缀 extern INT g_nNoticeCallDelay; // 两次呼叫间隔时间 extern INT g_nNoticeCallTimes; // 最大的呼叫次数 //定时发送短信和电话参数配置 extern INT g_nTimingEnable; extern INT g_nTimingWeeks; extern INT g_nTimingHours; extern INT g_nTimingMinutes; //变量输出,特别为上海烟草局做的 extern INT g_nOutputEnable; extern CHAR g_strOutputPath[MAX_PATH_LENGTH + 1]; // 输出内容存放路径 extern CHAR g_strOutputFileName[MAX_PATH_LENGTH + 1]; // 输出内容存放路径 extern CHAR g_strOutputClock[MAX_PATH_LENGTH + 1]; // 输出内容存放路径 extern INT g_nOutputLineCount1; extern CHAR g_strOutputLine1[MAX_MSG_LENGTH + 1]; // 第一行 extern INT g_nOutputLineCount2; extern CHAR g_strOutputLine2[MAX_MSG_LENGTH + 1]; // 第二行 extern INT g_nOutputLineCount3; extern CHAR g_strOutputLine3[MAX_MSG_LENGTH + 1]; // 第三行 extern INT g_nOutputLineCount4; extern CHAR g_strOutputLine4[MAX_MSG_LENGTH + 1]; // 第四行 extern INT g_nOutputLineCount5; extern CHAR g_strOutputLine5[MAX_MSG_LENGTH + 1]; // 第五行 extern INT g_nOutputLineCount6; extern CHAR g_strOutputLine6[MAX_MSG_LENGTH + 1]; // 第六行 extern INT g_nOutputLineCount7; extern CHAR g_strOutputLine7[MAX_MSG_LENGTH + 1]; // 第七行 extern INT g_nOutputLineCount8; extern CHAR g_strOutputLine8[MAX_MSG_LENGTH + 1]; // 第八行 extern INT g_nOutputLineCount9; extern CHAR g_strOutputLine9[MAX_MSG_LENGTH + 1]; // 第九行 extern INT g_nOutputLineCount10; extern CHAR g_strOutputLine10[MAX_MSG_LENGTH + 1]; // 第十行 extern CHAR g_strOutputLineUid1[MAX_UID + 1]; extern CHAR g_strOutputLineUid2[MAX_UID + 1]; extern CHAR g_strOutputLineUid3[MAX_UID + 1]; extern CHAR g_strOutputLineUid4[MAX_UID + 1]; extern CHAR g_strOutputLineUid5[MAX_UID + 1]; extern CHAR g_strOutputLineUid6[MAX_UID + 1]; extern CHAR g_strOutputLineUid7[MAX_UID + 1]; extern CHAR g_strOutputLineUid8[MAX_UID + 1]; extern CHAR g_strOutputLineUid9[MAX_UID + 1]; extern CHAR g_strOutputLineUid10[MAX_UID + 1]; //是否启用Snmp参数配置 extern INT g_nSnmpEnable; extern CHAR g_strSnmpObjOid[MAX_OBJ_OID + 1]; extern CHAR g_strSnmpIP[MAX_EQUIP_IP + 1]; extern CHAR g_strSnmpField[MAX_EQUIP_DESC + 1]; //资源字符串 extern CString g_strServiceName; extern CString g_strHintSysRun; extern CString g_strHintAlarmWelcome; extern CString g_strHintVoiceEnd; extern CString g_strHintReturnNormal; extern CString g_strHintUpperLimit; extern CString g_strHintLowerLimit; extern CString g_strHintCurrValue; //服务 extern TCHAR g_szServiceName[]; // 用户角色信息 typedef struct __USERINFO { char szTel[MAX_TEL_LENGTH + 1]; char szMobileTel[MAX_TEL_LENGTH + 1]; char szFax[MAX_TEL_LENGTH + 1]; char szEmail[MAX_EMAIL_LENGTH + 1]; }USERINFO, *PUSERINFO; typedef struct __USERROLEINFO { char szDevUID[20]; vector<__USERINFO> vtUserInfo; }USERROLEINFO, *PUSERROLEINFO; extern vector g_vtUserRoleInfo; //TTS参数配置 extern INT g_nTTSType; // TTS格式类型 // 报警参数设置 extern INT g_nAlarmModeIsDlg; // 是否弹出报警提示框 extern INT g_nAlarmModeShowDlgTimes; // 提示框显示次数 extern INT g_nAlarmModeIsSound; // 是否本地播放报警提示音 extern INT g_nAlarmModeSoundNum; // 声音播放次数,0:代表无限播放,直到报警被确认 typedef list LIST_TEL; // 变量通知 typedef struct _VAR_NOTICE { char szDevUID[20]; // 设备Uid int nVarID; // 变量ID int nResult; // 0: 未操作, 1:单个确认, 2:全部确认 int nCallTime; // 拔打次数 int nSmsTime; // 短信发送次数 DWORD dwIdentityTick; // 辨识Tick DWORD dwReDetectTick; // 重新检测Tick DWORD dwIntervalTick; // 两次拔打之间的Tick bool bQueueExist; // true: 存在于语音队列且没有被取走 fasle: 不存在于语音队列或已被取走 int nTelInex; // 电话list中的索引 LIST_TEL listTel; // 有管理这个设备Uid的电话号码和手机号码列表 int nLastStatus; // 前一次的报警状态,用于状态恢复正常的情况 bool bFirstDeal; // 第一次处理这个变量 }VAR_NOTICE, *PVAR_NOTICE; typedef list LIST_VAR_NOTICE; extern LIST_VAR_NOTICE g_listVarNotice; typedef int (WINAPI *PFCALLBACK)( BOOL bEnableAlarm );//短信:true 恢复正常 false 报警不打电话不发短信 语音:true报警确认,不会打下一个用户电话 // TTS typedef BOOL (WINAPI *MySTONEU_DLLRegisterTTS)(void); typedef void (WINAPI *MySTONEU_DLLUnRegisterTTS)(void); typedef void (WINAPI *MySTONEU_DLLTxtToWav)( char *pText, char *pWavFileName, int nVoiceType, int nRate, int nVolume ); extern HINSTANCE hTTSModule; extern MySTONEU_DLLRegisterTTS pStoneUDllRegisterTTS; extern MySTONEU_DLLUnRegisterTTS pStoneUDllUnRegisterTTS; extern MySTONEU_DLLTxtToWav pStoneUDLLTxtToWav; // 语音通知动态库输出函数 typedef BOOL (WINAPI *STONEU_DLLRegisterVoice)(char *pDirectory, int nTTSType); typedef void (WINAPI *STONEU_DLLUnRegisterVoice)(void); typedef int (WINAPI *STONEU_DLLAllocateChannel)(char *pTel, char *pPreTel, char *pUid, int nVarID,int nAlarmIndex, char *pContent); extern HINSTANCE g_hNoticeLibModule; extern STONEU_DLLRegisterVoice pStoneUDllRegisterVoice; extern STONEU_DLLUnRegisterVoice pStoneUDllUnRegisterVoice; extern STONEU_DLLAllocateChannel pStoneUDllAllocateChannel; // Email输出函数 typedef BOOL (WINAPI *EMAIL_DLLInit)( char *pDirectory, // 软件所在路径 char *pSmtpServer, // Smtp服务器 int nSmtpPort, // Smtp端口 int nIsNeed, // 是否需要smtp身份验证 char *pUserAcc, // Email帐号 char *pUserPwd, // Email密码 char *pFromEmailAddr, // 发送人Email地址 int nTimeOut // 超时 ); typedef void (WINAPI *EMAIL_DLLUnInit)(void); typedef int (WINAPI *EMAIL_DLLSendEmail)(char *pEmail, // 收件人Email地址 char *pSubject, // 邮件标题 char *pContent, // 发送内容 char *pTime, // 发生时间 char *pErrorMsg // 错误消息 ); extern HINSTANCE g_hEmailLibModule; extern EMAIL_DLLInit pEmailDllInit; extern EMAIL_DLLUnInit pEmailDllUnInit; extern EMAIL_DLLSendEmail pEmailDllSendEmail; // Sms输出函数 typedef BOOL (WINAPI *SMS_DLLInit)( char *pDirectory, int nAddr, // 保留,因为短信猫是串口232没有地址 int nCommPort, // 串口号 int nRate, // 波特率 int nDataBit, // 数据位 int nStopBit, // 停止位 int nParity, // 校验位 int nInterval, // 间隔时间 int nNeedLanguageTrans, // 是否需要语言转换 int nMaxChar, // 短信猫一条短信最大支持的字符个数 int nMakeCall ); // 发送后是否先拔打电话提醒 typedef void (WINAPI *SMS_DLLUnInit)(void); typedef int (WINAPI *SMS_DLLSendSms)(char *pTel, // 手机号码 char *pContent, // 发送内容 char *pSendResult); // 发送结果 typedef bool (WINAPI *SMS_DLLGetCSQ)( int iMin,int iMax,int &iNowData ); // 得到短信猫信号 typedef int (WINAPI *SMS_DLLSetCallBack)(PFCALLBACK Func); extern HINSTANCE g_hSmsLibModule; extern SMS_DLLInit pSmsDllInit; extern SMS_DLLUnInit pSmsDllUnInit; extern SMS_DLLSendSms pSmsDllSendSms; extern SMS_DLLGetCSQ pSmsDllGetCSQ; extern SMS_DLLSetCallBack pSmsDllSetCallBack; extern bool g_bAlarmNoticeFlag;//报警通知开头,由短信控制 // Snmp输出函数 typedef BOOL (WINAPIV *SNMP_DLL_GetVale)( char *pDevIP, // snmp设备IP char *pSnmpField, // snmp Oid 域,一般为public, private char *pObjOid, // Obj Oid char *pValue // 得到的值 ); typedef int (WINAPIV *SNMP_DLL_SetValue)( char *pDevIP, // snmp设备IP char *pSnmpField, // snmp Oid 域,一般为public, private char *pObjOid, // Obj Oid char *pObjType, // Obj 对象类型 int nRetries, // 可回收标志,暂时都为1 int nTimeOut, // 请求超时 char *pValue // 要设置的值 ); extern HINSTANCE g_hSnmpLibModule; extern SNMP_DLL_GetVale pSnmpDllGetValue; extern SNMP_DLL_SetValue pSnmpDllSetValue; //modbus tcp 动态库输出函数 typedef int (WINAPI *TCP_DLLInit)( int nNetPort, int nAddr, char strIpAddr[32], WORD wRegNum, WORD wStartAddr, WORD wTranProcessID, WORD wProtocolID, int nFuncCode ); typedef void (WINAPI *TCP_DLLUnInit)(void); typedef int (WINAPI *TCP_DLLRequestStatusData)(int nNetPort, int nAddr, char strIpAddr[32], char *pData); typedef BOOL (WINAPI *TCP_DLLInitNet)( int nAddr, int nNetPort, char strIpAddr[32]); typedef BOOL (WINAPI *TCP_DLLCloseNet)( int nAddr, int nNetPort, char strIpAddr[32]); typedef int (WINAPI *TCP_DLLWrite)( int nNetPort, int nAddr, char strIpAddr[32], WORD wRegNum, WORD wStartAddr, WORD wTranProcessID, WORD wProtocolID, int nFuncCode, int nRegValue); typedef int (WINAPI *TCP_DLLRequestWrStatusData)(int nNetPort, int nAddr, char strIpAddr[32], int &nWriteResult); extern HINSTANCE g_hTCPLibModule; extern TCP_DLLCloseNet pTCP_DllCloseNet; extern TCP_DLLInitNet pTCP_DLLInitNet; extern TCP_DLLInit pTCP_DLLInit; extern TCP_DLLUnInit pTCP_DLLUnInit; extern TCP_DLLRequestStatusData pTCP_DLLRequestStatusData; extern TCP_DLLWrite pTCP_DLLWrite; extern TCP_DLLRequestWrStatusData pTCP_DLLRequestWrStatusData; //modbus rtu 动态库输出函数 typedef int (WINAPI *RTU_DLLInit)( int nCommPort, int nAddr, SETBASEPARAM SetBasePara, int nDataLen, char chMsg[80] ); typedef void (WINAPI *RTU_DLLUnInit)(void); typedef BOOL (WINAPI *RTU_DLLInitCom)( int nAddr, int nCommPort, int nRate, int nDataBit, int nStopBit, int nParity, int nInterval); typedef BOOL (WINAPI *RTU_DLLWrite)( int nCommPort, int nAddr, SETBASEPARAM SetBasePara, double Data, int nDataLen ); typedef BOOL (WINAPI *RTU_DLLRequestWrStatusData)( int nCommPort, int nAddr, char *pData ); extern HINSTANCE g_hRTULibModule; extern RTU_DLLInitCom pRTU_DLLInitCom; extern RTU_DLLInit pRTU_DLLInit; extern RTU_DLLUnInit pRTU_DLLUnInit; extern RTU_DLLWrite pRTU_DLLWrite; extern RTU_DLLRequestWrStatusData pRTU_DLLRequestWrStatusData; //modbus asc 动态库输出函数 typedef BOOL (WINAPI *ASC_DLLInitCom)(int nAdddr, int nCommPort, int nRate, int nDataBit, int nStopBit, int nParity, int nInterval); typedef int (WINAPI *ASC_DLLInit)(int nCommPort, int nAddr, SETBASEPARAM SetBasePara, int nDataLen, char chMsg[80]); typedef void (WINAPI *ASC_DLLUnInit)(void); typedef int (WINAPI *ASC_DLLRequestStatusData)(int nCommPort, int nAddr, int nByteNum, char *pData); //typedef void (WINAPI *ASC_DLLDetectOnlineCallBack)(void *pPara); typedef int ((WINAPI *ASC_DLLWrCom))(int nCommPort, int nAddr, SETBASEPARAM SetBasePara, double Data, int nDataLen); typedef int (WINAPI *ASC_DLLRequestWrStatusData)(int nCommPort, int iAddr, char *pData); extern HINSTANCE g_hASCLibModule; extern ASC_DLLInitCom pASCDLLInitCom; extern ASC_DLLInit pASCDLLInit; extern ASC_DLLUnInit pASCDLLUnInit; extern ASC_DLLRequestStatusData pASCDLLRequestStatusData; extern ASC_DLLWrCom pASC_DLLWrCom; extern ASC_DLLRequestWrStatusData pASC_DLLRequestWrStatusData; //extern ASC_DLLDetectOnlineCallBack pASCDLLDetectOnlineCallBack; //icpdas 动态库输出函数 typedef int (WINAPI *ICPDAS_DLLInit) ( int nCommPort, int nAddr, BYTE Start,//起始位 BYTE StartAddr[2],//起始地址 int nRegNum,//读取的寄存器个数 BYTE FuncCode[2], int nDataLen, BYTE byWithAddrFlag, char chMsg[80]); typedef int ((WINAPI *ICPDAS_DLLWrCom)) (int nCommPort, int nAddr, char DataBuffer[80], int nDataLen); typedef void (WINAPI *ICPDAS_DLLUnInit)(void); typedef int (WINAPI *ICPDAS_DLLRequestStatusData) (int nCommPort, int nAddr, int nByteNum, char *pData, int iVarID); typedef BOOL (WINAPI *ICPDAS_DLLInitCom)( int nAddr, int nCommPort, int nRate, int nDataBit, int nStopBit, int nParity, int nInterval); extern HINSTANCE g_hICPDASLibModule; extern ICPDAS_DLLInitCom pICPDAS_DLLInitCom; extern ICPDAS_DLLInit pICPDAS_DLLInit; extern ICPDAS_DLLUnInit pICPDAS_DLLUnInit; extern ICPDAS_DLLRequestStatusData pICPDAS_DLLRequestStatusData; extern ICPDAS_DLLWrCom pICPDAS_DLLWrCom; //upskehua 动态库输出函数 typedef int (WINAPI *UPSKEHUA_DLLInit) (int nCommPort, int nAddr, char szCmd[32], char chSendMsg[32], int nDataLen, char chMsg[UPS_KE_HUA_MAX_MSG]); typedef int ((WINAPI *UPSKEHUA_DLLWrCom)) (int nCommPort, int nAddr, char DataBuffer[80], int nDataLen); typedef void (WINAPI *UPSKEHUA_DLLUnInit)(void); typedef BOOL (WINAPI *UPSKEHUA_DLLInitCom)( int nAddr, int nCommPort, int nRate, int nDataBit, int nStopBit, int nParity, int nInterval); extern HINSTANCE g_hUPSKEHUALibModule; extern UPSKEHUA_DLLInitCom pUPSKEHUA_DLLInitCom; extern UPSKEHUA_DLLInit pUPSKEHUA_DLLInit; extern UPSKEHUA_DLLUnInit pUPSKEHUA_DLLUnInit; extern UPSKEHUA_DLLWrCom pUPSKEHUA_DLLWrCom; //Separate 动态库输出函数 typedef int (WINAPI *SEPARATE_DLLRead) ( int nCommPort, int nAddr, char szPath[MAX_PATH], char szIniName[MAX_PATH], char szCmd[MAX_CMD], char szMsg[MAX_VAR_MSG] ); typedef int ((WINAPI *SEPARATE_DLLWrite)) ( int nCommPort, int nAddr, char szPath[MAX_PATH], char szIniName[MAX_PATH], char szCmd[MAX_CMD], char szMsg[MAX_VAR_MSG] ); typedef void (WINAPI *SEPARATE_DLLUnInit)(void); typedef BOOL (WINAPI *SEPARATE_DLLInit)( int nAddr, int nCommPort, int nRate, int nDataBit, int nStopBit, int nParity, int nInterval); extern HINSTANCE g_hSeparateLibModule; extern SEPARATE_DLLInit pSeparate_DLLInit; extern SEPARATE_DLLUnInit pSeparate_DLLUnInit; extern SEPARATE_DLLRead pSeparate_DLLRead; extern SEPARATE_DLLWrite pSeparate_DLLWrite; //Upsparadigm 动态库输出函数 typedef int (WINAPI *PARADIGM_DLLInit)( int nCommPort, int nDevAddr, int nAddr, //设备地址描述 int nVer, //版本 int nCid1, //控制标识码 int nCid2, //命令信息 WORD wLenId,//INFO字节长度 BYTE byCmdType,//命令类型 int nCmdID, //命令ID int nDataLen, int nCmdPos, int nCmdLen, char chMsg[80], char *byDataFlag); typedef void (WINAPI *PARADIGM_DLLUnInit)(void); typedef BOOL (WINAPI *PARADIGM_DLLInitCom)( int nAddr, int nCommPort, int nRate, int nDataBit, int nStopBit, int nParity, int nInterval); extern HINSTANCE g_hPARADIGMLibModule; extern PARADIGM_DLLInitCom pPARADIGM_DLLInitCom; extern PARADIGM_DLLInit pPARADIGM_DLLInit; extern PARADIGM_DLLUnInit pPARADIGM_DLLUnInit; //stulz 动态库输出函数 typedef int (WINAPI *STULZ_DLLInit)( int nCommPort, int nAddr, SETBASEPARAM SetBasePara, int nDataLen, int iCmdPos, int iCmdLen, char chMsg[10] ); typedef void (WINAPI *STULZ_DLLUnInit)(void); typedef BOOL (WINAPI *STULZ_DLLInitCom)( int nAddr, int nCommPort, int nRate, int nDataBit, int nStopBit, int nParity, int nInterval); typedef int (WINAPI *STULZ_DLLWrCom)(int nCommPort, int nAddr, char DataBuffer[80], char ResDataBuffer[2]); extern HINSTANCE g_hSTULZLibModule; extern STULZ_DLLInitCom pSTULZ_DLLInitCom; extern STULZ_DLLInit pSTULZ_DLLInit; extern STULZ_DLLUnInit pSTULZ_DLLUnInit; extern STULZ_DLLWrCom pSTULZ_DLLWrCom; //大金空调动态库输出函数 typedef int (WINAPI *DAIKIN_DLLInit)( int nCommPort, //串口号 int nAddr, //地址 int nVer, //版本号 int nCid1, //控制标识码 int nCid2, //命令信息 WORD wLenId,//INFO字节长度 int nCmdID, //命令ID int nDataLen, //请求数据长度 int nCmdPos, //变量索引 int nCmdLen, //变量长度 char chMsg[DAIKIN_MAX_MSG], //读到的变量值 char *byDataFlag); //保留未用 typedef void (WINAPI *DAIKIN_DLLUnInit)(void); typedef BOOL (WINAPI *DAIKIN_DLLInitCom)( int nAddr, int nCommPort, int nRate, int nDataBit, int nStopBit, int nParity, int nInterval); typedef int (WINAPI *DAIKIN_DLLSetParam)( int nCommPort, //端口 int nAddr, //地址 int nVer, //版本号 int nCid1, //控制标识码 int nCid2, //命令信息 WORD wLenId, //INFO字节长度 int nCmdType, //命令类型 int nSetValue); //设定值 typedef int (WINAPI *DAIKIN_DLLRemoteCtrl)( int nCommPort, //端口 int nAddr, //地址 int nSetType, //设定类型 int nSetIndex, //设定值索引,只针对特殊变量(例如:空调制冷、制热温度) int nSetValue); //设定值 extern HINSTANCE g_hDaiKinLibModule; extern DAIKIN_DLLInitCom pDaiKin_DLLInitCom; extern DAIKIN_DLLInit pDaiKin_DLLInit; extern DAIKIN_DLLUnInit pDaiKin_DLLUnInit; extern DAIKIN_DLLSetParam pDaiKin_DLLSetParam; extern DAIKIN_DLLRemoteCtrl pDaiKin_DLLRemoteCtrl; //Powerware 动态库输出函数 typedef int (WINAPI *POWERWARE_DLLInit)( int nCommPort, //串口 int nDevAddr, //设备地址 int nRequestLen, //请求数据总长度 int nResponseLen, //响应数据总长度 int nCmd, //命令 int nCmdPos, //变量索引 int nCmdLen, //变量长度 int nParam, //参数 char chMsg[80]); //读到变量值 typedef void (WINAPI *POWERWARE_DLLUnInit)(void); typedef BOOL (WINAPI *POWERWARE_DLLInitCom)( int nAddr, int nCommPort, int nRate, int nDataBit, int nStopBit, int nParity, int nInterval); extern HINSTANCE g_hPowerwareLibModule; extern POWERWARE_DLLInitCom pPOWERWARE_DLLInitCom; extern POWERWARE_DLLInit pPOWERWARE_DLLInit; extern POWERWARE_DLLUnInit pPOWERWARE_DLLUnInit; //gree 动态库输出函数 typedef int (WINAPI *GREE_DLLInit)( int nCommPort, int nAddr,int nDataLen,int nReadPos, char chMsg[80] ); typedef void (WINAPI *GREE_DLLUnInit)(void); typedef BOOL (WINAPI *GREE_DLLInitCom)( int nAddr, int nCommPort, int nRate, int nDataBit, int nStopBit, int nParity, int nInterval); typedef BOOL (WINAPI *GREE_DLLWrCom)( int nCommPort, int nAddr, int nWorkStatus, int nWorkMode, int nFanSpeed, int nPutWind, int nAirTrade, int nSleep, int nLight, int nTempSetPoint ); extern HINSTANCE g_hGREELibModule; extern GREE_DLLInitCom pGREE_DLLInitCom; extern GREE_DLLInit pGREE_DLLInit; extern GREE_DLLUnInit pGREE_DLLUnInit; extern GREE_DLLWrCom pGREE_DLLWrCom; //Carel控制器 typedef int (WINAPI *CAREL_DLLInit)( int nAddr, int nCommPort, int nRate, int nDataBit, int nStopBit, int nParity, int nInterval); typedef void (WINAPI *CAREL_DLLUnInit)(void); typedef BOOL (WINAPI *CAREL_DLLRequestData)( int nCommPort, //串口号 int nAddr, //地址 char chRs232cmd[32], //命令 char szType[MAX_ID], //类型 char szIndex[MAX_ID], //索引 char szMsg[CAREL_MAX_MSG] //内容 ); typedef BOOL (WINAPI *CAREL_DLLControl)( int nCommPort, //串口号 int nAddr, //地址 char chRs232cmd[32], //命令 char szType[MAX_ID], //类型 char szIndex[MAX_ID], //索引 char szMsg[CAREL_MAX_MSG] //内容 ); extern HINSTANCE g_hCarelLibModule; extern CAREL_DLLInit pCarel_DLLInit; extern CAREL_DLLUnInit pCarel_DLLUnInit; extern CAREL_DLLRequestData pCarelRequestData; extern CAREL_DLLControl pCarelControl; // MostDevice 以后大部分设备都集成到这个动态库里面 typedef BOOL (WINAPI *DLL_MostDeviceInit)( char szPath[MAX_PATH], // 程序所在路径 char szIniName[MAX_PATH], // 配置文件名称 int nCommPort, // 串行端口 int nAddr, // 设备地址 int nRate, // 波特率 int nDataBit, // 数据位 int nStopBit, // 停止位 int nParity, // 校验位 int nInterval // 时间间隔 ); typedef void (WINAPI *DLL_MostDeviceUnInit)( char szPath[MAX_PATH], // 程序所在路径 char szIniName[MAX_PATH], // 配置文件名称 int nCommPort // 串行端口 ); typedef int (WINAPI *DLL_MostDeviceRead)( char szPath[MAX_PATH], // 程序所在路径 char szIniName[MAX_PATH], // 配置文件名称 int nCommPort, // 串行端口 int nAddr, // 设备地址 char szCmd[MAX_CMD], // 请求命令 char szMsg[MAX_VAR_MSG], // 响应的值 int nReversed1, // 预留整形参数1接口 int nReversed2, // 预留整形参数2接口 int nReversed3, // 预留整形参数3接口 int nReversed4, // 预留整形参数4接口 int nReversed5, // 预留整形参数5接口 float fReversed1, // 预留float参数1接口 float fReversed2, // 预留float参数2接口 float fReversed3, // 预留float参数3接口 char szReversed1[MAX_RESERVED1], // 预留字符数组参数1接口 char szReversed2[MAX_RESERVED2], // 预留字符数组参数2接口 char szReversed3[MAX_RESERVED3], // 预留字符数组参数3接口 char szReversed4[MAX_RESERVED4], // 预留字符数组参数4接口 char szReversed5[MAX_RESERVED5] // 预留字符数组参数5接口 ); typedef int (WINAPI *DLL_MostDeviceSet)( char szPath[MAX_PATH], // 程序所在路径 char szIniName[MAX_PATH], // 配置文件名称 int nCommPort, // 串行端口 int nAddr, // 设备地址 char szCmd[MAX_CMD], // 请求命令 char szMsg[MAX_VAR_MSG], // 响应的值 int nReversed1, // 预留整形参数1接口 int nReversed2, // 预留整形参数2接口 int nReversed3, // 预留整形参数3接口 int nReversed4, // 预留整形参数4接口 int nReversed5, // 预留整形参数5接口 float fReversed1, // 预留float参数1接口 float fReversed2, // 预留float参数2接口 float fReversed3, // 预留float参数3接口 char szReversed1[MAX_RESERVED1], // 预留字符数组参数1接口 char szReversed2[MAX_RESERVED2], // 预留字符数组参数2接口 char szReversed3[MAX_RESERVED3], // 预留字符数组参数3接口 char szReversed4[MAX_RESERVED4], // 预留字符数组参数4接口 char szReversed5[MAX_RESERVED5] // 预留字符数组参数5接口 ); extern HINSTANCE g_hMostDeviceLibModule; extern DLL_MostDeviceInit pDllMostDeviceInit; extern DLL_MostDeviceUnInit pDllMostDeviceUnInit; extern DLL_MostDeviceRead pDllMostDeviceRead; extern DLL_MostDeviceSet pDllMostDeviceSet; extern void WriteSummaryLog(CHAR *pdevname, CHAR *pHappenTime, CHAR* memo, int id, CHAR *ptypedesc, double currvalue, CHAR* varuid, CHAR *varname); extern WORD AsciiToBYTE(BYTE btSrc); extern char ByteToAscii(BYTE btSrc); char lowercase2uppercase(BYTE btSrc); extern int StrLower(char *pSource, char *pDest); extern int StrUpper(char *pSource, char *pDest); extern int DigitToBinary(WORD wdSource, char* pDes, int iBit); extern char Hex16(char WillChangeNum[]); //该函数把四位二进制转换成十六进制数 extern BYTE TwoByteToByte(BYTE b1, BYTE b2); //两个字符转换为一个字符 extern void ByteToTwoByte(BYTE b, BYTE b2[]); //一个字符转换为两个字符 extern void ByteToUpper(char *szMsg); //md5全局变量 #ifndef PROTOTYPES #define PROTOTYPES 1 #endif /* POINTER defines a generic pointer type */ typedef unsigned char *POINTER; /* UINT2 defines a two byte word */ typedef unsigned short int UINT2; /* UINT4 defines a four byte word */ typedef unsigned long int UINT4; /* PROTO_LIST is defined depending on how PROTOTYPES is defined above. If using PROTOTYPES, then PROTO_LIST returns the list, otherwise it returns an empty list. */ #if PROTOTYPES #define PROTO_LIST(list) list #else #define PROTO_LIST(list) () #endif