printf(\
主菜单
************ **** **** \\n\
printf(\添加商品 | 2.销售商品 **** \\n\printf(\查看商品 | 4.查看销售 **** \\n\printf(\清空屏幕 | 6.退出程序 **** \\n\
printf(\ int choice=0; cin>>choice; return choice;
} 接口函数
COPYRIGHT NOTICE
Copyright (c) 2011, 上海交通大学 物联网实验室 All rights reserved. @file SerialPort.cpp @brief 串口通信类的实现文件 本文件为串口通信类的实现代码 @version 1.0 @author 陈杰 @E-mail: @date 修订说明: #include \
m_(&m_csCommunicationSync); if (!InitPort(portName))
{
(版权声明)
if(5==o_eCode){
OcpMark::instance()->setVal(true); }
cout << \ exit(-1);
} else { }
if (!OpenListenThread()) {
cout << \
cout << \
} else
{
cout << \ }
CSerialPort::~CSerialPort(void)对应构造函数,称为析构函数,在对象销毁时调用 {
CloseListenTread(); ClosePort(); }
delete [] buffer;
OcpMark::instance()->setVal(false);
}
bool CSerialPort::InitPort( const char *portName *= 1*,UINT baud *= CBR_115200*,char parity *= 'N'*,
UINT databits *= 8*, UINT stopsbits *= 1*,DWORD dwCommEvents *=
DeleteCriticalSection(&m_csCommunicationSync);
EV_RXCHAR* ) {
** 临时变量,将制定参数转化为字符串形式,以构造DCB结构 * char szDCBparam[50];
sprintf_s(szDCBparam, \** 打开指定串口,该函数内部已经有临界区保护,上面请不要加保护 *
if (!openPort(portName))
{ }
** 进入临界段 *
EnterCriticalSection(&m_csCommunicationSync); ** 是否有错误发生 * BOOL bIsSuccess = TRUE;
return false;
** 在此可以设置输入输出的缓冲区大小,如果不设置,则系统会设置默认值.
* 自己设置缓冲区大小时,要注意设置稍大一些,避免缓冲区溢出 *
*if (bIsSuccess ) {
bIsSuccess = SetupComm(m_(&m_csCommunicationSync);
return bIsSuccess==TRUE;
}
bool CSerialPort::InitPort( const char *portName ,const LPDCB& plDCB ) {
** 打开指定串口,该函数内部已经有临界区保护,上面请不要加保护 *
if (!openPort(portName)) }
void CSerialPort::ClosePort() {
** 如果有串口被打开,关闭它 * if( m_(&m_csCommunicationSync); ** 打开指定的串口 * { }
** 进入临界段 *
EnterCriticalSection(&m_csCommunicationSync); ** 配置串口参数 *
if (!SetCommState(m_ false; }
** 清空串口缓冲区 *
PurgeComm(m_(&m_csCommunicationSync); return true;
return false;
m_(&m_csCommunicationSync); cout<<\