From 985922dd224f7bacb71cb32d66cbea9a22acbb33 Mon Sep 17 00:00:00 2001 From: hyx Date: Sun, 4 May 2025 18:17:27 +0800 Subject: [PATCH] add save mac upto v1.1.10 --- cp.sh | 2 +- main.c | 82 +++++++++++++++++++++++++++++++++++++++++++++++++++++-- mymake.sh | 4 +-- ssh.sh | 2 +- start.sh | 1 + 5 files changed, 84 insertions(+), 7 deletions(-) diff --git a/cp.sh b/cp.sh index 98eab8a..3dc403a 100755 --- a/cp.sh +++ b/cp.sh @@ -1,5 +1,5 @@ #sshpass -p "&Over#B0Ost!" scp ./start.sh root@10.10.10.101:/root/ -sshpass -p "&Over#B0Ost!" scp ./output/bin/tx_server root@10.10.10.235:/root/ +sshpass -p "&Over#B0Ost!" scp ./output/bin/tx_server root@10.10.12.235:/root/ #sshpass -p "&Over#B0Ost!" scp ./output/bin/tx_server root@10.10.10.101:/home/linaro/ #sshpass -p "PddloTSecPwdOnly!" scp ./output/bin/tx_server root@192.168.0.148:/home/linaro/ #sshpass -p "PddloTSecPwdOnly!" scp ./output/bin/tx_server root@10.10.10.132:/root/ diff --git a/main.c b/main.c index 529c3a2..259a1e2 100644 --- a/main.c +++ b/main.c @@ -36,7 +36,7 @@ int fd; int UPCASE=0; int count_value=0; int getPayloadTime=120*1000;//usecond -char softwareVersion[16]="1.1.9"; +char softwareVersion[16]="1.1.10"; char stationsn[16]="TJ251372224247";//TJ250995217957 char productid[8]="10045"; char appKey[32]="fdhQmhqhvbL1cf1K9mUqt"; @@ -670,6 +670,33 @@ void writeWlan(char *filename,char *netway,char *gate,char *ip){ } } +void writeNetworkInterface(char *filename,char *dest){ + buffer_to_file(filename,"# interfaces(5) file used by ifup(8) and ifdown(8)", + strlen("# interfaces(5) file used by ifup(8) and ifdown(8)"),"wb"); + buffer_to_file(filename,"\n",strlen("\n"),"a"); + buffer_to_file(filename,"# Include files from /etc/network/interfaces.d:",strlen("# Include files from /etc/network/interfaces.d:"),"a"); + buffer_to_file(filename,"\n",strlen("\n"),"a"); + buffer_to_file(filename,"source-directory /etc/network/interfaces.d",strlen("source-directory /etc/network/interfaces.d"),"a"); + buffer_to_file(filename,"\n",strlen("\n"),"a"); + buffer_to_file(filename,"auto lo",strlen("auto lo"),"a"); + buffer_to_file(filename,"\n",strlen("\n"),"a"); + buffer_to_file(filename,"iface lo inet loopback",strlen("iface lo inet loopback"),"a"); + buffer_to_file(filename,"\n",strlen("\n"),"a"); + buffer_to_file(filename,"auto eth0",strlen("auto eth0"),"a"); + buffer_to_file(filename,"\n",strlen("\n"),"a"); + buffer_to_file(filename,"iface eth0 inet dhcp",strlen("iface eth0 inet dhcp"),"a"); + buffer_to_file(filename,"\n",strlen("\n"),"a"); + buffer_to_file(filename,"# address 10.10.12.12",strlen("# address 10.10.12.12"),"a"); + buffer_to_file(filename,"\n",strlen("\n"),"a"); + buffer_to_file(filename,"# netmask 255.255.255.0",strlen("# netmask 255.255.255.0"),"a"); + buffer_to_file(filename,"\n",strlen("\n"),"a"); + buffer_to_file(filename,"# gateway 10.10.12.1",strlen("# gateway 10.10.12.1"),"a"); + buffer_to_file(filename,"\n",strlen("\n"),"a"); + buffer_to_file(filename,"hwaddress ether ",strlen("hwaddress ether "),"a"); + buffer_to_file(filename,dest,strlen(dest),"a"); + system("sync"); +} + void removeFile(char *filename){ char cmd[32]={0}; sprintf(cmd,"rm %s",filename); @@ -677,10 +704,42 @@ void removeFile(char *filename){ system(cmd); } +char* insert_colon(const char* src, int interval) { + if (!src || interval <= 0) return NULL; + + size_t len = strlen(src); + if (len == 0) { // 空字符串返回空 + char* res = malloc(1); + if (res) res[0] = '\0'; + return res; + } + + // 计算新字符串长度 + size_t sections = (len + interval - 1) / interval; // 总段数 + size_t new_len = len + (sections - 1); // 新长度 = 原长 + 冒号数 + char* new_str = malloc(new_len + 1); // 分配内存:ml-citation{ref="2" data="citationList"} + if (!new_str) return NULL; + + size_t src_idx = 0, dst_idx = 0; + while (src_idx < len) { + // 计算本次复制的字符数 + size_t copy_size = (len - src_idx < (size_t)interval) ? (len - src_idx) : (size_t)interval; + memcpy(new_str + dst_idx, src + src_idx, copy_size); // 块复制:ml-citation{ref="3" data="citationList"} + src_idx += copy_size; + dst_idx += copy_size; + + // 非末尾段时插入冒号 + if (src_idx < len) new_str[dst_idx++] = ':'; + } + new_str[dst_idx] = '\0'; // 终止符:ml-citation{ref="7" data="citationList"} + return new_str; +} + void *actHandleQrcode(void *parm){ char *str=(char *)parm; LOG_I("scan:%s\n",str); if(strstr(str,"{")!=NULL){ +#if 0 char deviceSecret[64]={0}; char deviceCode[64]={0}; char netWorkType[64]={0}; @@ -720,9 +779,26 @@ void *actHandleQrcode(void *parm){ sleep(1); system("reboot"); } +#endif }else{ - if(strstr(str,"TJ")!=NULL && strlen(str)==14){ - buffer_to_file("savedDevSn",str,strlen(str),"wb"); + if(strstr(str,"TJ")!=NULL && strlen(str)==27){ + LOG_I("ok\n"); + char *result=NULL; + char *p; + result=strtok_r(str,":",&p); + while(result!=NULL){ + if(strstr(result,"TJ")!=NULL){ + LOG_I("save sn:%s\n",result); + buffer_to_file("savedDevSn",result,strlen(result),"wb"); + }else{ + //LOG_I("save mac:%s\n",result); + //buffer_to_file("savedDevMac",result,strlen(result),"wb"); + char* destmac = insert_colon(result, 2); + LOG_I("save mac:%s\n",destmac); + writeNetworkInterface("/etc/network/interfaces",destmac); + } + result=strtok_r(NULL,",",&p); + } } } pthread_exit(NULL); diff --git a/mymake.sh b/mymake.sh index c7f7bdd..c4fd06c 100755 --- a/mymake.sh +++ b/mymake.sh @@ -1,6 +1,6 @@ . compile.sh -rm -fr output -mkdir output +#rm -fr output +#mkdir output cd output cmake .. make diff --git a/ssh.sh b/ssh.sh index 3e69811..4c128d1 100755 --- a/ssh.sh +++ b/ssh.sh @@ -1,3 +1,3 @@ -sshpass -p "&Over#B0Ost!" ssh root@10.10.10.235 +sshpass -p "&Over#B0Ost!" ssh root@10.10.12.235 #sshpass -p "PddloTSecPwdOnly!" ssh root@10.10.10.132 #sshpass -p "PddloTSecPwdOnly!" ssh root@192.168.0.148 diff --git a/start.sh b/start.sh index b3502e3..ca79d16 100755 --- a/start.sh +++ b/start.sh @@ -12,5 +12,6 @@ then ./tx_server else echo "$filesize < $maxsize not copy" + chmod 777 tx_server ./tx_server fi