📄 sendpack.s51
字号:
MOV R7,#0x0
??WirelessSendData_43:
MOV B,#0x3
MOV A,R7
DIV AB
MOV R7,A
// 183 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
// 184
// 185 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
// 186 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
// 187 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
// 188 MACPutArray(SendData, 11);
; Setup parameters for call to function MACPutArray
MOV R1,#0xb
MOV DPL,?XSP + 0
MOV DPH,?XSP + 1
MOV R2,DPL
MOV R3,DPH
LCALL MACPutArray
// 189 MACFlush();
; Setup parameters for call to function MACFlush
LCALL MACFlush
LJMP ??WirelessSendData_27
// 190
// 191 break;
// 192
// 193
// 194
// 195 case MSG_CAPTAIN_UNITEINVITE:
// 196 //break;
// 197 SendData[1] = submacCurrentFrame.sub_source_addr.v[0];
??WirelessSendData_13:
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
// 198 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
// 199 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
// 200 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
// 201
// 202 SendData[5] = 4+1;//len;
MOV 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
// 203 for(i=0;i<=5;i++)cs+=SendData[i];
MOV ?V0 + 0,#0x0
??WirelessSendData_44:
MOV A,?V0 + 0
CLR C
SUBB A,#0x6
JNC ??WirelessSendData_45
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_44
// 204 SendData[6] = cs;//checksum;
??WirelessSendData_45:
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
// 205
// 206 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_46
MOV R7,#0x0
??WirelessSendData_46:
MOV B,#0x3
MOV A,R7
DIV AB
MOV R7,A
// 207 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
// 208 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
// 209 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
// 210 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
// 211 MACPutArray(SendData, 11);
; Setup parameters for call to function MACPutArray
MOV R1,#0xb
MOV DPL,?XSP + 0
MOV DPH,?XSP + 1
MOV R2,DPL
MOV R3,DPH
LCALL MACPutArray
// 212 MACFlush();
; Setup parameters for call to function MACFlush
LCALL MACFlush
LJMP ??WirelessSendData_27
// 213
// 214 break;
// 215
// 216 case MSG_CAPTAIN_SENDDATATOSENSOR:
// 217 SendData[1] = ThisNode.SensorID[0];
??WirelessSendData_4:
MOV DPTR,#(ThisNode + 8)
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
// 218 SendData[2] = ThisNode.SensorID[1];
MOV DPTR,#(ThisNode + 9)
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
// 219 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
// 220 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
// 221
// 222
// 223 #if defined(USE_TAGRSSI)
// 224 //上报的数据中含有RSSI信息
// 225 SendData[5] = 11+ThisNode.MEMBERNUM*3-7+1;//len;
MOV B,#0x3
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
// 226 for(i=0;i<=5;i++)cs+=SendData[i];
MOV ?V0 + 0,#0x0
??WirelessSendData_47:
MOV A,?V0 + 0
CLR C
SUBB A,#0x6
JNC ??WirelessSendData_48
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_47
// 227 SendData[6] = cs;//checksum;
??WirelessSendData_48:
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
// 228 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_49
MOV R7,#0x0
??WirelessSendData_49:
MOV B,#0x3
MOV A,R7
DIV AB
MOV R7,A
// 229 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
// 230 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
// 231 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
// 232 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
// 233 for(i=0;i<ThisNode.MEMBERNUM;i++ )
MOV ?V0 + 0,#0x0
??WirelessSendData_50:
MOV DPTR,#(ThisNode + 3)
MOVX A,@DPTR
MOV R2,A
MOV A,?V0 + 0
CLR C
SUBB A,R2
JC $+5
LJMP ??WirelessSendData_51
// 234 {
// 235 SendData[11+i*3] =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,#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,#0xb
ADD A,R0
MOV DPL,A
MOV A,#0x0
ADDC A,R1
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -