移植与电子模块通信相关代码
This commit is contained in:
@@ -1,20 +1,16 @@
|
||||
#include "tran_for_coder2.h"
|
||||
#include "tran_for_coder2ch.h"
|
||||
#include "debug.h"
|
||||
#include "mymisc.h"
|
||||
#include "mystdlib.h"
|
||||
#include "board.h"
|
||||
#include "dev_flash.h"
|
||||
#include "tcp.h"
|
||||
#include "prot_uc.h"
|
||||
#include "handle_for_coder.h"
|
||||
#include "handle_for_checker.h"
|
||||
#include "coder_lib.h"
|
||||
#include "JQ_PSDGenerate.h"
|
||||
#include "mystring.h"
|
||||
#include "coder_judge.h"
|
||||
#include "JQ_UIDGenerate.h"
|
||||
|
||||
#include "transmit.h"
|
||||
|
||||
|
||||
|
||||
@@ -154,10 +150,10 @@ static uint32_t in_range_err(const uint8_t *src_data,const uint8_t *errbit)
|
||||
|
||||
|
||||
// 注码完成
|
||||
static void write_uid_end(ucport_def *u,port_mcu *src,void *data,int ack,char *err_str)
|
||||
static void write_uid_end(ucport_def *u,void *src,void *data,int ack,char *err_str)
|
||||
{
|
||||
write_uid_def *w=(write_uid_def *)u;
|
||||
uint8_t addr=port_get_addr(src);
|
||||
uint8_t addr=0;
|
||||
if(addr<=0||addr>w->addrs_num){
|
||||
DBG_WARN("addr err:%d",addr);
|
||||
return;
|
||||
@@ -263,17 +259,14 @@ static ucport_def *write_uid(tran_def *t, uint8_t cmd,array_def *data)
|
||||
u->ack[i*38+0]=i+slave_addr_off();
|
||||
u->ack[i*38+1]=1;
|
||||
if(1){
|
||||
port_mcu *mcu=tran_get_portm(u->u.p,i);
|
||||
// 这里打开赋码操作
|
||||
if(mcu){
|
||||
if(check_shell_code(u->item[i].shell_code)){
|
||||
port_start(mcu,code2_creat(8,4,u->item[i].uid_pw_hex));
|
||||
}else{
|
||||
// 管壳码无效,不注码,此时默认已ack
|
||||
// 管壳码无效不视为失败
|
||||
ret=0;
|
||||
write_uid_fillret(u,i+1,0xff);
|
||||
}
|
||||
if(check_shell_code(u->item[i].shell_code)){
|
||||
// 开始注码
|
||||
//port_start(mcu,code2_creat(8,4,u->item[i].uid_pw_hex));
|
||||
}else{
|
||||
// 管壳码无效,不注码,此时默认已ack
|
||||
// 管壳码无效不视为失败
|
||||
ret=0;
|
||||
write_uid_fillret(u,i+1,0xff);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -316,89 +309,6 @@ transmit_export(ym_checker,0x02,write_uid)
|
||||
|
||||
|
||||
|
||||
typedef struct{
|
||||
rt_timer_t timer;
|
||||
void *protu;
|
||||
}live_keeper_def;
|
||||
|
||||
|
||||
static void live_start(live_keeper_def *t)
|
||||
{
|
||||
rt_tick_t tick=0;
|
||||
tick=rt_tick_from_millisecond(1000);
|
||||
rt_timer_control(t->timer,RT_TIMER_CTRL_SET_TIME,&tick);
|
||||
rt_timer_start(t->timer);
|
||||
}
|
||||
static void live_recv(live_keeper_def *t)
|
||||
{
|
||||
rt_tick_t tick=0;
|
||||
tick=rt_tick_from_millisecond(5000);
|
||||
rt_timer_control(t->timer,RT_TIMER_CTRL_SET_TIME,&tick);
|
||||
rt_timer_start(t->timer);
|
||||
//rt_timer_stop(t->timer);
|
||||
}
|
||||
|
||||
|
||||
// cmd=0x8a
|
||||
static void live_send(void *p)
|
||||
{
|
||||
live_keeper_def *live=p;
|
||||
const sys_param_def *par=sys_param();
|
||||
tran_def *t=app_variable("tran",0,0);
|
||||
uint16_t slave_online=0;
|
||||
if(t){
|
||||
slave_online=tran_get_slave_online(t);
|
||||
}
|
||||
//protu_codec_set(live->protu,protu_find_codec("ym_checker"));
|
||||
|
||||
array_def *d=arr_creat();
|
||||
arr_append(d,coder_extract_chip(0));// 模块类型
|
||||
arr_append(d,0xff);
|
||||
arr_append(d,0x03);
|
||||
arr_append(d,par->local_id&0xff);
|
||||
arr_append(d,slave_online&0xff);// 在线的小板
|
||||
arr_append(d,(slave_online>>8)&0xff);
|
||||
emit coder2_live_send_signal(p,0x8a,arr_temp(d));
|
||||
//DBG_LOG("send liver data.");
|
||||
|
||||
}
|
||||
|
||||
|
||||
static void init_for_coder2ch(void *t)
|
||||
{
|
||||
void *protu=app_variable("protu",0,0);
|
||||
if(protu){
|
||||
live_keeper_def *live=calloc(1,sizeof(live_keeper_def));
|
||||
live->protu=protu;
|
||||
live->timer=rt_timer_create("live_t",live_send,live,
|
||||
rt_tick_from_millisecond(1000),
|
||||
RT_TIMER_FLAG_PERIODIC|RT_TIMER_FLAG_SOFT_TIMER);
|
||||
protu_codec_set(protu,protu_find_codec("ym_checker"));
|
||||
connect(protu,protu_recv_signal,0,live,live_recv);
|
||||
connect(live,coder2_live_send_signal,0,protu,protu_send_call);
|
||||
DBG_LOG("coder2ch liver created");
|
||||
live_start(live);
|
||||
}else{
|
||||
DBG_WARN("can not fond variable \"protu\"");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
// 如果本机为赋码仪并且连接类型为tcp
|
||||
// 初始化心跳
|
||||
static int init_live_keeper(void)
|
||||
{
|
||||
const sys_param_def *par=sys_param();
|
||||
app_valid_call("protu",init_for_coder2ch,0);
|
||||
return 0;
|
||||
}
|
||||
app_init_export(init_live_keeper);
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
Reference in New Issue
Block a user