?? analyseframe.c
字號(hào):
frame_ready = FRAME_READY;
break;
case CMD_READ_PHONE_NUMBER:
p_cframe->info_length = 0;
frame_ready = FRAME_READY;
break;
case CMD_SET_LOOP:
p_cframe->info_length = 3;
for (i=0; i<p_cframe->info_length; i++)
{
query_string = string + strspos(string, (char *)port_loop_table[i], MAX_QUERY_STRING_LENGTH);
sscanf(query_string, "%*[^=]=%[^&]", info_buf[i]);
sscanf(info_buf[i], "%hd", &p_cframe->frame_info[i]);
#ifdef DEBUG_MODE
printf("<p>%s is: %s</p>", port_loop_table[i], info_buf[i]);
printf("<p>hex = %x</p>", p_cframe->frame_info[i]);
#endif
}
frame_ready = FRAME_READY;
break;
case CMD_READ_LOOP:
p_cframe->info_length = 2;
for (i=0; i<p_cframe->info_length; i++)
{
query_string = string + strspos(string, (char *)port_loop_table[i], MAX_QUERY_STRING_LENGTH);
sscanf(query_string, "%*[^=]=%[^&]", info_buf[i]);
sscanf(info_buf[i], "%hd", &p_cframe->frame_info[i]);
#ifdef DEBUG_MODE
printf("<p>%s is: %s</p>", port_loop_table[i], info_buf[i]);
printf("<p>hex = %x</p>", p_cframe->frame_info[i]);
#endif
}
frame_ready = FRAME_READY;
break;
case CMD_SET_OPT_SWITCH:
p_cframe->info_length = 1;
for (i=0; i<p_cframe->info_length; i++)
{
query_string = string + strspos(string, (char *)OPT_switch_table[i], MAX_QUERY_STRING_LENGTH);
sscanf(query_string, "%*[^=]=%[^&]", info_buf[i]);
sscanf(info_buf[i], "%hd", &p_cframe->frame_info[i]);
#ifdef DEBUG_MODE
printf("<p>%s is: %s</p>", OPT_switch_table[i], info_buf[i]);
printf("<p>hex = %x</p>", p_cframe->frame_info[i]);
#endif
}
frame_ready = FRAME_READY;
break;
case CMD_READ_OPT_SWITCH:
p_cframe->info_length = 0;
frame_ready = FRAME_READY;
break;
case CMD_SET_OPT_ENABLE:
p_cframe->info_length = 2;
for (i=0; i<p_cframe->info_length; i++)
{
query_string = string + strspos(string, (char *)OPT_enable_table[i], MAX_QUERY_STRING_LENGTH);
sscanf(query_string, "%*[^=]=%[^&]", info_buf[i]);
p_cframe->frame_info[i] = check_frame_info(info_buf[i]);
#ifdef DEBUG_MODE
printf("<p>%s is: %s</p>", OPT_enable_table[i], info_buf[i]);
printf("<p>hex = %x</p>", p_cframe->frame_info[i]);
#endif
}
frame_ready = FRAME_READY;
break;
case CMD_READ_OPT_ENABLE:
p_cframe->info_length = 0;
frame_ready = FRAME_READY;
break;
case CMD_SET_SYSTEM_TIME:
p_cframe->info_length = 6;
for (i=0; i<p_cframe->info_length; i++)
{
query_string = string + strspos(string, (char *)system_time_table[i], MAX_QUERY_STRING_LENGTH);
sscanf(query_string, "%*[^=]=%[^&]", info_buf[i]);
//sscanf(info_buf[i], "%hd", &p_cframe->frame_info[i]);
#ifdef DEBUG_MODE
printf("<p>%s is: %s</p>", system_time_table[i], info_buf[i]);
//printf("<p>hex = %x</p>", p_cframe->frame_info[i]);
#endif
}
for (i=0; i<4; i++)
p_cframe->frame_info[idx++] = info_buf[0][i];
for (i=0; i<2; i++)
p_cframe->frame_info[idx++] = info_buf[1][i];
for (i=0; i<2; i++)
p_cframe->frame_info[idx++] = info_buf[2][i];
for (i=0; i<2; i++)
p_cframe->frame_info[idx++] = info_buf[3][i];
for (i=0; i<2; i++)
p_cframe->frame_info[idx++] = info_buf[4][i];
for (i=0; i<2; i++)
p_cframe->frame_info[idx++] = info_buf[5][i];
p_cframe->info_length = 14;
#ifdef DEBUG_MODE
for (i=0; i<p_cframe->info_length; i++)
printf("<p>hex = %x</p>", p_cframe->frame_info[i]);
#endif
frame_ready = FRAME_READY;
break;
case CMD_READ_MCU_VERSION:
p_cframe->info_length = 0;
frame_ready = FRAME_READY;
break;
case CMD_READ_DEVICE_TYPE:
p_cframe->info_length = 0;
frame_ready = FRAME_READY;
break;
case CMD_READ_ALARM:
p_cframe->info_length = 0;
frame_ready = FRAME_READY;
break;
case CMD_SET_ALARM_MASK:
p_cframe->info_length = 13;
for (i=0; i<3; i++)
{
query_string = string + strspos(string, (char *)alarm_mask_table[i], MAX_QUERY_STRING_LENGTH);
sscanf(query_string, "%*[^=]=%[^&]", info_buf[i]);
sscanf(info_buf[i], "%hd", &temp_buf[i]);
#ifdef DEBUG_MODE
printf("<p>%s is: %s</p>", alarm_mask_table[i], info_buf[i]);
printf("<p>hex = %x</p>", temp_buf[i]);
#endif
}
offset = temp_buf[2] + 1;
for (i=3; i<p_cframe->info_length; i++)
{
if (strspos(string, (char *)alarm_mask_table[i], MAX_QUERY_STRING_LENGTH) == 0xffff)
continue;
query_string = string + strspos(string, (char *)alarm_mask_table[i], MAX_QUERY_STRING_LENGTH);
sscanf(query_string, "%*[^=]=%[^&]", info_buf[i]);
//sscanf(info_buf[i], "%hd", &p_cframe->frame_info[1+tmp_val]);
sscanf(info_buf[i], "%hd", &idx);
p_cframe->frame_info[k+offset] = temp_buf[0]; //盤號(hào)
p_cframe->frame_info[k+1+offset] = temp_buf[1]; //端口號(hào)
p_cframe->frame_info[k+2+offset] = web_alarm_id[idx].alarm_id; //告警序號(hào)
#ifdef DEBUG_MODE
printf("<p>%s is: %s</p>", alarm_mask_table[i], info_buf[i]);
printf("<p>hex = %x</p>", p_cframe->frame_info[k+offset]);
printf("<p>hex = %x</p>", p_cframe->frame_info[k+1+offset]);
printf("<p>hex = %x</p>", p_cframe->frame_info[k+2+offset]);
#endif
tmp_val++;
k += 3;
}
#ifdef DEBUG_MODE
printf("<p>length = %d</p>", tmp_val);
#endif
if (temp_buf[2] == 0) //屏蔽
{
p_cframe->frame_info[0] = tmp_val;
}
else if (temp_buf[2] == 1) //取消屏蔽
{
p_cframe->frame_info[0] = 0;
p_cframe->frame_info[1] = tmp_val;
}
p_cframe->info_length = offset + (tmp_val*3);
frame_ready = FRAME_READY;
break;
case CMD_READ_ALARM_MASK:
p_cframe->info_length = 0;
frame_ready = FRAME_READY;
break;
case CMD_SET_ALARM_LEVEL:
p_cframe->info_length = 11;
for (i=0; i<1; i++)
{
query_string = string + strspos(string, (char *)alarm_level_table[i], MAX_QUERY_STRING_LENGTH);
sscanf(query_string, "%*[^=]=%[^&]", info_buf[i]);
sscanf(info_buf[i], "%hd", &p_cframe->frame_info[i]);
#ifdef DEBUG_MODE
printf("<p>%s is: %s</p>", alarm_level_table[i], info_buf[i]);
printf("<p>hex = %x</p>", p_cframe->frame_info[i]);
#endif
}
for (i=1; i<p_cframe->info_length; i++)
{
if (strspos(string, (char *)alarm_level_table[i], MAX_QUERY_STRING_LENGTH) == 0xffff)
continue;
query_string = string + strspos(string, (char *)alarm_level_table[i], MAX_QUERY_STRING_LENGTH);
sscanf(query_string, "%*[^=]=%[^&]", info_buf[i]);
//sscanf(info_buf[i], "%hd", &p_cframe->frame_info[1+tmp_val]);
sscanf(info_buf[i], "%hd", &idx);
p_cframe->frame_info[1+tmp_val] = web_alarm_id[idx].alarm_id;
#ifdef DEBUG_MODE
printf("<p>%s is: %s</p>", alarm_level_table[i], info_buf[i]);
printf("<p>hex = %x</p>", p_cframe->frame_info[1+tmp_val]);
#endif
tmp_val++;
}
p_cframe->info_length = 1 + tmp_val;
frame_ready = FRAME_READY;
break;
case CMD_READ_EVENT:
p_cframe->info_length = 0;
frame_ready = FRAME_READY;
break;
default:
break;
}
}
void analysis_tty_cmd(unsigned char channel)
{
unsigned char check_sum = 0;
unsigned int idx = 0;
unsigned short int i;
cmd_frame_t *p_cframe = &cmd_frame;
info_frame_t *p_iframe = &info_frame;
memcpy(&p_cframe->dst_addr, &wait_for_dealed_buf[channel][idx], 3);
idx += 3;
memcpy(&p_cframe->src_addr, &wait_for_dealed_buf[channel][idx], 3);
idx += 3;
p_cframe->net_id = wait_for_dealed_buf[channel][idx++];
p_cframe->cmd_index = wait_for_dealed_buf[channel][idx++];
p_cframe->cmd_code_recv = wait_for_dealed_buf[channel][idx++];
//memcpy(&p_cframe->info_length, &rx_buf[9], 2);
p_cframe->info_length = (((unsigned short int)wait_for_dealed_buf[channel][idx]) << 8) | wait_for_dealed_buf[channel][idx+1]; //接收幀長
idx += 2;
memcpy(p_cframe->frame_info, &wait_for_dealed_buf[channel][idx], p_cframe->info_length);
idx += p_cframe->info_length;
p_cframe->check_sum = wait_for_dealed_buf[channel][idx++];
for (idx=6; idx<11+p_cframe->info_length; idx++) //計(jì)算校驗(yàn)字節(jié)
check_sum ^= wait_for_dealed_buf[channel][idx];
if (check_sum != p_cframe->check_sum)
{
//reply_normal_frame(Respond_Buf, 1, CMD_UNKNOW);
//printf("<p>check sum error!\n");
printf("<p>幀校驗(yàn)錯(cuò)誤!\n");
return;
}
#ifdef DEBUG_MODE
printf("<p>receive frame ok!\n");
printf("<p>cmd_code_recv is: %x\n", p_cframe->cmd_code_recv);
#endif
if ((p_cframe->cmd_code_recv - p_cframe->cmd_code_send) != CMD_ACK_OFFSET)
{
//printf("<p>receive cmd error!");
printf("<p>應(yīng)答命令錯(cuò)誤!");
return;
}
idx = 11;
switch (p_cframe->cmd_code_recv)
{
case CMD_ACK_SET_DXC_TIMESLOT:
p_iframe->success_flag = wait_for_dealed_buf[channel][idx++];
/*
if (p_iframe->success_flag == 0)
printf("config sucess!\n");
else
printf("config failure!\n");
*/
display_web_set_result();
break;
case CMD_ACK_READ_DXC_TIMESLOT:
p_iframe->success_flag = wait_for_dealed_buf[channel][idx++];
p_iframe->src_board = wait_for_dealed_buf[channel][idx++];
p_iframe->src_port = wait_for_dealed_buf[channel][idx++];
p_iframe->src_timeslot = wait_for_dealed_buf[channel][idx++];
display_web_read_result();
break;
case CMD_ACK_SET_V35_WORKMODE:
p_iframe->success_flag = wait_for_dealed_buf[channel][idx++];
display_web_set_result();
break;
case CMD_ACK_READ_V35_WORKMODE:
p_iframe->success_flag = wait_for_dealed_buf[channel][idx++];
p_iframe->work_mode = wait_for_dealed_buf[channel][idx++];
display_web_read_result();
break;
/*
case CMD_ACK_SET_V35_FRAMETYPE:
p_iframe->success_flag = wait_for_dealed_buf[channel][idx++];
display_web_set_result();
break;
case CMD_ACK_READ_V35_FRAMETYPE:
p_iframe->success_flag = wait_for_dealed_buf[channel][idx++];
break;
*/
case CMD_ACK_SET_V35_TIMESLOT:
p_iframe->success_flag = wait_for_dealed_buf[channel][idx++];
display_web_set_result();
break;
case CMD_ACK_READ_V35_TIMESLOT:
p_iframe->success_flag = wait_for_dealed_buf[channel][idx++];
p_iframe->down_timeslot = wait_for_dealed_buf[channel][idx++];
display_web_read_result();
break;
case CMD_ACK_READ_V35_ATTRIBUTE:
p_iframe->success_flag = wait_for_dealed_buf[channel][idx++];
for (i=0; i<4; i++)
{
p_iframe->board_main_clk[i] = wait_for_dealed_buf[channel][idx++];
p_iframe->board_work_mode[i] = wait_for_dealed_buf[channel][idx++];
p_iframe->board_work_rxp[i] = wait_for_dealed_buf[channel][idx++];
p_iframe->board_work_txp[i] = wait_for_dealed_buf[channel][idx++];
p_iframe->board_work_clk[i] = wait_for_dealed_buf[channel][idx++];
p_iframe->board_down_timeslot[i] = wait_for_dealed_buf[channel][idx++];
}
display_web_read_result();
break;
case CMD_ACK_SET_CLOCK_PRIO:
p_iframe->success_flag = wait_for_dealed_buf[channel][idx++];
display_web_set_result();
break;
case CMD_ACK_READ_CLOCK_PRIO:
p_iframe->success_flag = wait_for_dealed_buf[channel][idx++];
for (i=0; i<10; i++)
p_iframe->clock_prio[i] = wait_for_dealed_buf[channel][idx++];
display_web_read_result();
break;
case CMD_ACK_READ_WORK_CLOCK:
p_iframe->success_flag = wait_for_dealed_buf[channel][idx++];
p_iframe->work_clk = wait_for_dealed_buf[channel][idx++];
p_iframe->work_clk_state = wait_for_dealed_buf[channel][idx++];
display_web_read_result();
break;
p_iframe->success_flag = wait_for_dealed_buf[channel][idx++];
for (i=0; i<10; i++)
p_iframe->clock_prio[i] = wait_for_dealed_buf[channel][idx++];
p_iframe->work_clk = wait_for_dealed_buf[channel][idx++];
p_iframe->work_clk_state = wait_for_dealed_buf[channel][idx++];
display_web_read_result();
break;
case CMD_ACK_SET_FE_UP_BAND:
p_iframe->success_flag = wait_for_dealed_buf[channel][idx++];
display_web_set_result();
break;
case CMD_ACK_READ_FE_UP_BAND:
p_iframe->success_flag = wait_for_dealed_buf[channel][idx++];
p_iframe->up_band = wait_for_dealed_buf[channel][idx++];
display_web_read_result();
break;
case CMD_ACK_SET_FE_PORT_BAND:
p_iframe->success_flag = wait_for_dealed_buf[channel][idx++];
display_web_set_result();
break;
case CMD_ACK_READ_FE_PORT_BAND:
p_iframe->success_flag = wait_for_dealed_buf[channel][idx++];
p_iframe->port_band = wait_for_dealed_buf[channel][idx++];
display_web_read_result();
break;
case CMD_ACK_SET_VLAN_MODE:
p_iframe->success_flag = wait_for_dealed_buf[channel][idx++];
display_web_set_result();
break;
case CMD_ACK_READ_VLAN_MODE:
p_iframe->success_flag = wait_for_dealed_buf[channel][idx++];
p_iframe->vlan_mode = wait_for_dealed_buf[channel][idx++];
display_web_read_result();
break;
case CMD_ACK_SET_VLAN_GROUP:
p_iframe->success_flag = wait_for_dealed_buf[channel][idx++];
display_web_set_result();
break;
case CMD_ACK_READ_VLAN_GROUP:
p_iframe->success_flag = wait_for_dealed_buf[channel][idx++];
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -