You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
105 lines
1.5 KiB
C++
105 lines
1.5 KiB
C++
#include "global.h"
|
|
#include <stdio.h>
|
|
#include <string.h>
|
|
int isComPort(char * pPort)
|
|
{
|
|
int iLen;
|
|
if (!pPort)
|
|
{
|
|
return -1;
|
|
}
|
|
iLen = strlen(pPort);
|
|
if ((iLen >6) || (iLen <4))
|
|
{
|
|
return -2;
|
|
}
|
|
|
|
if ((pPort[0] != 'c') && (pPort[0] != 'C'))
|
|
{
|
|
return -3;
|
|
}
|
|
|
|
if ((pPort[1] != 'o') && (pPort[1] != 'O'))
|
|
{
|
|
return -4;
|
|
}
|
|
|
|
if ((pPort[2] != 'm') && (pPort[2] != 'M'))
|
|
{
|
|
return -5;
|
|
}
|
|
|
|
if ((pPort[3] < 0x31) || (pPort[3] > 0x36))
|
|
{
|
|
return -6;
|
|
}
|
|
|
|
for (int i = 4; i<iLen; i++)
|
|
{
|
|
if ((pPort[i] < 0x30) || (pPort[i] > 0x39))
|
|
{
|
|
return -7;
|
|
}
|
|
}
|
|
|
|
return 0;
|
|
}
|
|
|
|
int isBaudRate(int baud)
|
|
{
|
|
int iRet = -1;
|
|
switch (baud)
|
|
{
|
|
case 1200:
|
|
case 2400:
|
|
case 4800:
|
|
case 9600:
|
|
case 19200:
|
|
case 38400:
|
|
//case 57600:
|
|
case 115200:
|
|
iRet = 0;
|
|
break;
|
|
default:
|
|
break;
|
|
}
|
|
|
|
return iRet;
|
|
}
|
|
|
|
int QStringToChar(char * dest,QString & Qsource, int iLen,int isChange)
|
|
{
|
|
QByteArray ba2;
|
|
char * ptr;
|
|
int nextlen;
|
|
|
|
if(Qsource.length() == 0)
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
if( 0 == isChange)
|
|
{
|
|
ba2 =Qsource.toLocal8Bit();
|
|
}
|
|
else if(1 == isChange)
|
|
{
|
|
ba2 = Qsource.toUtf8();
|
|
}
|
|
else
|
|
{
|
|
ba2 =Qsource.toLatin1();
|
|
}
|
|
|
|
ptr=ba2.data();
|
|
|
|
nextlen =strlen(ptr);
|
|
if(iLen <= nextlen)
|
|
{
|
|
return -1;
|
|
}
|
|
|
|
strcpy(dest, ptr);
|
|
return 0;
|
|
}
|