📄 sendpack.s51
字号:
MOV DPH,A
POP A
CFI CFA_SP SP+0
MOVX @DPTR,A
// 236 SendData[11+i*3+1]=ThisNode.MEMBERS[i].ID[1];
MOV R0,?V0 + 0
MOV R1,#0x0
MOV A,R0
MOV B,#0x8
MUL AB
XCH A,R0
MOV R2,B
MOV B,#0x0
MUL AB
ADD A,R2
MOV R2,A
MOV B,#0x8
MOV A,R1
MUL AB
ADD A,R2
MOV R1,A
MOV A,R0
ADD A,#((ThisNode + 20) & 0xff)
MOV DPL,A
MOV A,R1
ADDC A,#(((ThisNode + 20) >> 8) & 0xff)
MOV DPH,A
MOVX A,@DPTR
PUSH A
CFI CFA_SP SP+-1
MOV R0,?V0 + 0
MOV R1,#0x0
MOV A,R0
MOV B,#0x3
MUL AB
XCH A,R0
MOV R2,B
MOV B,#0x0
MUL AB
ADD A,R2
MOV R2,A
MOV B,#0x3
MOV A,R1
MUL AB
ADD A,R2
MOV R1,A
MOV DPL,?XSP + 0
MOV DPH,?XSP + 1
MOV A,DPL
ADD A,R0
MOV R0,A
MOV A,DPH
ADDC A,R1
MOV R1,A
MOV A,#0xc
ADD A,R0
MOV DPL,A
MOV A,#0x0
ADDC A,R1
MOV DPH,A
POP A
CFI CFA_SP SP+0
MOVX @DPTR,A
// 237 SendData[11+i*3+2]=ThisNode.MEMBERS[i].RSSI;
MOV R0,?V0 + 0
MOV R1,#0x0
MOV A,R0
MOV B,#0x8
MUL AB
XCH A,R0
MOV R2,B
MOV B,#0x0
MUL AB
ADD A,R2
MOV R2,A
MOV B,#0x8
MOV A,R1
MUL AB
ADD A,R2
MOV R1,A
MOV A,R0
ADD A,#((ThisNode + 22) & 0xff)
MOV DPL,A
MOV A,R1
ADDC A,#(((ThisNode + 22) >> 8) & 0xff)
MOV DPH,A
MOVX A,@DPTR
PUSH A
CFI CFA_SP SP+-1
MOV R0,?V0 + 0
MOV R1,#0x0
MOV A,R0
MOV B,#0x3
MUL AB
XCH A,R0
MOV R2,B
MOV B,#0x0
MUL AB
ADD A,R2
MOV R2,A
MOV B,#0x3
MOV A,R1
MUL AB
ADD A,R2
MOV R1,A
MOV DPL,?XSP + 0
MOV DPH,?XSP + 1
MOV A,DPL
ADD A,R0
MOV R0,A
MOV A,DPH
ADDC A,R1
MOV R1,A
MOV A,#0xd
ADD A,R0
MOV DPL,A
MOV A,#0x0
ADDC A,R1
MOV DPH,A
POP A
CFI CFA_SP SP+0
MOVX @DPTR,A
// 238 }
INC ?V0 + 0
LJMP ??WirelessSendData_50
// 239 MACPutArray(SendData, 11+ThisNode.MEMBERNUM*3);
??WirelessSendData_51:
; Setup parameters for call to function MACPutArray
MOV B,#0x3
MOV DPTR,#(ThisNode + 3)
MOVX A,@DPTR
MUL AB
ADD A,#0xb
MOV R1,A
MOV DPL,?XSP + 0
MOV DPH,?XSP + 1
MOV R2,DPL
MOV R3,DPH
LCALL MACPutArray
// 240 MACFlush();
; Setup parameters for call to function MACFlush
LCALL MACFlush
LJMP ??WirelessSendData_27
// 241 #else
// 242 //上报的数据中不含RSSI信息
// 243 SendData[5] = 11+ThisNode.MEMBERNUM*2-7+1;//len;
// 244 for(i=0;i<=5;i++)cs+=SendData[i];
// 245 SendData[6] = cs;//checksum;
// 246 rssi=ThisNode.RSSI; rssi+=50; if(rssi>128) rssi=0; rssi/=3;
// 247 SendData[7] = ((rssi <<3)&0xf8)|(ThisNode.RecSenMsgTimeVal&0x07);
// 248 SendData[8] = GroupChannelIdx;
// 249 SendData[9] = ThisNode.MEMBERNUM;
// 250 SendData[10] = MAX_GROUPMENBER_NUM;
// 251 for(i=0;i<ThisNode.MEMBERNUM;i++)
// 252 {
// 253 SendData[11+i*2] =ThisNode.MEMBERS[i].ID[0];
// 254 SendData[11+i*2+1]=ThisNode.MEMBERS[i].ID[1];
// 255 }
// 256 MACPutArray(SendData, 11+ThisNode.MEMBERNUM*2);
// 257 MACFlush();
// 258 #endif
// 259
// 260
// 261 break;
// 262 case MSG_CAPTAIN_SENDMEMBERDATATOTAG:
// 263 SendData[1] = submacCurrentFrame.sub_source_addr.v[0];
??WirelessSendData_14:
MOV DPTR,#(submacCurrentFrame + 4)
MOVX A,@DPTR
PUSH A
CFI CFA_SP SP+-1
MOV A,#0x1
LCALL ?XSTACK_DISP0_8
POP A
CFI CFA_SP SP+0
MOVX @DPTR,A
// 264 SendData[2] = submacCurrentFrame.sub_source_addr.v[1];
MOV DPTR,#(submacCurrentFrame + 5)
MOVX A,@DPTR
PUSH A
CFI CFA_SP SP+-1
MOV A,#0x2
LCALL ?XSTACK_DISP0_8
POP A
CFI CFA_SP SP+0
MOVX @DPTR,A
// 265 SendData[3] = macInfo.longAddr.v[0];
MOV DPTR,#(macInfo + 1)
MOVX A,@DPTR
PUSH A
CFI CFA_SP SP+-1
MOV A,#0x3
LCALL ?XSTACK_DISP0_8
POP A
CFI CFA_SP SP+0
MOVX @DPTR,A
// 266 SendData[4] = macInfo.longAddr.v[1];
MOV DPTR,#(macInfo + 2)
MOVX A,@DPTR
PUSH A
CFI CFA_SP SP+-1
MOV A,#0x4
LCALL ?XSTACK_DISP0_8
POP A
CFI CFA_SP SP+0
MOVX @DPTR,A
// 267
// 268 //上报的数据中不含RSSI信息
// 269 SendData[5] = 11+ThisNode.MEMBERNUM*2-7+1;//len;
MOV B,#0x2
MOV DPTR,#(ThisNode + 3)
MOVX A,@DPTR
MUL AB
ADD A,#0x5
PUSH A
CFI CFA_SP SP+-1
MOV A,#0x5
LCALL ?XSTACK_DISP0_8
POP A
CFI CFA_SP SP+0
MOVX @DPTR,A
// 270 for(i=0;i<=5;i++)cs+=SendData[i];
MOV ?V0 + 0,#0x0
??WirelessSendData_52:
MOV A,?V0 + 0
CLR C
SUBB A,#0x6
JNC ??WirelessSendData_53
MOV ?V0 + 2,?V0 + 0
MOV ?V0 + 3,#0x0
MOV DPL,?XSP + 0
MOV DPH,?XSP + 1
MOV A,DPL
ADD A,?V0 + 2
MOV DPL,A
MOV A,DPH
ADDC A,?V0 + 3
MOV DPH,A
MOVX A,@DPTR
ADD A,R6
MOV R6,A
INC ?V0 + 0
SJMP ??WirelessSendData_52
// 271 SendData[6] = cs;//checksum;
??WirelessSendData_53:
MOV A,R6
PUSH A
CFI CFA_SP SP+-1
MOV A,#0x6
LCALL ?XSTACK_DISP0_8
POP A
CFI CFA_SP SP+0
MOVX @DPTR,A
// 272 rssi=ThisNode.RSSI; rssi+=50; if(rssi>128) rssi=0; rssi/=3;
MOV DPTR,#(ThisNode + 7)
MOVX A,@DPTR
MOV R7,A
MOV A,#0x32
ADD A,R7
MOV R7,A
MOV A,R7
CLR C
SUBB A,#-0x7f
JC ??WirelessSendData_54
MOV R7,#0x0
??WirelessSendData_54:
MOV B,#0x3
MOV A,R7
DIV AB
MOV R7,A
// 273 SendData[7] = ((rssi <<3)&0xf8)|(ThisNode.RecSenMsgTimeVal&0x07);
MOV DPTR,#(ThisNode + 14)
MOVX A,@DPTR
ANL A,#0x7
PUSH A
CFI CFA_SP SP+-1
MOV A,R7
RLC A
RLC A
RLC A
ANL A,#0xf8
MOV R2,A
POP A
CFI CFA_SP SP+0
ORL A,R2
PUSH A
CFI CFA_SP SP+-1
MOV A,#0x7
LCALL ?XSTACK_DISP0_8
POP A
CFI CFA_SP SP+0
MOVX @DPTR,A
// 274 SendData[8] = GroupChannelIdx;
MOV DPTR,#GroupChannelIdx
MOVX A,@DPTR
PUSH A
CFI CFA_SP SP+-1
MOV A,#0x8
LCALL ?XSTACK_DISP0_8
POP A
CFI CFA_SP SP+0
MOVX @DPTR,A
// 275 SendData[9] = ThisNode.MEMBERNUM;
MOV DPTR,#(ThisNode + 3)
MOVX A,@DPTR
PUSH A
CFI CFA_SP SP+-1
MOV A,#0x9
LCALL ?XSTACK_DISP0_8
POP A
CFI CFA_SP SP+0
MOVX @DPTR,A
// 276 SendData[10] = MAX_GROUPMENBER_NUM;
MOV A,#0xf
PUSH A
CFI CFA_SP SP+-1
MOV A,#0xa
LCALL ?XSTACK_DISP0_8
POP A
CFI CFA_SP SP+0
MOVX @DPTR,A
// 277 for(i=0;i<ThisNode.MEMBERNUM;i++)
MOV ?V0 + 0,#0x0
??WirelessSendData_55:
MOV DPTR,#(ThisNode + 3)
MOVX A,@DPTR
MOV R2,A
MOV A,?V0 + 0
CLR C
SUBB A,R2
JC $+5
LJMP ??WirelessSendData_56
// 278 {
// 279 SendData[11+i*2] =ThisNode.MEMBERS[i].ID[0];
MOV R0,?V0 + 0
MOV R1,#0x0
MOV A,R0
MOV B,#0x8
MUL AB
XCH A,R0
MOV R2,B
MOV B,#0x0
MUL AB
ADD A,R2
MOV R2,A
MOV B,#0x8
MOV A,R1
MUL AB
ADD A,R2
MOV R1,A
MOV A,R0
ADD A,#((ThisNode + 19) & 0xff)
MOV DPL,A
MOV A,R1
ADDC A,#(((ThisNode + 19) >> 8) & 0xff)
MOV DPH,A
MOVX A,@DPTR
PUSH A
CFI CFA_SP SP+-1
MOV R0,?V0 + 0
MOV R1,#0x0
MOV A,R0
MOV B,#0x2
MUL AB
XCH A,R0
MOV R2,B
MOV B,#0x0
MUL AB
ADD A,R2
MOV R2,A
MOV B,#0x2
MOV A,R1
MUL AB
ADD A,R2
MOV R1,A
MOV DPL,?XSP + 0
MOV DPH,?XSP + 1
MOV A,DPL
ADD A,R0
MOV R0,A
MOV A,DPH
ADDC A,R1
MOV R1,A
MOV A,#0xb
ADD A,R0
MOV DPL,A
MOV A,#0x0
ADDC A,R1
MOV DPH,A
POP A
CFI CFA_SP SP+0
MOVX @DPTR,A
// 280 SendData[11+i*2+1]=ThisNode.MEMBERS[i].ID[1];
MOV R0,?V0 + 0
MOV R1,#0x0
MOV A,R0
MOV B,#0x8
MUL AB
XCH A,R0
MOV R2,B
MOV B,#0x0
MUL AB
ADD A,R2
MOV R2,A
MOV B,#0x8
MOV A,R1
MUL AB
ADD A,R2
MOV R1,A
MOV A,R0
ADD A,#((ThisNode + 20) & 0xff)
MOV DPL,A
MOV A,R1
ADDC A,#(((ThisNode + 20) >> 8) & 0xff)
MOV DPH,A
MOVX A,@DPTR
PUSH A
CFI CFA_SP SP+-1
MOV R0,?V0 + 0
MOV R1,#0x0
MOV A,R0
MOV B,#0x2
MUL AB
XCH A,R0
MOV R2,B
MOV B,#0x0
MUL AB
ADD A,R2
MOV R2,A
MOV B,#0x2
MOV A,R1
MUL AB
ADD A,R2
MOV R1,A
MOV DPL,?XSP + 0
MOV DPH,?XSP + 1
MOV A,DPL
ADD A,R0
MOV R0,A
MOV A,DPH
ADDC A,R1
MOV R1,A
MOV A,#0xc
ADD A,R0
MOV DPL,A
MOV A,#0x0
ADDC A,R1
MOV DPH,A
POP A
CFI CFA_SP SP+0
MOVX @DPTR,A
// 281 }
INC ?V0 + 0
LJMP ??WirelessSendData_55
// 282 MACPutArray(SendData, 11+ThisNode.MEMBERNUM*2);
??WirelessSendData_56:
; Setup parameters for call to function MACPutArray
MOV B,#0x2
MOV DPTR,#(ThisNode + 3)
MOVX A,@DPTR
MUL AB
ADD A,#0xb
MOV R1,A
MOV DPL,?XSP + 0
MOV DPH,?XSP + 1
MOV R2,DPL
MOV R3,DPH
LCALL MACPutArray
// 283 MACFlush();
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -