📄 trans_process.c
字号:
case 6:
gprs_info->messagetype = 0xDD;
break;
}
get_driver_id(gprs_info->driverid);
gprs_info->mess_head.mess_length = 41;
swap_uint((Uchar *)(&gprs_info->mess_head.mess_type));
swap_uint((Uchar *)(&gprs_info->mess_head.mess_length));
sbuf.valid[2] = 1;
}
}
/*文本消息打包*/
void make_text_message(Uchar *ptr, Uchar len_date)
{
BUS_TEXT *gprs_info;
GPS_DATA *pgps;
gprs_info = (BUS_TEXT *) sbuf.buf[2];
serial_number++;
memcpy(gprs_info->mess_head.mess_sync, "NJPT", 4);
gprs_info->mess_head.mess_version = 2;
gprs_info->mess_head.mess_reserve = 0;
gprs_info->mess_head.mess_type = (Word)(TEXTMESSAGE);
gprs_info->messageid = serial_number;
get_gps_data(&pgps);
memcpy(gprs_info->date, pgps->date, 3);
memcpy(gprs_info->time, pgps->time, 3);
get_line_id(&(gprs_info->line_id));
get_device_id(&(gprs_info->terminal_id));
get_bus_id(&(gprs_info->bus_id));
gprs_info->mess_head.mess_length = len_date;
memcpy(gprs_info->mess_date, ptr, len_date);
swap_uint((Uchar *)(&gprs_info->mess_head.mess_type));
swap_uint((Uchar *)(&gprs_info->mess_head.mess_length));
sbuf.valid[2] = 1;
}
/******报警消息打包******/
/*alarmType:报警类型
*alarmValue:报警的值,1有报警;0无报警
**************************/
void make_alarm_message(unsigned char alarmType, unsigned char alarmValue)
{
Uchar run_array[3];
Uchar *parray;
GPS_DATA *pgps;
BUS_ALARM *gprs_info;
parray = run_array;
gprs_info = (BUS_ALARM *) sbuf.buf[2];
serial_number++;
memcpy(gprs_info->mess_head.mess_sync, "NJPT", 4);
gprs_info->mess_head.mess_version = 4;
gprs_info->mess_head.mess_reserve = 0;
gprs_info->mess_head.mess_type = (Word)(ALARMMESSAGE);
gprs_info->messageid = serial_number;
get_term_data(gprs_info->date);
get_term_time(gprs_info->time);
get_line_id(gprs_info->line_id);
get_device_id(gprs_info->terminal_id);
get_bus_id(gprs_info->bus_id);
get_cur_runmode(parray);
if (run_array[0] != 0 )
{
get_cur_mode(parray + 1);
if(run_array[1] >= 1 & run_array[1] <= 8)
{
get_cur_direction(parray + 2);
if(run_array[2] == 0)
{
run_array[2] = 1;
}
else
{
run_array[2] = 2;
}
gprs_info->runmode = ((run_array[2] << 6) | (run_array[1]));
}
else
{
gprs_info->runmode = run_array[1];
}
}
else
{
gprs_info->runmode = 0;
}
get_gps_data(&pgps);
gprs_info->gps_flag = (pgps->state << 6) & (pgps->numbers);
gprs_info->longitude = pgps->longitude;
gprs_info->latitude = pgps->latitude;
gprs_info->speed = pgps->speed;
gprs_info->direction = pgps->direction;
gprs_info->changeStatus = alarmType;
if (alarmValue)
gprs_info->alarmStatus = alarmType;
else
gprs_info->alarmStatus = 0;
gprs_info->mess_head.mess_length = 40;
swap_uint((Uchar *)(&gprs_info->mess_head.mess_type));
swap_uint((Uchar *)(&gprs_info->mess_head.mess_length));
sbuf.valid[2] = 1;
}
extern char testBuf[550];
/*******相片数据组包***************/
/***
nCur:值从1开始
***/
void make_photo_message(Uint16 nTotal, Uint16 nCur, Byte* pnSeq, Byte* pSrcBuf, Uint16 nBufLen)
{
REMOTE_PHOTOMSG* gprs_info;
gprs_info = (REMOTE_PHOTOMSG *) sbufPhoto.buf;
memcpy(gprs_info->mess_head.mess_sync, "NJPT", 4);
gprs_info->mess_head.mess_version = 2;
gprs_info->mess_head.mess_reserve = 0;
gprs_info->mess_head.mess_type = REMOTE_PHOTO_MESSAGE;
memcpy(gprs_info->messageid, pnSeq, 4);
gprs_info->packNum = nTotal;
gprs_info->curNum = nCur;
get_bus_id(gprs_info->bus_id);
memcpy(gprs_info->memo, pSrcBuf, nBufLen);
gprs_info->mess_head.mess_length = 15+nBufLen;
swap_uint((Uchar *)(&gprs_info->mess_head.mess_type));
swap_uint((Uchar *)(&gprs_info->mess_head.mess_length));
swap_uint((Uchar *)(&gprs_info->packNum));
swap_uint((Uchar *)(&gprs_info->curNum));
sbufPhoto.valid = 1;
}
/************************************/
/*终端远程更新程序应答的组包函数*/
void make_response_update(Byte* pSrc)
{
RES_REMOTE_UPDATE* gprs_info;
gprs_info = (RES_REMOTE_UPDATE *) sbuf.buf[REMOTE_BUFFER_ID];
memcpy(gprs_info->mess_head.mess_sync, "NJPT", 4);
gprs_info->mess_head.mess_version = 2;
gprs_info->mess_head.mess_reserve = 0;
gprs_info->mess_head.mess_type = (Word)(RES_UPDATE_PROGRAM);
memcpy(gprs_info->messageid, pSrc+4, 4);
gprs_info->type = pSrc[8];
get_bus_id(gprs_info->bus_id);
memcpy(&(gprs_info->content), pSrc+9, 6);
gprs_info->mess_head.mess_length = sizeof(RES_REMOTE_UPDATE)-sizeof(struct _mess_head_info);
swap_uint((Uchar *)(&gprs_info->mess_head.mess_type));
swap_uint((Uchar *)(&gprs_info->mess_head.mess_length));
sbuf.valid[REMOTE_BUFFER_ID] = 1;
}
/*调度消息应答*/
void res_direct_message(Uchar mess_num[4])
{
Uchar *pnum;
RES_DIREC *gprs_info;
pnum = mess_num;
gprs_info = (RES_DIREC *) sbuf.buf[1];
memcpy(gprs_info->mess_head.mess_sync, "NJPT", 4);
gprs_info->mess_head.mess_version = 2;
gprs_info->mess_head.mess_reserve = 0;
gprs_info->mess_head.mess_type = (Word)(RES_DIRECT);
get_bus_id(gprs_info->bus_id);
get_line_id(gprs_info->line_id);
memcpy(gprs_info->res_messageid, mess_num, 4);
gprs_info->mess_head.mess_length = 15;
swap_uint((Uchar *)(&gprs_info->mess_head.mess_type));
swap_uint((Uchar *)(&gprs_info->mess_head.mess_length));
sbuf.valid[1] = 1;
}
/*终端参数配置应答*/
void res_seeconfiguer_message(Uchar mess_num[4])
{
Uchar *pnum;
RES_CONFIGUR *gprs_info;
pnum = mess_num;
gprs_info = (RES_CONFIGUR *) sbuf.buf[1];
memcpy(gprs_info->mess_head.mess_sync, "NJPT", 4);
gprs_info->mess_head.mess_version = 2;
gprs_info->mess_head.mess_reserve = 0;
gprs_info->mess_head.mess_type = (Word)(RES_CONFIGURE);
memcpy(&(gprs_info->res_messageid), pnum, 4);
get_device_id(gprs_info->terminal_id);
get_bus_id(gprs_info->bus_id);
gprs_info->res_value = 0;
gprs_info->mess_head.mess_length = 15;
swap_uint((Uchar *)(&gprs_info->mess_head.mess_type));
swap_uint((Uchar *)(&gprs_info->mess_head.mess_length));
sbuf.valid[1] = 1;
}
/*查询位置信息应答应答*/
void res_seeposition_message(Uchar mess_num[4])
{
Uchar *pnum;
Uchar run_array[3];
Uchar *parray;
GPS_DATA *pgps;
RES_SEEPOSITIO *gprs_info;
parray = run_array;
pnum = mess_num;
gprs_info = (RES_SEEPOSITIO *) sbuf.buf[1];
memcpy(gprs_info->mess_head.mess_sync, "NJPT", 4);
gprs_info->mess_head.mess_version = 2;
gprs_info->mess_head.mess_reserve = 0;
gprs_info->mess_head.mess_type = (Word)(RES_SEEPOSITION);
memcpy(&(gprs_info->res_messageid), pnum, 4);
get_device_id(gprs_info->terminal_id);
get_bus_id(gprs_info->bus_id);
get_cur_runmode(parray);
if (run_array[0] != 0 )
{
get_cur_mode(parray + 1);
if(run_array[1] >= 1 & run_array[1] <= 8)
{
get_cur_direction(parray + 2);
if(run_array[2] == 0)
{
run_array[2] = 1;
}
else
{
run_array[2] = 2;
}
gprs_info->runmode = (run_array[2] << 6) & (run_array[1]);
}
else
{
gprs_info->runmode = run_array[1];
}
}
else
{
gprs_info->runmode = 0;
}
gprs_info->res_value = 0;
get_cur_direction(&(gprs_info->runmode));
get_gps_data(&pgps);
memcpy(gprs_info->date, pgps->date, 3);
memcpy(gprs_info->time, pgps->time, 3);
memcpy(&(gprs_info->longitude), &(pgps->longitude), 4);
memcpy(&(gprs_info->latitude), &(pgps->latitude), 4);
gprs_info->speed = pgps->speed;
gprs_info->direction = pgps->direction;
get_device_id(&(gprs_info->terminal_id));
get_bus_id(&(gprs_info->bus_id));
gprs_info->mess_head.mess_length = 15;
swap_uint((Uchar *)(&gprs_info->mess_head.mess_type));
swap_uint((Uchar *)(&gprs_info->mess_head.mess_length));
sbuf.valid[1] = 1;
}
/*查询终端信息应答应答*/
void res_seeterminal_message(Uchar mess_num[4])
{
Uchar *pnum;
RES_SEETERMINA *gprs_info;
pnum = mess_num;
gprs_info = (RES_SEETERMINA *) sbuf.buf[1];
memcpy(gprs_info->mess_head.mess_sync, "NJPT", 4);
gprs_info->mess_head.mess_version = 2;
gprs_info->mess_head.mess_reserve = 0;
gprs_info->mess_head.mess_type = (Word)(RES_SEETERMINAL);
memcpy(&(gprs_info->res_messageid), pnum, 4);
get_device_id(gprs_info->terminal_id);
get_bus_id(gprs_info->bus_id);
gprs_info->res_value = 0;
get_software_version(&(gprs_info->soft_edition));
gprs_info->mess_head.mess_length = 16;
swap_uint((Uchar *)(&gprs_info->mess_head.mess_type));
swap_uint((Uchar *)(&gprs_info->mess_head.mess_length));
sbuf.valid[1] = 1;
}
/*远程下载更新应答*/
void res_update_message(Uchar mess_num[4], Uchar rcv_block[2], Uchar type, Uchar up_value )
{
Uchar *pnum;
RES_UPDAT *gprs_info;
pnum = mess_num;
gprs_info = (RES_UPDAT *) sbuf.buf[1];
memcpy(gprs_info->mess_head.mess_sync, "NJPT", 4);
gprs_info->mess_head.mess_version = 2;
gprs_info->mess_head.mess_reserve = 0;
gprs_info->mess_head.mess_type = (Word)(RES_UPDATE);
memcpy(&(gprs_info->res_messageid), pnum, 4);
get_device_id(gprs_info->terminal_id);
get_bus_id(gprs_info->bus_id);
gprs_info->res_value = up_value;
memcpy(&(gprs_info->block), rcv_block, 2);/*返回的block*/
gprs_info->update_type = type;
gprs_info->mess_head.mess_length = 18;
swap_uint((Uchar *)(&gprs_info->mess_head.mess_type));
swap_uint((Uchar *)(&gprs_info->mess_head.mess_length));
sbuf.valid[1] = 1;
}
/*查询终端参数配置应答*/
void res_seeconfugure_message(Uchar mess_num[4])
{
Uchar *pnum;
RES_SEECONFIGUR *gprs_info;
pnum = mess_num;
gprs_info = (RES_SEECONFIGUR *) sbuf.buf[1];
memcpy(gprs_info->mess_head.mess_sync, "NJPT", 4);
gprs_info->mess_head.mess_version = 2;
gprs_info->mess_head.mess_reserve = 0;
gprs_info->mess_head.mess_type = (Word)(RES_SEECONFIGURE);
memcpy(&(gprs_info->res_messageid), pnum, 4);
get_device_id(gprs_info->terminal_id);
get_bus_id(gprs_info->bus_id);
gprs_info->res_value = 0;
get_online_time(&(gprs_info->heartbeat_interval));/*心跳间隔*/
get_auto_time(&(gprs_info->potision_interval));/*gps间隔*/
get_arrive_meter(&(gprs_info->in_distance));/*到站距离*/
get_left_meter(&(gprs_info->out_distance));/*出站距离*/
gprs_info->mess_head.mess_length = 20;
swap_uint((Uchar *)(&(gprs_info->potision_interval)));
swap_uint((Uchar *)(&gprs_info->mess_head.mess_type));
swap_uint((Uchar *)(&gprs_info->mess_head.mess_length));
sbuf.valid[1] = 1;
}
/**照片拍摄应答**/
void res_photo_message(Uchar* messID)
{
RES_PHOTOMESSAGE_STR *gprs_info;
gprs_info = (RES_PHOTOMESSAGE_STR *) sbuf.buf[1];
memcpy(gprs_info->mess_head.mess_sync, "NJPT", 4);
gprs_info->mess_head.mess_version = 2;
gprs_info->mess_head.mess_reserve = 0;
gprs_info->mess_head.mess_type = (Word)(RES_PHOTOMESSAGE);
memcpy(gprs_info->messID, messID, 4);
get_bus_id(gprs_info->bus_id);
gprs_info->mess_head.mess_length = 11;
swap_uint((Uchar *)(&gprs_info->mess_head.mess_type));
swap_uint((Uchar *)(&gprs_info->mess_head.mess_length));
sbuf.valid[1] = 1;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -