diff --git a/applications/func/func.c b/applications/func/func.c index f1fe17a..86ab901 100644 --- a/applications/func/func.c +++ b/applications/func/func.c @@ -66,11 +66,6 @@ int trDataTolog(uint8_t *din, size_t len, uint8_t isTx) } } -RT_WEAK int set_cfg(const char *k, const char*v) -{ - return; -} - //3.2.1双模通信功能 //1为TT通信,0为BD短报文通信 void setCommMode(int isTT) @@ -167,7 +162,7 @@ void upSend_thread_entry(void* parameter) //cache to file LOG_W("TT is not ready, try to cache %d bytes data to file.",msg->len); cacheDataToFile(msg->data, msg->len); - return -RT_ERROR; + return ; } @@ -181,7 +176,7 @@ void upSend_thread_entry(void* parameter) packInit(&cfg, fin, 0); //写入配置 cfg.fcurpiece[0] = 1; cfg.fallpiece[0] = 1; - size_t rst = packMsg(&cfg, msg->data, msg->len, dout); + size_t rst = packMsg(&cfg, msg->data, msg->len, dout);//packMsgs LOG_HEX("upSend", 27, dout, rst); if (rst) { @@ -200,7 +195,7 @@ void upSend_thread_entry(void* parameter) cacheDataToFile(msg->data, msg->len); } } - return 0; + return ; } /** * 上傳天通數據 @@ -234,7 +229,7 @@ RT_WEAK int upSend(uint8_t *din, size_t len) // // //此函数有打包操作,需线程操作 //// LOG_D("upsend."); -//// return 0; +// return 0; // static SMSG msg; memset(&msg, 0, sizeof(SMSG)); @@ -861,6 +856,7 @@ unsigned long getFileSize(char *file) { struct stat stat; char *fullpath, *path; + unsigned long rst=0; #ifdef DFS_USING_WORKDIR /* open current working directory */ @@ -873,12 +869,11 @@ unsigned long getFileSize(char *file) rt_memset(&stat, 0, sizeof(struct stat)); if (dfs_file_stat(fullpath, &stat) == 0) { - return (unsigned long) stat.st_size; - } - else - { - return 0; + rst = stat.st_size; } + rt_free(fullpath); + rt_free(path); + return rst; } void d_getFileSize(int argc, char ** argv) @@ -960,12 +955,12 @@ int cacheDataToFile(uint8_t *din, size_t len) } // cnt += len; close(fd); - size_t size = getFileSize(f); - LOG_I("cached %d bytes data to '%s', new size is %d bytes.",len,f,size); + unsigned long size = getFileSize(f); + LOG_I("cached %d bytes data to '%s', new size is %ld bytes.",len,f,size); if (size > scfg.maxSizePerFile) { postFileInfo(f,0);//加入待发列表 - getNewCacheFileName(f);//更新文件名 + updateCacheFileName();//更新文件名 } } @@ -987,7 +982,7 @@ void parseRS232(uint8_t *din, size_t len) //有HEX有ASCII,统一按HEX解析 //部分数据以10字节(20字符)的0数据开始,如深度查询,心跳包等 //处理思路是先不管前导0,对应指令手动加前导数据 - uint8_t asciiHead[]={0x41, 0x54, 0x2B, 0x53, 0x4E, 0x44,};//"AT+SND" +// uint8_t asciiHead[]={0x41, 0x54, 0x2B, 0x53, 0x4E, 0x44,};//"AT+SND" uint8_t hexHead[]={0x5a, 0xa5};//"5AA5" //由于帧头有多种,且ascii和hex混发,无法处理粘包 @@ -1026,7 +1021,7 @@ void parseRS232(uint8_t *din, size_t len) } else//如果不是ASCII则统一按HEX计// if (memcmp(din,hexHead,sizeof(hexHead)) == 0) { - //hex + //bin LOG_I("type = BIN"); char tmp[200]=""; trDataTolog(bytes2str(din, len, 16, " ", tmp), strlen(tmp), 0); diff --git a/applications/tools.c b/applications/tools.c index 8442638..b8ce81b 100644 --- a/applications/tools.c +++ b/applications/tools.c @@ -391,7 +391,7 @@ size_t isInByte(uint8_t *din, size_t len, uint8_t *s, size_t slen, uint8_t *dout * @param fin 指向文件名的数组 * @return */ -char *getNewCacheFileName(char *fin) +void updateCacheFileName() { char f[60]=""; char rootDir[22] = ROOT_PATH_DATA; @@ -415,8 +415,8 @@ char *getNewCacheFileName(char *fin) // strcpy(cfname,f); updateLstFile(f); - strcpy(fin,f); - return fin; +// strcpy(fin,f); +// return fin; } @@ -432,8 +432,9 @@ char *getLstCacheFileName(char *fin) // getNewCacheFileName(fin); // } char f[60]; - if (!getLstFile(f)) { - getNewCacheFileName(fin); + while (!getLstFile(f)) { + updateCacheFileName(); + rt_thread_mdelay(1000); } strcpy(fin,f); return fin; @@ -445,7 +446,8 @@ void d_gcf() { char f[60]; LOG_D("--%s",getLstCacheFileName(f)); - LOG_D("--%s",getNewCacheFileName(f)); + updateCacheFileName(); + LOG_D("--%s",getLstCacheFileName(f)); } MSH_CMD_EXPORT(d_gcf,cache file);