📄 mascdriverdlg.h
字号:
//设置电源为普通模式
BOOL setBatteryNormalMode(void);
//设置 DCD 信号
BOOL ConfigDCDsingal(void);
//关闭发射天线
BOOL transceiverOffFU(void);
//打开发射天线
BOOL transceiverOnFU(void);
// 此函数不被爱立信的modem支持
BOOL ActiveExCall_Indication(void); //设置DCD信号的函数//设置DCD信号的函数//激活外部指示
BOOL ChangeModeInactive(void); //F N 发送一个INACTIVE MPAK 到网络,此命令在爱立信的 MODEM上未通过
BOOL ChangeModeActive(void); //F B 发送一个ACTIVE MPAK 到网络,此命令在爱立信的MODEM上未通过
BOOL requestProductInfoSoftwareID(void); //F Z01得到软件序列号
BOOL requestSoftwareVer(void); //F Z02得到软件版本号
BOOL requestProductInfoHardwareNo(void); //F Z03得到硬件序列号
BOOL requestRadioInfo(void); //F Z04得到音频信息
BOOL ChangeCommPara(int para); //F X 改变通信参数()
//01 1200bps
//02 2400bps
//03 4800bps
//04 9600bps
//此命令用于初始化,激活,取消活动状态 modem 中的临时表
//图tnum表示临时缺省表的表列 信道的对数.如果为零,表示取消活动,删除
//临时表,并且得到缺省表.m表示此桢中信道的数量
//list[]中存储的是信道的编号.按上行,下行的规律排列.len 存储的是 list 的个数
//此函数没有完全通过测试,只有 的删除缺省列表可用.如果没有list 项.将 len设为 零.
BOOL ChangeTempDefList(int tnum, int num, int m, int list[], int len);//改变临时channels list
BOOL requestModemTranseiverBatteryLevel(void); //F A05得到天线电池状态
BOOL requestModemExStatus(); //F A04得到外置电池状态
BOOL requestModemBatterStatus(void); //F A03 得到电池状态
BOOL requestModemRSSI(void); //F A02 得到RSSI
BOOL requestModemPower(); //F A01 得到电池模式
BOOL turnTransmitterOn(); //F X1
BOOL turnTransmitterOff(void); //F X0
BOOL turnOffModem(void); //F O 关闭 modem
BOOL stopDriver(); //关闭接口,应先关闭modem 在收到 modem 已关闭后,关闭串口
BOOL requestTerminalMan(void); //F P command
BOOL ChangeNetworkId(int mobileTx, int mobileRx); //mobileTx,发送 transmitter NetworkId //mobileRx,接收 transmitter NetworkId
BOOL CancelLastMpak(void); //F I取消发送MPAK
BOOL sendMpak(struct mpakst mpak); //发送Mpak
//用户接口函数相当于方法END-----------------------------------------------------------
//接口内部使用的函数BEGIN-----------------------------------------------------------
CString EncodeFrame(CString frame); //编码函数,负责添加 长度、校验、开始、结束位
CString IntToPaddedHexString(int value, int length);//将数字变为ASCII的格式
unsigned char NackCriteriaFulfilled(unsigned char* frametmp); //检查是否为错误的信息包
unsigned char AckCriteriaFulfilled(unsigned char* frametmp); //检查是否为正确的信息包
BOOL UserSentInfoFrame(CString frame,bool Flag); //用户发送信息接口函数
void Handle_F_XXcommand(CString frame); //负责处理F01,F02,F03,F04 等的函数
void HandleQCommand(CString frame); //负责处理Q A命令中的函数
void HandlePACommand(CString frame); //负责处理P A命令的函数
void SentInfoFrame(CString frame); //接口使用的发送信帧函数
void HandleFrame(CString frame); //处理收到的信息包,已经将长度、校验、开始、结束位去掉
void HandleRCommand(CString frame); //返回没有发送出去的包
void HandleNCommand(CString frame); //返回出错的包
void HandleMCommand(CString frame);
void HandleECommand(CString frame); //返回原因,错误原因,在DATA中,和 M COMMAND的处理方式相同
void HandleFCommand(CString frame);
void Handle_FA_Command(CString frame);
void Handle_F_Zcommand(CString frame);
void InformationFrameReceived(CString frame); //此函数处理完整的信息包
void MascFrameReceived(CString frame); //此函数处理完整的信息包
//接口内部使用的函数BEGIN-----------------------------------------------------------
//控制信息镇处理函数BEGIN-------------------------------------------------------------
void SackFrameReceived(void);
void SensFrameReceived(void);
void RackFrameReceived(void);
void NackFrameReceived(void);
void AckFrameReceived(CString frame);
//控制信息镇处理函数END---------------------------------------------------------------
//初始化函数GEGIN---------------------------------------------------------------------
void InitComm();
void InitInterface(void);
void InitDriver(void);
//初始化函数END-----------------------------------------------------------------------
//变量定义,所有的标志位全部由flag 开头 BEGIN------------------------------------------
// BOOL flagCloseDriver; //在调用关闭modem时调用
BOOL flagInitSent; //用于指明当前初始化过程是否已经发送过初始化命令
BOOL flagInitReceived; //用于指明当前初始化过程是否已经收到了初始化命令
BOOL ModemOffFlag; //当前MODEM的状态
CString huanchongframe; //在modem 没有反应的情况下 如果初始化接口,
//向用户返回的数据
int DriverCounter; //在驱动加载后,用于计算多长时间没有反映的定时器
BOOL flagInitDrvSucced; //在规定的时间内没有反应的话,就重新加载
BOOL Link_Busy; //网络忙,不能发送
BOOL flagAllowToSent; //用户信息帧发送允许标志
BOOL flagMpakSentSingle; //发送到Modem的信息已成功发送到网上
int errorcode; //LastError,上次出错的信息 出值为-1
char lastSentSequ; //上次发送序号
char lastReceivedSequ; //上次接受序号
BOOL flagNetworkOnline; //当前modem and 网络的 connection状态
// CStringList outFrameQueue; //发送信息帧队列
CString lastSentFrame; //记录上次发送的信息帧 nack
UINT nIDEvent; //时钟的表示.
int Counter; //计数器,初值为零.每十秒加一.发送信息帧时初始化.
BOOL flagResetTime; //若值为真,则停止计数,相当于时间停止
BOOL flagSensRestTime; //若值为真,则停止计数,相当于时间停止
int SensCounter; //Sens 的计时器
BOOL flagSensNo; //Sens 序号,发送时为由零变为1,收到应答时变为0
//检查是否为1,检查之后若为1 则再变为零
CString inFrame; //从串口收到的原始字符串
CString m_V1; //从串口收到的单个字符串
//变量定义END---------------------------------------------------------------------------
CMascdriverDlg(CWnd* pParent = NULL); // standard constructor
// Dialog Data
//{{AFX_DATA(CMascdriverDlg)
enum { IDD = IDD_MASCDRIVER_DIALOG };
CEditExpand m_dbg_edit;
CEdit m_msg_edit;
CEdit m_masc_edit;
CComboBox m_comboxSendCommand;
CButton m_Roll;
CMSComm m_mscomm;
int m_CommPortNum;
//}}AFX_DATA
// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(CMascdriverDlg)
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
//}}AFX_VIRTUAL
// Implementation
protected:
HICON m_hIcon;
// Generated message map functions
//{{AFX_MSG(CMascdriverDlg)
virtual BOOL OnInitDialog();
afx_msg void OnSysCommand(UINT nID, LPARAM lParam);
afx_msg void OnPaint();
afx_msg HCURSOR OnQueryDragIcon();
afx_msg void OnOnCommMscomm1();
afx_msg void OnTimer(UINT nIDEvent);
afx_msg void OnButton14();
afx_msg void OnRadioinfo();
afx_msg void OnChangeCommpara();
afx_msg void OnChangeCommPara();
afx_msg void OnButton21();
afx_msg void OnButton22();
afx_msg void OnStopRoll();
afx_msg void OnRoll();
afx_msg void OnKillfocusComboxSendcommand();
afx_msg void OnOpenAndMascStart();
afx_msg void OnClose();
afx_msg void OnLog();
afx_msg void OnDblclkComboxSendcommand();
afx_msg void OnCommand();
afx_msg void OnSendMpakMessage();
afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
afx_msg void OnCommPort();
afx_msg void OnMove(int x, int y);
afx_msg void OnSetfocusList3();
afx_msg void OnKillfocusList3();
afx_msg void OnMenuitem32795();
DECLARE_EVENTSINK_MAP()
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
private:
};
//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
#endif // !defined(AFX_MASCDRIVERDLG_H__4F3639A7_9A07_11D5_8BEB_444553540000__INCLUDED_)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -