📄 board_type.c
字号:
if (hold_board[2] == 1){ //该盘还未初始化,则进行初始化
init_se0111(2);
board_type[2][1] = 2;
hold_board[2] = 2; //表示该盘已经初始化完毕
start_flg[2] = 0; //
board_flg[2] = 0;
if (!GetResRdyTbl(3))
SetResRdyTbl(3); //置响应事件列表相应位为1
}
else hold_board[2] = 2;
}
else hold_board[2] = 1;
}
if (btemp == 0x57 & start_flg_EOS[2]){
if (hold_board[2] != 0){ //一秒以后盘标志位表示该盘还在原位置
if (hold_board[2] == 1){ //该盘还未初始化,则进行初始化
init_se0121(2);
board_type[2][1] = 3;
hold_board[2] = 2; //表示该盘已经初始化完毕
start_flg_EOS[2] = 0;
board_flg[2] = 0;
if (!GetResRdyTbl(3))
SetResRdyTbl(3); //置响应事件列表相应位为1
}
else hold_board[2] = 2;
}
else hold_board[2] = 1;
}
P1 = 0x40;
btemp = XBYTE[0xA400];
P1 = 0xFF;
if ((btemp != 0x51) & (board_type[3][1] == 2)){ //2M盘3不在则置位该盘初始化标志位为1
start_flg[3] = 1;
if (board_flg[3] == 0){ //2M盘3丢失
for (temp = 0; temp <= 20; temp++){
lparray2m[2][temp] = 0; //将2M盘的环回状态复原为无环回
EB_2M[2][temp] = 0; //将2M盘的性能值清0
REI_2M[2][temp] = 0;
REI_2M_15min[2][temp] = 0;
PJC_2M[2][temp] = 0;
PJC_2M_15min[2][temp] = 0;
NJC_2M[2][temp] = 0;
NJC_2M_15min[2][temp] = 0;
timeslot_2M[2][temp] = 0;
}
hold_board[3] = 0;
board_flg[3] = 1;
if (!GetResRdyTbl(8))
SetResRdyTbl(8); //置响应事件列表相应位为1
}
}
else if((btemp != 0x57) & (board_type[3][1] == 3)){
start_flg_EOS[3] = 1;
if (board_flg[3] == 0){ //EOS盘1丢失
lparray_EOS[2] = 0;
hold_board[3] = 0;
board_flg[3] = 1;
if (!GetResRdyTbl(8))
SetResRdyTbl(8); //置响应事件列表相应位为1
}
}
if (btemp == 0x51 & start_flg[3]){
if (hold_board[3] != 0){ //一秒以后盘标志位表示该盘还在原位置
if (hold_board[3] == 1){ //该盘还未初始化,则进行初始化
init_se0111(3);
board_type[3][1] = 2;
hold_board[3] = 2; //表示该盘已经初始化完毕
start_flg[3] = 0;
board_flg[3] = 0;
if (!GetResRdyTbl(4))
SetResRdyTbl(4); //置响应事件列表相应位为1
}
else hold_board[3] = 2;
}
else hold_board[3] = 1;
}
if (btemp == 0x57 & start_flg_EOS[3]){
if (hold_board[3] != 0){ //一秒以后盘标志位表示该盘还在原位置
if (hold_board[3] == 1){ //该盘还未初始化,则进行初始化
init_se0121(3);
board_type[3][1] = 3;
hold_board[3] = 2; //表示该盘已经初始化完毕
start_flg_EOS[3] = 0;
board_flg[3] = 0;
if (!GetResRdyTbl(4))
SetResRdyTbl(4); //置响应事件列表相应位为1
}
else hold_board[3] = 2;
}
else hold_board[3] = 1;
}
P1 = 0x10;
btemp = XBYTE[0xB000];
P1 = 0xFF;
if (btemp != 0x55){
start_flg[0] = 1;
if (board_flg[0] == 0){ //光分支盘丢失
for (temp = 2; temp <= 3; temp++){
if (lparrayf[temp] == 2){
for(temp1 = 0; temp1 <= 63; temp1++){
PTUN(temp,temp1)=0xFF;
}
}
lparrayf[temp] = 0; //将光分支盘的环回状态复原为无环回
B1[temp] = 0; //将光分支盘的性能值清0
B2[temp] = 0;
B3[temp] = 0;
REI_MS[temp] = 0;
REI_MS_15min[temp] = 0;
REI_HP[temp] = 0;
REI_HP_15min[temp] = 0;
OFS[temp] = 0;
OFS_15min[temp] = 0;
PJC_HP[temp] = 0;
PJC_HP_15min[temp] = 0;
NJC_HP[temp] = 0;
NJC_HP_15min[temp] = 0;
}
hold_board[0] = 0;
if (!GetResRdyTbl(9))
SetResRdyTbl(9); //置响应事件列表相应位为1
}
}
if (btemp == 0x55 & start_flg[0]){
if (hold_board[0] != 0){ //一秒以后盘标志位表示该盘还在原位置
if (hold_board[0] == 1){ //该盘还未初始化,则进行初始化
f2_rc7820();
f2rc7820_wr(F2Encrypt_reg,0xAA);
f2rc7820_wr(F2Intmask_reg,0xFF);
f2_rc7860();
f2rc7860_wr(F2Dxc_cntr,0xA0);
hold_board[0] = 2; //表示该盘已经初始化完毕
start_flg[0] = 0; //
if (!GetResRdyTbl(5))
SetResRdyTbl(5); //置响应事件列表相应位为1
}
else hold_board[0] = 2;
}
else hold_board[0] = 1;
}
board_flg[0] = start_flg[0];
}
void report_initializers(unsigned char slotid, unsigned char boardid){
//上报单盘初始化完成函数
tx_buf[0] = '$';
tx_buf[1] = '2';
tx_buf[2] = '1';
tx_buf[3] = 0x43;
tx_buf[4] = 0x38;
tx_buf[5] = 0x31;
tx_buf[6] = '0';
tx_buf[7] = '0';
tx_buf[8] = '0';
tx_buf[9] = '2';
tx_buf[10] = slotid + 0x30;
tx_buf[11] = boardid +0x30;
tx_buf[12] = '*';
tx_buf_pointer = 0;
while(tx_buf[tx_buf_pointer] != '*'){
SBUF = tx_buf[tx_buf_pointer];
while(tx_done == 0);
tx_done = 0;
tx_buf_pointer++;
}
SBUF = tx_buf[tx_buf_pointer]; //发送最后一个字符'*'
while(tx_done == 0);
tx_done = 0;
}
void report_initializers_2M1(void){
//C81上报MCP完成2M盘1初始化
report_initializers(1,board_type[1][1]);
}
void report_initializers_2M2(void){
//C81上报MCP完成2M盘2初始化
report_initializers(2,board_type[2][1]);
}
void report_initializers_2M3(void){
//C81上报MCP完成2M盘3初始化
report_initializers(3,board_type[3][1]);
}
void report_initializers_OTB(void){
//C81上报MCP完成OTB盘初始化
report_initializers(4,4);
}
void report_loss_board(unsigned char slotid, unsigned char boardid){
//上报单盘丢失函数
tx_buf[0] = '$';
tx_buf[1] = '2';
tx_buf[2] = '1';
tx_buf[3] = 0x46;
tx_buf[4] = 0x30;
tx_buf[5] = 0x32;
tx_buf[6] = '0';
tx_buf[7] = '0';
tx_buf[8] = '0';
tx_buf[9] = '2';
tx_buf[10] = slotid + 0x30;
tx_buf[11] = boardid +0x30;
tx_buf[12] = '*';
tx_buf_pointer = 0;
while(tx_buf[tx_buf_pointer] != '*'){
SBUF = tx_buf[tx_buf_pointer];
while(tx_done == 0);
tx_done = 0;
tx_buf_pointer++;
}
SBUF = tx_buf[tx_buf_pointer]; //发送最后一个字符'*'
while(tx_done == 0);
tx_done = 0;
}
void report_loss_2M1(void){
//F02上报MCP 2M盘1丢失
report_loss_board(1,board_type[1][1]);
}
void report_loss_2M2(void){
//F02上报MCP 2M盘2丢失
report_loss_board(2,board_type[2][1]);
}
void report_loss_2M3(void){
//F02上报MCP 2M盘3丢失
report_loss_board(3,board_type[3][1]);
}
void report_loss_OTB(void){
//F02上报MCP OTB盘丢失
report_loss_board(4,4);
}
void read_soft_version(void){
//V00读取MCU软件版本号
if (!GetResRdyTbl(50))
SetResRdyTbl(50);
}
void report_soft_version(void){
//V00回复命令
tx_buf[0] = '$';
tx_buf[1] = '2';
tx_buf[2] = '1';
tx_buf[3] = 0x56;
tx_buf[4] = 0x30;
tx_buf[5] = 0x30;
tx_buf[6] = '0';
tx_buf[7] = '0';
tx_buf[8] = '0';
tx_buf[9] = '7';
tx_buf[10] = '0';
tx_buf[11] = '0';
tx_buf[12] = '1';
tx_buf[13] = '0';
tx_buf[14] = '1';
tx_buf[15] = '0';
tx_buf[16] = '3';
tx_buf[17] = '*';
tx_buf_pointer = 0;
while(tx_buf[tx_buf_pointer] != '*'){
SBUF = tx_buf[tx_buf_pointer];
while(tx_done == 0);
tx_done = 0;
tx_buf_pointer++;
}
SBUF = tx_buf[tx_buf_pointer]; //发送最后一个字符'*'
while(tx_done == 0);
tx_done = 0;
}
void read_hard_version(void){
//V01读取MCU硬件版本号
if (!GetResRdyTbl(51))
SetResRdyTbl(51);
}
void report_hard_version(void){
//V01回复命令
tx_buf[0] = '$';
tx_buf[1] = '2';
tx_buf[2] = '1';
tx_buf[3] = 0x56;
tx_buf[4] = 0x30;
tx_buf[5] = 0x31;
tx_buf[6] = '0';
tx_buf[7] = '0';
tx_buf[8] = '0';
tx_buf[9] = '7';
tx_buf[10] = '0';
tx_buf[11] = '0';
tx_buf[12] = '1';
tx_buf[13] = '0';
tx_buf[14] = '0';
tx_buf[15] = '0';
tx_buf[16] = '2';
tx_buf[17] = '*';
tx_buf_pointer = 0;
while(tx_buf[tx_buf_pointer] != '*'){
SBUF = tx_buf[tx_buf_pointer];
while(tx_done == 0);
tx_done = 0;
tx_buf_pointer++;
}
SBUF = tx_buf[tx_buf_pointer]; //发送最后一个字符'*'
while(tx_done == 0);
tx_done = 0;
}
unsigned char read_register(struct cmd_para_save *read_reg){
//T00专为读取寄存器值的命令
unsigned char xdata read_board;
unsigned int xdata read_address;
unsigned char xdata *point;
unsigned char xdata porth;
unsigned char xdata portl;
unsigned char xdata return_value;
read_board = read_reg -> test_read_board;
read_address = read_reg -> test_read_address;
point = read_address;
porth = (unsigned char) (read_address >> 8);
portl = (unsigned char) (read_address & 0x00FF);
switch (read_board){
case 5: return_value = *point;
break;
case 4: if (porth >= 0x10){
read_address &= 0x0FFF;
return_value = f2rc7860_rd(read_address);
}
else
return_value = f2rc7820_rd(portl);
break;
case 3:
case 2:
case 1: if (porth < 0x80)
return_value = se0111_reg_rd(porth,portl,read_board);
else if (porth == 0xA4)
{
switch(read_board)
{
case 1: P1 = 0x20;
break;
case 2: P1 = 0x60;
break;
case 3: P1 = 0x40;
break;
default:break;
}
return_value = XBYTE[0xA400];
P1 = 0xFF;
}
else return_value = se0121_reg_rd(portl,read_board);
break;
default:return_value = 2;
break;
}
if (!GetResRdyTbl(40))
SetResRdyTbl(40);
return (return_value);
}
void report_regiester_value(unsigned char value){
unsigned char xdata temp;
tx_buf[0] = '$';
tx_buf[1] = '2';
tx_buf[2] = '1';
tx_buf[3] = 0x54;
tx_buf[4] = 0x30;
tx_buf[5] = 0x30;
tx_buf[6] = '0';
tx_buf[7] = '0';
tx_buf[8] = '0';
tx_buf[9] = '2';
temp = value >> 4;
if (temp > 9)
tx_buf[10] = temp + 0x37;
else tx_buf[10] = temp + 0x30;
temp = value & 0x0F;
if (temp > 9)
tx_buf[11] = temp + 0x37;
else tx_buf[11] = temp + 0x30;
tx_buf[12] = '*';
tx_buf_pointer = 0;
while(tx_buf[tx_buf_pointer] != '*'){
SBUF = tx_buf[tx_buf_pointer];
while(tx_done == 0);
tx_done = 0;
tx_buf_pointer++;
}
SBUF = tx_buf[tx_buf_pointer]; //发送最后一个字符'*'
while(tx_done == 0);
tx_done = 0;
}
unsigned char write_register(struct cmd_para_save *write_reg){
//T01专为写寄存器值的命令
unsigned char xdata write_board;
unsigned int xdata write_address;
unsigned char xdata write_value;
unsigned char xdata *point;
unsigned char xdata porth;
unsigned char xdata portl;
unsigned char xdata return_value;
commandid = 0x00543031;
write_board = write_reg -> test_write_board;
write_address = write_reg -> test_write_address;
write_value = write_reg -> test_write_value;
point = write_address;
porth = (unsigned char) (write_address >> 8);
portl = (unsigned char) (write_address & 0x00FF);
switch (write_board){
case 5: *point = write_value;
return_value = 0;
break;
case 4: if (porth >= 0x10){
write_address &= 0x0FFF;
f2rc7860_wr(write_address,write_value);
return_value = 0;
}
else
f2rc7820_wr(portl,write_value);
return_value = 0;
break;
case 3:
case 2:
case 1: if (porth < 0x80)
se0111_reg_wr(porth,portl,write_value,write_board);
else se0121_reg_wr(portl,write_value,write_board);
return_value = 0;
break;
default:return_value = 2;
break;
}
if (!GetResRdyTbl(1))
SetResRdyTbl(1);
return (return_value);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -