📄 overhead.c
字号:
break;
case 15: outporth=0x06;
outportl=0x2B;
break;
case 16: outporth=0x06;
outportl=0x4B;
break;
case 17: outporth=0x06;
outportl=0x6B;
break;
case 18: outporth=0x06;
outportl=0x8B;
break;
case 19: outporth=0x06;
outportl=0xAB;
break;
case 20: outporth=0x06;
outportl=0xCB;
break;
case 21: outporth=0x06;
outportl=0xEB;
break;
default: break;
}
switch (boardid){
case 1: if (start_flg[1] == 0){
overhead_value = se0111_reg_rd(outporth,outportl,1); //2M盘1得到V5中的bit7-5
temp_value = se0111_reg_rd(outporth,outportl-4,1);
temp_value = (temp_value << 1) & 0x08; //得到V5中的bit4 RFI
overhead_value = (overhead_value <<4) | temp_value;
return_value = 0;
}
else return_value = 2;
break;
case 2: if (start_flg[2] == 0){
overhead_value = se0111_reg_rd(outporth,outportl,2); //2M盘2得到V5中的bit7-5
temp_value = se0111_reg_rd(outporth,outportl-4,2);
temp_value = (temp_value << 1) & 0x08; //得到V5中的bit4 RFI
overhead_value = (overhead_value <<4) | temp_value;
return_value = 0;
}
else return_value = 2;
break;
case 3: if (start_flg[3] == 0){
overhead_value = se0111_reg_rd(outporth,outportl,3); //2M盘3得到V5中的bit7-5
temp_value = se0111_reg_rd(outporth,outportl-4,3);
temp_value = (temp_value << 1) & 0x08; //得到V5中的bit4 RFI
overhead_value = (overhead_value <<4) | temp_value;
return_value = 0;
}
else return_value = 2;
break;
default: return_value = 2;
break;
}
break;
default: return_value = 2;
break;
}
}
else return_value = 2;
if (!GetResRdyTbl(12))
SetResRdyTbl(12);
return (return_value);
}
void report_overhead_value(unsigned char value,unsigned char overhead_value){
//C20取开销字节回应函数
unsigned char xdata temp_value;
tx_buf[0] = '$';
tx_buf[1] = '2';
tx_buf[2] = '1';
tx_buf[3] = 0x43;
tx_buf[4] = 0x32;
tx_buf[5] = 0x30;
tx_buf[6] = '0';
tx_buf[7] = '0';
tx_buf[8] = '0';
tx_buf[9] = '3';
tx_buf[10] = value+0x30;
temp_value = (overhead_value >> 4) & 0x0F;
if (temp_value > 9){
temp_value = temp_value + 0x37;
}
else temp_value = temp_value + 0x30;
tx_buf[11] = temp_value;
temp_value = overhead_value & 0x0F;
if (temp_value > 9){
temp_value = temp_value + 0x37;
}
else temp_value = temp_value + 0x30;
tx_buf[12] = temp_value;
tx_buf[13] = '*';
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 set_overhead_value(struct cmd_para_save *set_overhead){
//C21配置开销字节值
unsigned char xdata boardid;
unsigned char xdata portid;
unsigned char xdata timeid;
unsigned char xdata outporth;
unsigned char xdata outportl;
unsigned int xdata overhead_name;
unsigned char xdata set_value;
unsigned char xdata return_value;
unsigned char xdata temp_value;
unsigned char xdata temp;
commandid = 0x00433231;
boardid = set_overhead -> ohset_board;
portid = set_overhead -> ohset_port;
timeid = set_overhead -> ohset_slot;
overhead_name = set_overhead -> ohset_name;
set_value = set_overhead -> ohset_value;
if (portid < 22){
switch (overhead_name){
case 0x4A30:if (boardid == 4 & start_flg[0] == 0){ //J0字节光分支盘OTB
if (portid == 1){ //光分支7860A口
f2rc7860_wr(F2SohJ0_tx_a,set_value);
f2rc7860_wr(F2SohJ0rx_cntr_a,set_value);
return_value = 0;
}
else if (portid == 2){ //光分支7860B口
f2rc7860_wr(F2SohJ0_tx_b,set_value);
f2rc7860_wr(F2SohJ0rx_cntr_b,set_value);
return_value = 0;
}
else return_value = 2;
}
else if (boardid == 5){ //主光盘MCB
if (portid == 1){
SohJ0_tx_a = set_value;
SohJ0rx_cntr_a = set_value;
return_value = 0;
}
else if (portid == 2){
SohJ0_tx_b = set_value;
SohJ0rx_cntr_b = set_value;
return_value = 0;
}
else return_value = 2;
}
else return_value = 2;
break;
case 0x4B31: if (boardid == 4 & start_flg[0] == 0){ //K1字节光分支盘OTB
if (portid == 1){ //光分支7860A口
f2rc7860_wr(F2SohK1_tx_a,set_value);
return_value = 0;
}
else if (portid == 2){ //光分支7860B口
f2rc7860_wr(F2SohK1_tx_b,set_value);
return_value = 0;
}
else return_value = 2;
}
else if (boardid == 5){ //主光盘MCB
if (portid == 1){
SohK1_tx_a = set_value;
return_value = 0;
}
else if (portid == 2){
SohK1_tx_b = set_value;
return_value = 0;
}
else return_value = 2;
}
else return_value = 2;
break;
case 0x4B32: if (boardid == 4 & start_flg[0] == 0){ //K2字节光分支盘OTB
if (portid == 1){ //光分支7860A口
f2rc7860_wr(F2SohK2_tx_a,set_value);
return_value = 0;
}
else if (portid == 2){ //光分支7860B口
f2rc7860_wr(F2SohK2_tx_b,set_value);
return_value = 0;
}
else return_value = 2;
}
else if (boardid == 5){ //主光盘MCB
if (portid == 1){
SohK2_tx_a = set_value;
return_value = 0;
}
else if (portid == 2){
SohK2_tx_b = set_value;
return_value = 0;
}
else return_value = 2;
}
else return_value = 2;
break;
case 0x5331: if (boardid == 4 & start_flg[0] == 0){ //S1字节光分支盘OTB
if (portid == 1){ //光分支7860A口
temp = f2rc7860_rd(F2SohK1K2S1_txs_a);
temp |= 0x10;
f2rc7860_wr(F2SohK1K2S1_txs_a,temp);
f2rc7860_wr(F2SohS1_tx_a,set_value);
return_value = 0;
}
else if (portid == 2){ //光分支7860B口
temp = f2rc7860_rd(F2SohK1K2S1_txs_b);
temp |= 0x10;
f2rc7860_wr(F2SohK1K2S1_txs_b,temp);
f2rc7860_wr(F2SohS1_tx_b,set_value);
return_value = 0;
}
else return_value = 2;
}
else if (boardid == 5){ //主光盘MCB
if (portid == 1){
temp = SohK1K2S1_txs_a;
temp |= 0x10;
SohK1K2S1_txs_a = temp;
SohS1_tx_a = set_value;
return_value = 0;
}
else if (portid == 2){
temp = SohK1K2S1_txs_b;
temp |= 0x10;
SohK1K2S1_txs_b = temp;
SohS1_tx_b = set_value;
return_value = 0;
}
else return_value = 2;
}
else return_value = 2;
break;
case 0x4332: if (boardid == 4 & start_flg[0] == 0){ //C2字节光分支盘OTB
if (portid == 1){ //光分支7860A口
f2rc7860_wr(F2PohC2_tx_a,set_value);
f2rc7860_wr(F2PohC2rx_cntr_a,set_value);
return_value = 0;
}
else if (portid == 2){ //光分支7860B口
f2rc7860_wr(F2PohC2_tx_b,set_value);
f2rc7860_wr(F2PohC2rx_cntr_b,set_value);
return_value = 0;
}
else return_value = 2;
}
else if (boardid == 5){ //主光盘MCB
if (portid == 1){
PohC2_tx_a = set_value;
PohC2rx_cntr_a = set_value;
return_value = 0;
}
else if (portid == 2){
PohC2_tx_b = set_value;
PohC2rx_cntr_b = set_value;
return_value = 0;
}
else return_value = 2;
}
else return_value = 2;
break;
case 0x4731: if (boardid == 4 & start_flg[0] == 0){ //G1字节光分支盘OTB
if (portid == 1){ //光分支7860A口
f2rc7860_wr(F2PohG1_tx_a,set_value);
return_value = 0;
}
else if (portid == 2){ //光分支7860B口
f2rc7860_wr(F2PohG1_tx_b,set_value);
return_value = 0;
}
else return_value = 2;
}
else if (boardid == 5){ //主光盘MCB
if (portid == 1){
PohG1_tx_a = set_value;
return_value = 0;
}
else if (portid == 2){
PohG1_tx_b = set_value;
return_value = 0;
}
else return_value = 2;
}
else return_value = 2;
break;
case 0x4B33: if (boardid == 4 & start_flg[0] == 0){ //K1字节光分支盘OTB
if (portid == 1){ //光分支7860A口
f2rc7860_wr(F2PohK3_tx_a,set_value);
return_value = 0;
}
else if (portid == 2){ //光分支7860B口
f2rc7860_wr(F2PohK3_tx_b,set_value);
return_value = 0;
}
else return_value = 2;
}
else if (boardid == 5){ //主光盘MCB
if (portid == 1){
PohK3_tx_a = set_value;
return_value = 0;
}
else if (portid == 2){
PohK3_tx_b = set_value;
return_value = 0;
}
else return_value = 2;
}
else return_value = 2;
break;
case 0x4E31: if (boardid == 4 & start_flg[0] == 0){ //N1字节光分支盘OTB
if (portid == 1){ //光分支7860A口
f2rc7860_wr(F2PohN1_tx_a,set_value);
return_value = 0;
}
else if (portid == 2){ //光分支7860B口
f2rc7860_wr(F2PohN1_tx_b,set_value);
return_value = 0;
}
else return_value = 2;
}
else if (boardid == 5){ //主光盘MCB
if (portid == 1){
PohN1_tx_a = set_value;
return_value = 0;
}
else if (portid == 2){
PohN1_tx_b = set_value;
return_value = 0;
}
else return_value = 2;
}
else return_value = 2;
break;
case 0x4B34: switch (portid){ //K4字节 得出Mapper中的支路号
case 1: outporth=0x04;//??对应0058,A路B路错误
outportl=0x24;
break;
case 2: outporth=0x04;
outportl=0x44;
break;
case 3: outporth=0x04;
outportl=0x64;
break;
case 4: outporth=0x04;
outportl=0x84;
break;
case 5: outporth=0x04;
outportl=0xA4;
break;
case 6: outporth=0x04;
outportl=0xC4;
break;
case 7: outporth=0x04;
outportl=0xE4;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -