t03: use router app.

This commit is contained in:
Martin Preuss
2025-07-19 17:08:39 +02:00
parent ae1853ba62
commit c8c12bb892

View File

@@ -57,6 +57,7 @@
#define MAIN_WITHOUT_MSG_HANDLING ; we do message handling ourselfes
#define APP_STATS_NETDEV2
#define APP_ROUTER_NO_ADDR_MGR
#define MODULES_CLOCK
;#define MODULES_COM
@@ -78,7 +79,8 @@
;#define MODULES_COMONUART0
#define MODULES_TTYONUART1
#define APPS_STATS
#define APPS_NETWORK
;#define APPS_NETWORK
#define APPS_ROUTER
@@ -95,6 +97,7 @@
.equ VALUE_ID_DS18B20_TEMP = 0x06
.equ VALUE_ID_LEDSIMPLE_TIMING = 0x88
.equ VALUE_ID_ROUTER_SETRANGE = 0x89
@@ -184,13 +187,9 @@ firmwareStart:
; @routine onSystemStart
onSystemStart:
; set interface number for UART0
ldi r16, COMONUART0_IFACENUM
sts netInterfaceData2+NET_IFACE_OFFS_IFACENUM, r16
; set interface number for UART1
ldi r16, TTYONUART1_IFACENUM
sts ttyOnUart1_iface+NET_IFACE_OFFS_IFACENUM, r16
ldi r16, 0xf0
sts netInterfaceData+NET_IFACE_OFFS_ADDRESS, r16
sts netInterfaceData2+NET_IFACE_OFFS_ADDRESS, r16
ret
; @end
@@ -211,7 +210,6 @@ onEveryDay:
; Called on every loop (i.e. after awakening from sleep).
onEveryLoop:
rcall checkRecvdMsg
ret
; @end
@@ -229,113 +227,6 @@ onMessageReceived:
; ---------------------------------------------------------------------------
; @routine checkRecvdMsg
;
; Read messages from either interface and forward to the other one.
checkRecvdMsg:
rcall NET_PeekNextIncomingMsgNum ; check read queue (bufNum->r16)
brcc checkRecvdMsg_end ; no msg, jmp
rcall NET_Buffer_Locate ; (R17)
; let system handle incoming messages
push r16
push xl
push xh
adiw xh:xl, 1
rcall letSysHandleMsg
pop xh
pop xl
pop r16
; forward to other interface
ld r17, X
andi r17, (1<<NET_IFACE_BUFFER_IFACENUM1_BIT) | (1<<NET_IFACE_BUFFER_IFACENUM0_BIT)
rcall reverseInterfaceNum ; (R17)
; ldi r17, TTYONUART1_IFACENUM ; DEBUG: send everything to uart1 to test that code first
rcall addMsgToInterface
brcc checkRecvdMsg_end ; could not add, jmp
rcall NET_GetNextIncomingMsgNum ; take off the queue
rjmp checkRecvdMsg
checkRecvdMsg_end:
ret
; @end
letSysHandleMsg:
ld r16, X
cpi r16, 0xff
breq letSysHandleMsg_forMe
lds r17, netInterfaceData2+NET_IFACE_OFFS_ADDRESS
cp r16, r17
brne letSysHandleMsg_end
letSysHandleMsg_forMe:
push xl
push xh
rcall onMessageReceived
pop xh
pop xl
push xl
push xh
rcall mainModulesOnPacketReceived
pop xh
pop xl
push xl
push xh
rcall mainAppsOnPacketReceived
pop xh
pop xl
letSysHandleMsg_end:
ret
; @end
; ---------------------------------------------------------------------------
; @routine reverseInterfaceNum
;
; @param r17 buffer num
; @return r17 reversed interface number
; @clobbers r17
reverseInterfaceNum:
andi r17, (1<<NET_IFACE_BUFFER_IFACENUM1_BIT) | (1<<NET_IFACE_BUFFER_IFACENUM0_BIT)
cpi r17, COMONUART0_IFACENUM
brne reverseInterfaceNum_notUart0
ldi r17, TTYONUART1_IFACENUM
ret
reverseInterfaceNum_notUart0:
ldi r17, COMONUART0_IFACENUM
ret
; @end
; ---------------------------------------------------------------------------
; @routine addMsgToInterface
; @param r16 buffer num
; @param r17 interface num
addMsgToInterface:
cpi r17, COMONUART0_IFACENUM
breq addMsgToInterface_toUart0
cpi r17, TTYONUART1_IFACENUM
breq addMsgToInterface_toUart1
clc
ret
addMsgToInterface_toUart0:
ldi yl, LOW(netInterfaceData2)
ldi yh, HIGH(netInterfaceData2)
rjmp NET_Interface_AddOutgoingMsgNum ; try to add msg to interface
addMsgToInterface_toUart1:
ldi yl, LOW(ttyOnUart1_iface)
ldi yh, HIGH(ttyOnUart1_iface)
rjmp NET_Interface_AddOutgoingMsgNum ; try to add msg to interface
; @end