| @@ -108,6 +108,32 @@ void MSleep(long lTime) | |||||
| } while (dfTim<dfSpec); | } while (dfTim<dfSpec); | ||||
| } | } | ||||
| /********************************************************************************************* | |||||
| * 功能 : 检查端口名称 | |||||
| * 描述 : 判断端口名称是否正确 | |||||
| * 输入 : Comm 端口名 | |||||
| * 返回值 : true 端口名正确 | |||||
| * false 端口名错误 | |||||
| **********************************************************************************************/ | |||||
| bool Check_Input_COMM(string Comm) | |||||
| { | |||||
| string compare1 = "com"; | |||||
| string compare2 = "COM"; | |||||
| for (unsigned int i = 0; i < 3; i++) | |||||
| { | |||||
| if (Comm[i] != compare1[i] || Comm[i] != compare2[i]) | |||||
| return false; | |||||
| } | |||||
| if (Comm[3] == 0x30) | |||||
| return false; | |||||
| for (unsigned int i = 4; i < Comm.length(); i++) | |||||
| { | |||||
| if (Comm[i] >= 0x30 && Comm[i] <= 0x39) | |||||
| continue; | |||||
| } | |||||
| return true; | |||||
| } | |||||
| /********************************************************************************************* | /********************************************************************************************* | ||||
| * 功能 : 输入端口名称 | * 功能 : 输入端口名称 | ||||
| * 描述 : 获取串口通信的端口名称 | * 描述 : 获取串口通信的端口名称 | ||||
| @@ -116,29 +142,111 @@ void MSleep(long lTime) | |||||
| **********************************************************************************************/ | **********************************************************************************************/ | ||||
| string Input_COMM(void) | string Input_COMM(void) | ||||
| { | { | ||||
| int flage = 1; | |||||
| string Comm; | |||||
| do | |||||
| { | |||||
| if (flage == 1) | |||||
| { | |||||
| printf("请输入端口名称:"); | |||||
| flage = 0; | |||||
| } | |||||
| else | |||||
| printf("请重新输入端口名称:"); | |||||
| cin >> Comm; | |||||
| } while (!Check_Input_COMM(Comm)); | |||||
| return Comm; | |||||
| } | |||||
| /********************************************************************************************* | |||||
| * 功能 : 检查波特率 | |||||
| * 描述 : 检查串口通信的波特率 | |||||
| * 输入 : Baud_Rate 波特率 | |||||
| * 返回值 : true 波特率正确 | |||||
| * false 波特率错误 | |||||
| **********************************************************************************************/ | |||||
| bool Check_Input_Baud_Rate(unsigned int Baud_Rate) | |||||
| { | |||||
| unsigned int Compare_Baud_Rate[9] = {300,600,1200,2400,4800,9600,14400,19200,38400}; | |||||
| for (int i = 0; i < 9; i++) | |||||
| { | |||||
| if (Baud_Rate == Compare_Baud_Rate[i]) | |||||
| return true; | |||||
| } | |||||
| return false; | |||||
| } | } | ||||
| /********************************************************************************************* | /********************************************************************************************* | ||||
| * 功能 : 输入波特率 | * 功能 : 输入波特率 | ||||
| * 描述 : 获取串口通信的波特率 | * 描述 : 获取串口通信的波特率 | ||||
| * 输入 : 无 | * 输入 : 无 | ||||
| * 返回值 : Boud_Rate 波特率 | |||||
| * 返回值 : Baud_Rate 波特率 | |||||
| **********************************************************************************************/ | **********************************************************************************************/ | ||||
| unsigned int Input_Boud_Rate(void) | |||||
| unsigned int Input_Baud_Rate(void) | |||||
| { | { | ||||
| unsigned int Baud_Rate; | |||||
| int flage = 1; | |||||
| printf("支持的波特率有:300,600,1200,2400,4800,9600,14400,19200,38400 \n"); | |||||
| do | |||||
| { | |||||
| if (flage == 1) | |||||
| { | |||||
| printf("请输入串口波特率:"); | |||||
| flage = 0; | |||||
| } | |||||
| else | |||||
| printf("请重新输入串口波特率:"); | |||||
| cin >> Baud_Rate; | |||||
| } while (!Check_Input_Baud_Rate(Baud_Rate)); | |||||
| return Baud_Rate; | |||||
| } | } | ||||
| /********************************************************************************************* | /********************************************************************************************* | ||||
| * 功能 : 输入数据位 | * 功能 : 输入数据位 | ||||
| * 描述 : 获取串口通信的数据位个数 | * 描述 : 获取串口通信的数据位个数 | ||||
| * 输入 : 无 | * 输入 : 无 | ||||
| * 返回值 : Date_Bits 数据位 | * 返回值 : Date_Bits 数据位 | ||||
| **********************************************************************************************/ | **********************************************************************************************/ | ||||
| unsigned int Input_Date_Bits(void) | |||||
| BYTE Input_Date_Bits(void) | |||||
| { | { | ||||
| BYTE Date_Bits; | |||||
| int flage = 1; | |||||
| printf("支持的数据位有:5,6,7,8 \n"); | |||||
| do | |||||
| { | |||||
| if (flage == 1) | |||||
| { | |||||
| printf("请输入串口波特率:"); | |||||
| flage = 0; | |||||
| } | |||||
| else | |||||
| printf("请重新输入串口波特率:"); | |||||
| cin >> Date_Bits; | |||||
| } while (!(Date_Bits == 5 || Date_Bits == 6 || Date_Bits == 7 || Date_Bits == 8)); | |||||
| return Date_Bits; | |||||
| } | |||||
| /********************************************************************************************* | |||||
| * 功能 : 检查停止位 | |||||
| * 描述 : 检测停止位是否和数据位相符 | |||||
| * 输入 : Date_Bits 数据位 | |||||
| * Stop_Bits 停止位 | |||||
| * 返回值 : true 停止位正确 | |||||
| * false 停止位错误 | |||||
| **********************************************************************************************/ | |||||
| bool Check_Input_Stop_Bits(BYTE Date_Bits, BYTE Stop_Bits) | |||||
| { | |||||
| if (Stop_Bits == 0 || Stop_Bits == 1 || Stop_Bits == 2) | |||||
| { | |||||
| if (Stop_Bits == 1 && (Date_Bits == 6 || Date_Bits == 7 || Date_Bits == 8)) | |||||
| return false; | |||||
| if (Stop_Bits == 2 && Date_Bits == 5) | |||||
| return false; | |||||
| } | |||||
| else | |||||
| return false; | |||||
| return true; | |||||
| } | } | ||||
| /********************************************************************************************* | /********************************************************************************************* | ||||
| @@ -150,9 +258,23 @@ unsigned int Input_Date_Bits(void) | |||||
| * Date_Bits=5时 Stop_Bits不能为2 | * Date_Bits=5时 Stop_Bits不能为2 | ||||
| * 返回值 : Stop_Bits 数据位 | * 返回值 : Stop_Bits 数据位 | ||||
| **********************************************************************************************/ | **********************************************************************************************/ | ||||
| unsigned int Input_Stop_Bits(unsigned int Date_Bits) | |||||
| BYTE Input_Stop_Bits(BYTE Date_Bits) | |||||
| { | { | ||||
| BYTE Stop_Bits; | |||||
| int flage = 1; | |||||
| printf("支持的数据位有:5,6,7,8 \n"); | |||||
| do | |||||
| { | |||||
| if (flage == 1) | |||||
| { | |||||
| printf("请输入串口波特率:"); | |||||
| flage = 0; | |||||
| } | |||||
| else | |||||
| printf("请重新输入串口波特率:"); | |||||
| cin >> Stop_Bits; | |||||
| } while (!Check_Input_Stop_Bits(Date_Bits, Stop_Bits)); | |||||
| return Stop_Bits; | |||||
| } | } | ||||
| /********************************************************************************************* | /********************************************************************************************* | ||||
| @@ -161,7 +283,7 @@ unsigned int Input_Stop_Bits(unsigned int Date_Bits) | |||||
| * 输入 : 无 | * 输入 : 无 | ||||
| * 返回值 : Parity数据位 | * 返回值 : Parity数据位 | ||||
| **********************************************************************************************/ | **********************************************************************************************/ | ||||
| unsigned int Input_Parity(void) | |||||
| BYTE Input_Parity(void) | |||||
| { | { | ||||
| } | } | ||||