add trDataTolog() function
This commit is contained in:
parent
5e655d77f4
commit
78abcf0b1a
@ -70,7 +70,7 @@ void checkTT()
|
|||||||
repGetTT(); //持续更新
|
repGetTT(); //持续更新
|
||||||
}
|
}
|
||||||
|
|
||||||
static void getFileData_thread_entry(void)
|
static void upSendFile_thread_entry(void)
|
||||||
{
|
{
|
||||||
//等待事件
|
//等待事件
|
||||||
extern struct rt_event hw_check; //硬件条件
|
extern struct rt_event hw_check; //硬件条件
|
||||||
@ -78,13 +78,6 @@ static void getFileData_thread_entry(void)
|
|||||||
static rt_uint8_t d[10][200] = { };
|
static rt_uint8_t d[10][200] = { };
|
||||||
static rt_uint8_t s[10] = { };
|
static rt_uint8_t s[10] = { };
|
||||||
|
|
||||||
// while (tcpInit() != RT_EOK)
|
|
||||||
// {
|
|
||||||
// LOG_W("TT server is not ready.");
|
|
||||||
// rt_thread_mdelay(100);
|
|
||||||
// }
|
|
||||||
// LOG_D("TT server is ready.");
|
|
||||||
|
|
||||||
while (1)
|
while (1)
|
||||||
{
|
{
|
||||||
if (rt_event_recv(&hw_check, ALL_READY, RT_EVENT_FLAG_OR | RT_EVENT_FLAG_CLEAR,
|
if (rt_event_recv(&hw_check, ALL_READY, RT_EVENT_FLAG_OR | RT_EVENT_FLAG_CLEAR,
|
||||||
@ -103,8 +96,6 @@ static void getFileData_thread_entry(void)
|
|||||||
for (size_t var = 0; var < len; var++)
|
for (size_t var = 0; var < len; var++)
|
||||||
{
|
{
|
||||||
sendMsg(d[var], s[var]);
|
sendMsg(d[var], s[var]);
|
||||||
// LOG_D("i = %d", var);
|
|
||||||
// LOG_HEX("d", 27, d[var], s[var]);
|
|
||||||
}
|
}
|
||||||
tcpClose();
|
tcpClose();
|
||||||
LOG_I("Done.");
|
LOG_I("Done.");
|
||||||
@ -115,10 +106,10 @@ static void getFileData_thread_entry(void)
|
|||||||
}
|
}
|
||||||
|
|
||||||
//MSH_CMD_EXPORT(getFileData_thread_entry,tet);
|
//MSH_CMD_EXPORT(getFileData_thread_entry,tet);
|
||||||
static void gg(void)
|
static void upSendFile(void)
|
||||||
{
|
{
|
||||||
/* 创建 serial 线程 */
|
/* 创建 serial 线程 */
|
||||||
rt_thread_t thread = rt_thread_create("PSmsg", getFileData_thread_entry, RT_NULL, 1024 * 12, 27, 10);
|
rt_thread_t thread = rt_thread_create("upSendFile", upSendFile_thread_entry, RT_NULL, 1024 * 12, 27, 10);
|
||||||
/* 创建成功则启动线程 */
|
/* 创建成功则启动线程 */
|
||||||
if (thread != RT_NULL)
|
if (thread != RT_NULL)
|
||||||
{
|
{
|
||||||
@ -126,13 +117,13 @@ static void gg(void)
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
LOG_E("thread 'PSmsg' create failure.");
|
LOG_E("thread 'upSendFile' create failure.");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static void try()
|
static void chkAndSendFile_thread_entry()
|
||||||
{
|
{
|
||||||
static rt_err_t rst = RT_ERROR;
|
static rt_err_t rst = RT_ERROR;
|
||||||
updatecfg();
|
updatecfg();
|
||||||
@ -178,44 +169,23 @@ static void try()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
//continue;
|
//continue;
|
||||||
//发送数据
|
//发送数据
|
||||||
//可能有多个待发文件,每个文件打包后为一个二维数组
|
//可能有多个待发文件,每个文件打包后为一个二维数组
|
||||||
// 如果先打包后发送,需要三维数组,和大内存占用
|
//如果先打包后发送,需要三维数组,和大内存占用
|
||||||
// 故改为“打包-发送”轮询操作
|
//故改为“打包-发送”轮询操作
|
||||||
//gg();
|
// upSendFile();
|
||||||
#ifdef _NO
|
|
||||||
char *f="1023_05_19_15_29_59_254.txt";
|
|
||||||
// pack file
|
|
||||||
// static rt_uint8_t d[10][200] = { };
|
|
||||||
// static rt_uint8_t s[10] = { };
|
|
||||||
rt_uint8_t len = 0;
|
|
||||||
// LOG_D("%p--%p",d,s);
|
|
||||||
// LOG_I("pack %s ...",f);
|
|
||||||
len = pack_File(f, 0, d, s);
|
|
||||||
rt_kprintf("len is %d\n", len);
|
|
||||||
if (len)
|
|
||||||
{
|
|
||||||
for (size_t var = 0; var < len; ++var)
|
|
||||||
{
|
|
||||||
// LOG_HEX("d",27,d[var],s[var]);
|
|
||||||
|
|
||||||
}
|
|
||||||
LOG_I("Done.");
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
LOG_I("----------------------------");
|
LOG_I("----------------------------");
|
||||||
//initEvent();
|
|
||||||
// rt_thread_mdelay(100);
|
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
void smsg()
|
void chkAndSendFile()
|
||||||
{
|
{
|
||||||
/* 创建 serial 线程 */
|
/* 创建 serial 线程 */
|
||||||
rt_thread_t thread = rt_thread_create("checkSta", try, RT_NULL, 1024 * 5, 24, 10);
|
rt_thread_t thread = rt_thread_create("chk&send", chkAndSendFile_thread_entry, RT_NULL, 1024 * 5, 24, 10);
|
||||||
/* 创建成功则启动线程 */
|
/* 创建成功则启动线程 */
|
||||||
if (thread != RT_NULL)
|
if (thread != RT_NULL)
|
||||||
{
|
{
|
||||||
@ -223,7 +193,7 @@ void smsg()
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
LOG_E("thread 'checkSta' create failure.");
|
LOG_E("thread 'chk&send' create failure.");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -262,8 +232,8 @@ void deiniCnt()
|
|||||||
|
|
||||||
#define FUNC_DEMO
|
#define FUNC_DEMO
|
||||||
#ifdef FUNC_DEMO //测试时导出命令到控制台
|
#ifdef FUNC_DEMO //测试时导出命令到控制台
|
||||||
MSH_CMD_EXPORT(smsg, smsg);
|
MSH_CMD_EXPORT(chkAndSendFile, chkAndSendFile);
|
||||||
MSH_CMD_EXPORT(gg, file);
|
MSH_CMD_EXPORT(upSendFile, upSendFile);
|
||||||
MSH_CMD_EXPORT(iniCnt,初始化tcp连接);
|
MSH_CMD_EXPORT(iniCnt,初始化tcp连接);
|
||||||
MSH_CMD_EXPORT(deiniCnt,初始化tcp连接);
|
MSH_CMD_EXPORT(deiniCnt,初始化tcp连接);
|
||||||
#endif
|
#endif
|
||||||
|
@ -15,6 +15,57 @@
|
|||||||
#define LOG_LVL LOG_LVL_DBG
|
#define LOG_LVL LOG_LVL_DBG
|
||||||
#include <ulog.h>
|
#include <ulog.h>
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 将收发数据以ASCII字符形式存入log
|
||||||
|
* @param din 待存储数据
|
||||||
|
* @param len 数据长度
|
||||||
|
* @return 1-正常,0-异常
|
||||||
|
*/
|
||||||
|
int trDataTolog(uint8_t *din, size_t len, uint8_t isTx)
|
||||||
|
{
|
||||||
|
char rootDir[22] = ROOT_PATH_LOG;
|
||||||
|
mkdir(rootDir, 0);
|
||||||
|
|
||||||
|
char tstmp[30] = "";
|
||||||
|
char fn[50] = "";
|
||||||
|
strcat(fn,rootDir);
|
||||||
|
strcat(fn,"20");
|
||||||
|
strcat(fn,date2Str(tstmp));//以小时为独立文件
|
||||||
|
fn[strlen(fn)-3]='\0';
|
||||||
|
strcat(fn,"/");
|
||||||
|
mkdir(fn, 0);
|
||||||
|
|
||||||
|
strcat(fn,tstmp);
|
||||||
|
strcat(fn,".log");
|
||||||
|
|
||||||
|
int fd = open(fn, O_WRONLY | O_CREAT | O_APPEND);
|
||||||
|
if (fd < 0)
|
||||||
|
{
|
||||||
|
LOG_E("open file %s failed!", fn);
|
||||||
|
return -RT_ERROR;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
char log[300]="";
|
||||||
|
char tmp[200]="";
|
||||||
|
strcat(log,getTimestmp(tmp));
|
||||||
|
strcat(log,isTx?" [T]: ":" [R]: ");
|
||||||
|
// strcat(log,bytes2str(din, len, 16, " ", tmp));
|
||||||
|
strcat(log,din);
|
||||||
|
strcat(log,"\r\n");
|
||||||
|
|
||||||
|
int rst = write(fd, log, strlen(log));
|
||||||
|
if (rst != strlen(log))
|
||||||
|
{
|
||||||
|
LOG_E("write to file %s failed!", fn);
|
||||||
|
close(fd);
|
||||||
|
return -RT_ERROR;
|
||||||
|
}
|
||||||
|
close(fd);
|
||||||
|
return RT_EOK;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
RT_WEAK int set_cfg(const char *k, const char*v)
|
RT_WEAK int set_cfg(const char *k, const char*v)
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
@ -115,6 +166,7 @@ void upSend_thread_entry(void* parameter)
|
|||||||
{
|
{
|
||||||
tcpClose();
|
tcpClose();
|
||||||
LOG_I("send to TT Done.");
|
LOG_I("send to TT Done.");
|
||||||
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
@ -127,6 +179,28 @@ void upSend_thread_entry(void* parameter)
|
|||||||
*/
|
*/
|
||||||
RT_WEAK int upSend(uint8_t *din, size_t len)
|
RT_WEAK int upSend(uint8_t *din, size_t len)
|
||||||
{
|
{
|
||||||
|
LOG_D("try to upsend to TT.");
|
||||||
|
|
||||||
|
uint8_t sta = 1;
|
||||||
|
while (0 && !isTTjh()) //判断TT状态
|
||||||
|
{
|
||||||
|
static uint8_t trycnt = 0;
|
||||||
|
rt_thread_mdelay(4000);
|
||||||
|
trycnt += 1;
|
||||||
|
if (trycnt > 3)
|
||||||
|
{
|
||||||
|
sta = 0; //try 3 time
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (!sta) {
|
||||||
|
//cache to file
|
||||||
|
LOG_W("TT is not ready, try to cache %d bytes data to file.",len);
|
||||||
|
cacheDataToFile(din, len);
|
||||||
|
// trDataTolog(din, len, 1);
|
||||||
|
return -RT_ERROR;
|
||||||
|
}
|
||||||
|
|
||||||
//此函数有打包操作,需线程操作
|
//此函数有打包操作,需线程操作
|
||||||
// LOG_D("upsend.");
|
// LOG_D("upsend.");
|
||||||
// return 0;
|
// return 0;
|
||||||
@ -137,16 +211,17 @@ RT_WEAK int upSend(uint8_t *din, size_t len)
|
|||||||
msg.len=len;
|
msg.len=len;
|
||||||
|
|
||||||
/* 创建 serial 线程 */
|
/* 创建 serial 线程 */
|
||||||
rt_thread_t thread = rt_thread_create("upSend", upSend_thread_entry, (void *) &msg, 1024 * 10, 27, 10);
|
rt_thread_t thread = rt_thread_create("upSend", upSend_thread_entry, (void *) &msg, 1024 * 5, 27, 10);
|
||||||
/* 创建成功则启动线程 */
|
/* 创建成功则启动线程 */
|
||||||
if (thread != RT_NULL)
|
if (thread != RT_NULL)
|
||||||
{
|
{
|
||||||
rt_thread_startup(thread);
|
rt_thread_startup(thread);
|
||||||
|
return RT_EOK;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
LOG_E("thread 'upSend' create failure.");
|
LOG_E("thread 'upSend' create failure.");
|
||||||
return;
|
return -RT_ERROR;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -567,7 +642,7 @@ void ttRunCMD(uint8_t *din, size_t len)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
RT_WEAK int xpParse(uint8_t * din, size_t len)
|
RT_WEAK int formatAndSendTo3S(uint8_t * din, size_t len)
|
||||||
{
|
{
|
||||||
// LOG_D("直接调用小彭的函数进行处理。");
|
// LOG_D("直接调用小彭的函数进行处理。");
|
||||||
char str[200] = "RCV:";
|
char str[200] = "RCV:";
|
||||||
@ -642,7 +717,7 @@ void parse3SData(uint8_t *din, size_t count)
|
|||||||
{
|
{
|
||||||
//
|
//
|
||||||
|
|
||||||
xpParse(din,count);
|
formatAndSendTo3S(din,count);
|
||||||
}
|
}
|
||||||
if (din[2] == ADDR_ANJI)
|
if (din[2] == ADDR_ANJI)
|
||||||
{
|
{
|
||||||
@ -656,7 +731,14 @@ void parse3SData(uint8_t *din, size_t count)
|
|||||||
reportDepth(din, count);
|
reportDepth(din, count);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
cacheData(din, count);
|
if (isTTon())
|
||||||
|
{//如果TT为开机状态(具备通信状态?待商榷)则不缓存直接发
|
||||||
|
upSend(din, count);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
cacheDataToFile(din, count);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
// upSend(din, count);
|
// upSend(din, count);
|
||||||
}
|
}
|
||||||
@ -736,6 +818,40 @@ void parseTTData(uint8_t *din, size_t len)
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* get file size
|
||||||
|
* @param file file name whith fullpath
|
||||||
|
*/
|
||||||
|
unsigned long getFileSize(char *file)
|
||||||
|
{
|
||||||
|
struct stat stat;
|
||||||
|
char *fullpath, *path;
|
||||||
|
|
||||||
|
#ifdef DFS_USING_WORKDIR
|
||||||
|
/* open current working directory */
|
||||||
|
path = rt_strdup("/");
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* build full path for each file */
|
||||||
|
fullpath = dfs_normalize_path(path, file);
|
||||||
|
|
||||||
|
rt_memset(&stat, 0, sizeof(struct stat));
|
||||||
|
if (dfs_file_stat(fullpath, &stat) == 0)
|
||||||
|
{
|
||||||
|
return (unsigned long) stat.st_size;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void d_getFileSize(int argc, char ** argv)
|
||||||
|
{
|
||||||
|
// char *f;
|
||||||
|
uint16_t size = (uint16_t)getFileSize(argv[1]);
|
||||||
|
LOG_D("size = %d Byte.",size);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 缓存任务数据
|
* 缓存任务数据
|
||||||
@ -743,11 +859,11 @@ void parseTTData(uint8_t *din, size_t len)
|
|||||||
* @param len 任务数据长度
|
* @param len 任务数据长度
|
||||||
* @return 0--正常,-1--异常
|
* @return 0--正常,-1--异常
|
||||||
*/
|
*/
|
||||||
int cacheData(uint8_t *din, size_t len)
|
int cacheDataToFile(uint8_t *din, size_t len)
|
||||||
{
|
{
|
||||||
LOG_I("FUNC = cache and upsend");
|
LOG_I("FUNC = cache and upsend");
|
||||||
static int cnt = 0;
|
static uint16_t cnt = 0;
|
||||||
LOG_D("cached size=%d", cnt);
|
LOG_D("already cached %d bytes.", cnt);
|
||||||
char rootDir[22] = "/sd/rxdata/";
|
char rootDir[22] = "/sd/rxdata/";
|
||||||
mkdir(rootDir, 0);
|
mkdir(rootDir, 0);
|
||||||
|
|
||||||
@ -772,10 +888,10 @@ int cacheData(uint8_t *din, size_t len)
|
|||||||
strcat(f, rootDir);
|
strcat(f, rootDir);
|
||||||
// strcpy(f,rootDir);
|
// strcpy(f,rootDir);
|
||||||
strcat(f, "23_07_19_16_38_36_36.bin");
|
strcat(f, "23_07_19_16_38_36_36.bin");
|
||||||
LOG_D("need to creat new file");
|
// LOG_D("need to creat new file");
|
||||||
strncpy(f + strlen(rootDir), ts, strlen(ts));
|
strncpy(f + strlen(rootDir), ts, strlen(ts));
|
||||||
}
|
}
|
||||||
LOG_D("f=%s", f);
|
// LOG_D("f=%s", f);
|
||||||
int fd = open(f, O_WRONLY | O_CREAT | O_APPEND);
|
int fd = open(f, O_WRONLY | O_CREAT | O_APPEND);
|
||||||
if (fd < 0)
|
if (fd < 0)
|
||||||
{
|
{
|
||||||
@ -793,6 +909,7 @@ int cacheData(uint8_t *din, size_t len)
|
|||||||
}
|
}
|
||||||
cnt += len;
|
cnt += len;
|
||||||
close(fd);
|
close(fd);
|
||||||
|
LOG_I("cached %d bytes data to '%s'.",cnt,f);
|
||||||
}
|
}
|
||||||
|
|
||||||
return RT_EOK;
|
return RT_EOK;
|
||||||
@ -802,7 +919,7 @@ void d_cacheData()
|
|||||||
uint8_t demo[200];
|
uint8_t demo[200];
|
||||||
size_t len = sizeof(demo);
|
size_t len = sizeof(demo);
|
||||||
memset(demo,0xAB,len);
|
memset(demo,0xAB,len);
|
||||||
cacheData(demo, len);
|
cacheDataToFile(demo, len);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -819,7 +936,9 @@ void parseRS232(uint8_t *din, size_t len)
|
|||||||
//check
|
//check
|
||||||
if (memcmp(din,asciiHead,sizeof(asciiHead)) == 0) {
|
if (memcmp(din,asciiHead,sizeof(asciiHead)) == 0) {
|
||||||
//ascii
|
//ascii
|
||||||
|
trDataTolog(din, len, 0);
|
||||||
LOG_I("type = ASCII");
|
LOG_I("type = ASCII");
|
||||||
|
|
||||||
uint8_t index[10];
|
uint8_t index[10];
|
||||||
uint8_t tmpHead[]={0x35, 0x41, 0x41, 0x35};
|
uint8_t tmpHead[]={0x35, 0x41, 0x41, 0x35};
|
||||||
size_t n=isInByte(din, len, tmpHead, sizeof(tmpHead), index);
|
size_t n=isInByte(din, len, tmpHead, sizeof(tmpHead), index);
|
||||||
@ -847,6 +966,8 @@ void parseRS232(uint8_t *din, size_t len)
|
|||||||
else//如果不是ASCII则统一按HEX计// if (memcmp(din,hexHead,sizeof(hexHead)) == 0)
|
else//如果不是ASCII则统一按HEX计// if (memcmp(din,hexHead,sizeof(hexHead)) == 0)
|
||||||
{
|
{
|
||||||
//hex
|
//hex
|
||||||
|
char tmp[200]="";
|
||||||
|
trDataTolog(bytes2str(din, len, 16, " ", tmp), strlen(tmp), 0);
|
||||||
LOG_I("type = HEX");
|
LOG_I("type = HEX");
|
||||||
|
|
||||||
uint8_t index[10];
|
uint8_t index[10];
|
||||||
@ -891,6 +1012,7 @@ MSH_CMD_EXPORT(selfTest,sysSelfTest);
|
|||||||
MSH_CMD_EXPORT(d_packLocMsg,dpackLocMsg);
|
MSH_CMD_EXPORT(d_packLocMsg,dpackLocMsg);
|
||||||
MSH_CMD_EXPORT(packAndSendLoc,packAndSendLoc);
|
MSH_CMD_EXPORT(packAndSendLoc,packAndSendLoc);
|
||||||
MSH_CMD_EXPORT(d_cacheData,d_cacheData);
|
MSH_CMD_EXPORT(d_cacheData,d_cacheData);
|
||||||
|
MSH_CMD_EXPORT(d_getFileSize,d_getFileSize);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
@ -79,6 +79,7 @@ enum
|
|||||||
#define ADDR_TT 0x41
|
#define ADDR_TT 0x41
|
||||||
#define ADDR_3S 0x32
|
#define ADDR_3S 0x32
|
||||||
|
|
||||||
|
#define ROOT_PATH_LOG "/sd/log/"
|
||||||
|
#define ROOT_PATH_DATA "/sd/rxdata/"
|
||||||
|
|
||||||
#endif /* APPLICATIONS_FUNC_FUNC_H_ */
|
#endif /* APPLICATIONS_FUNC_FUNC_H_ */
|
||||||
|
@ -389,12 +389,24 @@ void getTT(int argc, char **argv)
|
|||||||
/* 导出到自动初始化 */
|
/* 导出到自动初始化 */
|
||||||
MSH_CMD_EXPORT(getTT, 获取天通信息,支持参数。 "getTT 3 1" means try 3 times with 1 second interval.);
|
MSH_CMD_EXPORT(getTT, 获取天通信息,支持参数。 "getTT 3 1" means try 3 times with 1 second interval.);
|
||||||
//MSH_CMD_EXPORT_ALIAS(webclient_get_data, gTTinfo, GET info of TT server.);
|
//MSH_CMD_EXPORT_ALIAS(webclient_get_data, gTTinfo, GET info of TT server.);
|
||||||
|
/**
|
||||||
|
* 判断TT是否为开机状态
|
||||||
|
* @return 1-开机,0-关机
|
||||||
|
*/
|
||||||
int isTTon(void)
|
int isTTon(void)
|
||||||
{
|
{
|
||||||
return !rt_pin_read(TT_EN);
|
return !rt_pin_read(TT_EN);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 判断TT是否激活
|
||||||
|
* @return 1-已激活,0-未激活
|
||||||
|
*/
|
||||||
|
int isTTjh(void)
|
||||||
|
{
|
||||||
|
return atoi(TTinfo->jh);
|
||||||
|
}
|
||||||
|
|
||||||
void repGetTT_thread_entry(void* parameter)
|
void repGetTT_thread_entry(void* parameter)
|
||||||
{
|
{
|
||||||
while(!isTTon())//第一次运行时未上电则等待
|
while(!isTTon())//第一次运行时未上电则等待
|
||||||
|
@ -79,7 +79,8 @@ void hexFile_thread_entry(void* parameter)
|
|||||||
rt_uint8_t *buffer = RT_NULL;
|
rt_uint8_t *buffer = RT_NULL;
|
||||||
#define READ_BUFFER_SIZE 512
|
#define READ_BUFFER_SIZE 512
|
||||||
buffer = (rt_uint8_t *) malloc(READ_BUFFER_SIZE);
|
buffer = (rt_uint8_t *) malloc(READ_BUFFER_SIZE);
|
||||||
rt_kprintf("------Start------\n");
|
rt_kprintf("\n------Start------\n");
|
||||||
|
LOG_D("size = %d bytes.",file_size);
|
||||||
for (size_t i = 0; i < file_size; i += READ_BUFFER_SIZE)
|
for (size_t i = 0; i < file_size; i += READ_BUFFER_SIZE)
|
||||||
{
|
{
|
||||||
if ((file_size - i) < READ_BUFFER_SIZE)
|
if ((file_size - i) < READ_BUFFER_SIZE)
|
||||||
@ -153,7 +154,29 @@ char *time2Str(char *str)
|
|||||||
return str;
|
return str;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
char *date2Str(char *str)
|
||||||
|
{
|
||||||
|
uint8_t t[10];
|
||||||
|
size_t len=time2Byte(t);
|
||||||
|
bytes2str(t, len, 10, "_", str);
|
||||||
|
// len = strlen(str);
|
||||||
|
str[11]='\0';
|
||||||
|
return str;
|
||||||
|
|
||||||
|
}
|
||||||
|
char *getTimestmp(char *str)
|
||||||
|
{
|
||||||
|
uint8_t t[10];
|
||||||
|
size_t len=time2Byte(t);
|
||||||
|
str[0]='\0';
|
||||||
|
strcat(str,"20");
|
||||||
|
bytes2str(t, len, 10, "-", str+2);
|
||||||
|
str[10]='_';
|
||||||
|
len = strlen(str);
|
||||||
|
str[len]='\0';
|
||||||
|
return str;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
void tm2str(int argc, char **argv)
|
void tm2str(int argc, char **argv)
|
||||||
@ -161,6 +184,8 @@ void tm2str(int argc, char **argv)
|
|||||||
char s[30];
|
char s[30];
|
||||||
time2Str(s);
|
time2Str(s);
|
||||||
LOG_I("result is %s",s);
|
LOG_I("result is %s",s);
|
||||||
|
getTimestmp(s);
|
||||||
|
LOG_I("result is %s",s);
|
||||||
}
|
}
|
||||||
MSH_CMD_EXPORT(tm2str,时间转换为字符串)
|
MSH_CMD_EXPORT(tm2str,时间转换为字符串)
|
||||||
|
|
||||||
|
@ -282,6 +282,9 @@ int sendMsg(const rt_uint8_t *msg, size_t len)
|
|||||||
};
|
};
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
char str[400];
|
||||||
|
bytes2str(msg, len, 16, " ", str);
|
||||||
|
trDataTolog(str, strlen(str), 1);
|
||||||
return RT_EOK;
|
return RT_EOK;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -119,26 +119,6 @@ static void serial_thread_entry(void *parameter)
|
|||||||
LOG_I("%d Bytes received from RS232",rx_length);
|
LOG_I("%d Bytes received from RS232",rx_length);
|
||||||
LOG_HEX("232rx:",16,rx_buffer,rx_length);//print what received.
|
LOG_HEX("232rx:",16,rx_buffer,rx_length);//print what received.
|
||||||
parseRS232(rx_buffer, rx_length);
|
parseRS232(rx_buffer, rx_length);
|
||||||
#ifdef TR_ACK
|
|
||||||
/* 回传收到的消息 */
|
|
||||||
rt_device_write(serial, 0, rx_buffer+rx_length, rx_length);
|
|
||||||
#endif
|
|
||||||
// if (0 && currLen > 1024) //大于1k则存盘
|
|
||||||
// {
|
|
||||||
//
|
|
||||||
// int fd =open(f,O_WRONLY | O_CREAT|O_APPEND);
|
|
||||||
// if(fd <0)
|
|
||||||
// {
|
|
||||||
// LOG_E("open file %s failed!", f);
|
|
||||||
// }
|
|
||||||
// else
|
|
||||||
// {
|
|
||||||
// write(fd,rx_buffer,rx_length);
|
|
||||||
// close(fd);
|
|
||||||
// currLen = 0;
|
|
||||||
// rx_length=0;
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@ -202,7 +182,7 @@ static int uart_dma_sample(int argc, char *argv[])
|
|||||||
|
|
||||||
|
|
||||||
/* 创建 serial 线程 */
|
/* 创建 serial 线程 */
|
||||||
rt_thread_t thread = rt_thread_create("serial", serial_thread_entry, RT_NULL, 1024*2, 25+1, 10);
|
rt_thread_t thread = rt_thread_create("serial", serial_thread_entry, RT_NULL, 1024*5, 25+1, 10);
|
||||||
/* 创建成功则启动线程 */
|
/* 创建成功则启动线程 */
|
||||||
if (thread != RT_NULL)
|
if (thread != RT_NULL)
|
||||||
{
|
{
|
||||||
|
Loading…
Reference in New Issue
Block a user