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