energy changed

This commit is contained in:
sun
2019-07-12 22:52:18 +08:00
parent 89e07615aa
commit f40bfbf5d2

View File

@@ -180,23 +180,23 @@ bool Serial::ReadData(unsigned char *buffer, unsigned int length) {
using namespace std; using namespace std;
string get_uart_dev_name(){ string get_uart_dev_name() {
FILE* ls = popen("ls /dev/ttyUSB* --color=never", "r"); FILE *ls = popen("ls /dev/ttyUSB* --color=never", "r");
char name[20] = {0}; char name[20] = {0};
fscanf(ls, "%s", name); fscanf(ls, "%s", name);
return name; return name;
} }
Serial::Serial(int nSpeed, char nEvent, int nBits, int nStop) : Serial::Serial(int nSpeed, char nEvent, int nBits, int nStop) :
nSpeed(nSpeed), nEvent(nEvent), nBits(nBits), nStop(nStop){ nSpeed(nSpeed), nEvent(nEvent), nBits(nBits), nStop(nStop) {
if(wait_uart){ if (wait_uart) {
LOGM("Wait for serial be ready!"); LOGM("Wait for serial be ready!");
while(InitPort(nSpeed, nEvent, nBits, nStop) == false); while (InitPort(nSpeed, nEvent, nBits, nStop) == false);
LOGM("Port set successfully!"); LOGM("Port set successfully!");
}else{ } else {
if(InitPort(nSpeed, nEvent, nBits, nStop)){ if (InitPort(nSpeed, nEvent, nBits, nStop)) {
LOGM("Port set successfully!"); LOGM("Port set successfully!");
}else{ } else {
LOGE("Port set fail!"); LOGE("Port set fail!");
} }
} }
@@ -207,15 +207,15 @@ Serial::~Serial() {
fd = -1; fd = -1;
} }
bool Serial::InitPort(int nSpeed, char nEvent, int nBits, int nStop){ bool Serial::InitPort(int nSpeed, char nEvent, int nBits, int nStop) {
string name = get_uart_dev_name(); string name = get_uart_dev_name();
if(name == ""){ if (name == "") {
return false; return false;
} }
if((fd=open(name.data(), O_RDWR)) < 0){ if ((fd = open(name.data(), O_RDWR)) < 0) {
return false; return false;
} }
if(set_opt(fd, nSpeed, nEvent, nBits, nStop) < 0){ if (set_opt(fd, nSpeed, nEvent, nBits, nStop) < 0) {
return false; return false;
} }
return true; return true;
@@ -225,13 +225,14 @@ bool Serial::InitPort(int nSpeed, char nEvent, int nBits, int nStop){
// //
//} //}
bool Serial::WriteData(const unsigned char* pData, unsigned int length){ bool Serial::WriteData(const unsigned char *pData, unsigned int length) {
int cnt=0, curr=0; int cnt = 0, curr = 0;
while((curr=write(fd, pData+cnt, length-cnt))>0 && (cnt+=curr)<length); if (fd <= 0)return false;
if(cnt < 0){ while ((curr = write(fd, pData + cnt, length - cnt)) > 0 && (cnt += curr) < length);
if (cnt < 0) {
LOGE("Serial offline!"); LOGE("Serial offline!");
close(fd); close(fd);
if(wait_uart){ if (wait_uart) {
InitPort(nSpeed, nEvent, nBits, nStop); InitPort(nSpeed, nEvent, nBits, nStop);
} }
return false; return false;
@@ -239,13 +240,13 @@ bool Serial::WriteData(const unsigned char* pData, unsigned int length){
return true; return true;
} }
bool Serial::ReadData(unsigned char* buffer, unsigned int length){ bool Serial::ReadData(unsigned char *buffer, unsigned int length) {
int cnt=0, curr=0; int cnt = 0, curr = 0;
while((curr=read(fd, buffer+cnt, length-cnt))>0 && (cnt+=curr)<length); while ((curr = read(fd, buffer + cnt, length - cnt)) > 0 && (cnt += curr) < length);
if(cnt < 0){ if (cnt < 0) {
LOGE("Serial offline!"); LOGE("Serial offline!");
close(fd); close(fd);
if(wait_uart){ if (wait_uart) {
InitPort(nSpeed, nEvent, nBits, nStop); InitPort(nSpeed, nEvent, nBits, nStop);
} }
return false; return false;
@@ -265,10 +266,13 @@ int Serial::set_opt(int fd, int nSpeed, char nEvent, int nBits, int nStop) {
switch (nBits) { switch (nBits) {
case 7: case 7:
newtio.c_cflag |= CS7;break; newtio.c_cflag |= CS7;
break;
case 8: case 8:
newtio.c_cflag |= CS8;break; newtio.c_cflag |= CS8;
default:break; break;
default:
break;
} }
switch (nEvent) { switch (nEvent) {
@@ -285,7 +289,8 @@ int Serial::set_opt(int fd, int nSpeed, char nEvent, int nBits, int nStop) {
case 'N': //无校验 case 'N': //无校验
newtio.c_cflag &= ~PARENB; newtio.c_cflag &= ~PARENB;
break; break;
default:break; default:
break;
} }
switch (nSpeed) { switch (nSpeed) {