Ver código fonte

打开串口1

vothin 1 ano atrás
pai
commit
2b4338dea4

+ 1 - 1
jni/logic/startLogic.cc

@@ -745,7 +745,7 @@ static void onProtocolDataUpdate(const SProtocolData &data) {
 //	if (data.msg != ""){
 //		LOGD("msg = %s", data.msg.c_str());
 //	}
-	if(UartContext::Uart3IsOpen()) {	// 如果是true,表示串口打开了
+	if(UartContext::Uart2IsOpen()) {	// 如果是true,表示串口打开了
 		string heartStr;
 
 		//按下

+ 54 - 32
jni/uart/UartContext.cpp

@@ -63,6 +63,7 @@ UartContext::~UartContext() {
 }
 
 static bool mUart1IsOpen = false;
+static bool mUart2IsOpen = false;
 static bool mUart3IsOpen = false;
 
 // 打开串口,pFileName为串口号,baudRate为波特率
@@ -70,12 +71,16 @@ bool UartContext::openUart(const char *pFileName, UINT baudRate) {
 //	LOGD("打开串口  串口号 = %s, 波特率 = %s\n", pFileName, getBaudRate(baudRate));
 	mUartID = open(pFileName, O_RDWR|O_NOCTTY);		// mUartID等于打开的串口
 
+	LOGD("mUartNumber == %d", mUartNumber);
 	if (mUartID <= 0) {
 		mIsOpen = false;
-		if(mUartNumber == 1) {
+		if (mUartNumber == 1) {
 			mUart1IsOpen = false;
 		}
-		if(mUartNumber == 2) {
+		if (mUartNumber == 2) {
+			mUart2IsOpen = false;
+		}
+		if (mUartNumber == 3) {
 			mUart3IsOpen = false;
 		}
 		LOGD("uart%d open error", mUartNumber);
@@ -102,10 +107,13 @@ bool UartContext::openUart(const char *pFileName, UINT baudRate) {
 			mUartID = 0;
 		}
 
-		if(mUartNumber == 1) {
+		if (mUartNumber == 1) {
 			mUart1IsOpen = true;
 		}
-		if(mUartNumber == 3) {
+		if (mUartNumber == 2) {
+			mUart2IsOpen = true;
+		}
+		if (mUartNumber == 3) {
 			mUart3IsOpen = true;
 		}
 
@@ -194,36 +202,49 @@ bool UartContext::threadLoop() {
 		unsigned char buffer[1024] = {0};
 		int ret = read(mUartID, buffer, sizeof(buffer));
 		if (ret > 0) {
-			if (buffer[0]==CMD_HEAD && buffer[ret-2] == CMD_END1 && buffer[ret-1] == CMD_END2){
-				std::string revStr = "";
-				//std::string logInfo = " <<< ";
-				//依次将读取到的数据输出到日志
-				for (int i = 0; i < ret; ++i) {
-					if (i==0 || i==ret-1 || i==ret-2){
-						continue;
+			if (mUartID == 32) {
+				if (buffer[0]==CMD_HEAD && buffer[ret-2] == CMD_END1 && buffer[ret-1] == CMD_END2){
+					std::string revStr = "";
+					//std::string logInfo = " <<< ";
+					//依次将读取到的数据输出到日志
+					for (int i = 0; i < ret; ++i) {
+						if (i==0 || i==ret-1 || i==ret-2){
+							continue;
+						}
+						//LOGD(" <<< %02x", buffer[i]);
+						revStr += buffer[i];
+						//logInfo += base::format("%02x",buffer[i]);
 					}
-					//LOGD(" <<< %02x", buffer[i]);
-					revStr += buffer[i];
-					//logInfo += base::format("%02x",buffer[i]);
+					//LOGD(" %s",logInfo.c_str());
+					buildProtocolData(revStr);
 				}
-				//LOGD(" %s",logInfo.c_str());
-				buildProtocolData(revStr);
 			}
-            else if (buffer[0] == 0xfe && buffer[2] == 0x03) {
-                if (buffer[1] == 0x08) {
-                    std::string revStr = "";
-                    for (int i = 0; i < ret; ++i) {
-                        if (i==0 || i==1 || i==2 || i==3 || i==4 || i==ret-1){
-                            continue;
-                        }
-                        char buf[1024];
-                        sprintf(buf, "%02x", buffer[i]);
-                        revStr += buf;
-                    }
-                    LOGD("revStr == %s", revStr.c_str());
-                    nfcLogin(revStr);
+			else if (mUartID == 33) {
+	            if (buffer[0] == 0xfe && buffer[2] == 0x03) {
+	                if (buffer[1] == 0x08) {
+	                    std::string revStr = "";
+	                    for (int i = 0; i < ret; ++i) {
+	                        if (i==0 || i==1 || i==2 || i==3 || i==4 || i==ret-1){
+	                            continue;
+	                        }
+	                        char buf[1024];
+	                        sprintf(buf, "%02x", buffer[i]);
+	                        revStr += buf;
+	                    }
+	                    LOGD("revStr == %s", revStr.c_str());
+	                    nfcLogin(revStr);
+	                }
+	            }
+			}
+			else if (mUartID == 31) {
+                std::string revStr = "";
+                for (int i = 0; i < ret; ++i) {
+                    char buf[1024];
+                    sprintf(buf, "%02x", buffer[i]);
+                    revStr += buf;
                 }
-            }
+                LOGD("revStr == %s", revStr.c_str());
+			}
 		} else {
 		  //没收到数据时,休眠50ms,防止过度消耗cpu
 		  usleep(1000 * 50);
@@ -245,8 +266,8 @@ void UartContext::init() {
 //    uart0 = new UartContext(UART_TTYS0);
 //    uart0->openUart("/dev/ttyS0", B115200);
 
-//    uart1 = new UartContext(UART_TTYS1);
-//    uart1->openUart("/dev/ttyS1", B115200);
+    uart1 = new UartContext(UART_TTYS1);
+    uart1->openUart("/dev/ttyS1", B115200);
 
 	// 20221108的板子打开了串口2
     uart2 = new UartContext(UART_TTYS2);
@@ -292,4 +313,5 @@ bool UartContext::sendTo(int uart, const BYTE* pData, UINT len) {
 }
 
 bool UartContext::Uart1IsOpen() {return mUart1IsOpen;}
+bool UartContext::Uart2IsOpen() {return mUart2IsOpen;}
 bool UartContext::Uart3IsOpen() {return mUart3IsOpen;}

+ 1 - 0
jni/uart/UartContext.h

@@ -28,6 +28,7 @@ public:
 	static bool sendTo(int uart, const BYTE *pData, UINT len);
 
 	static bool Uart1IsOpen();
+	static bool Uart2IsOpen();
 	static bool Uart3IsOpen();
 
 	//static UartContext* getInstance();

BIN
libs/armeabi/libzkgui.so


BIN
obj/activity/startActivity.o


BIN
obj/service/time.o


BIN
obj/uart/UartContext.o