单帧长度增加为200+,MAX_LEN_3S
upSend函数添加分包功能
This commit is contained in:
parent
efd3c2e425
commit
d6edb25d2d
@ -194,20 +194,23 @@ void upSend_thread_entry(void* parameter)
|
|||||||
time2Str(fin);
|
time2Str(fin);
|
||||||
strcat(fin,".bin");
|
strcat(fin,".bin");
|
||||||
packInit(&cfg, fin, 0); //写入配置
|
packInit(&cfg, fin, 0); //写入配置
|
||||||
|
#define PACK_SIZE 130
|
||||||
cfg.fcurpiece[0] = 1;
|
cfg.fcurpiece[0] = 1;
|
||||||
cfg.fallpiece[0] = 1;
|
cfg.fallpiece[0] = msg->len/PACK_SIZE+1;
|
||||||
#ifdef CRYPT_BEFRE_PACK
|
#ifdef CRYPT_BEFRE_PACK
|
||||||
//crypt before pack
|
//crypt before pack
|
||||||
|
//更改后3S单帧数据由160升为240,超出TT最大单包数据容量,须分包
|
||||||
|
|
||||||
|
for (size_t var = 0; var < msg->len; var=var+PACK_SIZE) {
|
||||||
|
cfg.fcurpiece[0] = var+1;
|
||||||
|
|
||||||
uint8_t tmp[200];
|
uint8_t tmp[200];
|
||||||
uint8_t len = cryptSingleMsg(msg->data, msg->len, tmp);
|
uint8_t len = cryptSingleMsg(msg->data+var, (msg->len-var)>PACK_SIZE?PACK_SIZE:(msg->len-var), tmp);
|
||||||
if (len>170) {
|
|
||||||
LOG_W("length of msg is too long.[%d->%d]",msg->len,len);
|
|
||||||
}
|
|
||||||
size_t rst = packMsg(&cfg, tmp, len, dout);//packMsgs
|
size_t rst = packMsg(&cfg, tmp, len, dout);//packMsgs
|
||||||
#else
|
#else
|
||||||
size_t rst = packMsg(&cfg, tmpmsg->data, msg->len, dout);//packMsgs
|
size_t rst = packMsg(&cfg, tmpmsg->data, msg->len, dout);//packMsgs
|
||||||
#endif
|
#endif
|
||||||
LOG_HEX("upSend", 27, dout, rst);
|
// LOG_HEX("upSend", 27, dout, rst);
|
||||||
if (rst)
|
if (rst)
|
||||||
{
|
{
|
||||||
if (sendMsg(dout, rst) == RT_EOK)
|
if (sendMsg(dout, rst) == RT_EOK)
|
||||||
@ -220,12 +223,14 @@ void upSend_thread_entry(void* parameter)
|
|||||||
cacheDataToFile(msg->data, msg->len);
|
cacheDataToFile(msg->data, msg->len);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// rt_sem_release(one_msg_send_done);
|
// rt_sem_release(one_msg_send_done);
|
||||||
// list_thread();
|
// list_thread();
|
||||||
return ;
|
return ;
|
||||||
}
|
}
|
||||||
/**
|
/**
|
||||||
* 上傳天通數據
|
* 上傳单帧天通數據
|
||||||
* @param din 待發送數據
|
* @param din 待發送數據
|
||||||
* @param len 待發送數據的長度
|
* @param len 待發送數據的長度
|
||||||
* @return
|
* @return
|
||||||
@ -1682,7 +1687,7 @@ void parseRS232(uint8_t *din, size_t len)
|
|||||||
for (size_t i = 0; i < n; i++)
|
for (size_t i = 0; i < n; i++)
|
||||||
{
|
{
|
||||||
//按帧头分割
|
//按帧头分割
|
||||||
uint8_t ndin[300];
|
uint8_t ndin[MAX_LEN_3S];
|
||||||
int cnt=(i+1<n)?index[i+1]-index[i]:len-index[i];
|
int cnt=(i+1<n)?index[i+1]-index[i]:len-index[i];
|
||||||
memcpy(ndin,din+index[i],cnt);
|
memcpy(ndin,din+index[i],cnt);
|
||||||
if (n>1) LOG_HEX("frame",16,ndin,cnt);
|
if (n>1) LOG_HEX("frame",16,ndin,cnt);
|
||||||
|
@ -70,4 +70,5 @@ typedef struct
|
|||||||
#define UPDATE_INTERVAL 10
|
#define UPDATE_INTERVAL 10
|
||||||
#define RELAY
|
#define RELAY
|
||||||
|
|
||||||
|
#define MAX_LEN_3S 300
|
||||||
#endif /* APPLICATIONS_USRCFG_H_ */
|
#endif /* APPLICATIONS_USRCFG_H_ */
|
||||||
|
Loading…
Reference in New Issue
Block a user