sort counters to simplify stats app.

This commit is contained in:
Martin Preuss
2025-07-06 14:36:50 +02:00
parent 85d445ec61
commit 734c237666
2 changed files with 89 additions and 52 deletions

View File

@@ -75,6 +75,10 @@ AppStats_OnEveryMinute_store:
sts appStatsTimer, r16
ldi yl, LOW(netInterfaceData)
ldi yh, HIGH(netInterfaceData)
ldi r17, AQHOME_VALUEID_STATS_PACKETS_IN
ldi xl, LOW(netInterfaceData)
ldi xh, HIGH(netInterfaceData)
cpi r16, 1
breq AppStats_OnEveryMinute_sendDevice
cpi r16, 3
@@ -97,57 +101,68 @@ AppStats_OnEveryMinute_store:
breq AppStats_OnEveryMinute_sendDevice
cpi r16, 15
breq AppStats_OnEveryMinute_sendBusyErrs
#ifdef MODULES_HEAP
#ifdef APP_STATS_NETDEV2
ldi r17, AQHOME_VALUEID_STATS_PACKETS_IN2
ldi xl, LOW(netInterfaceData2)
ldi xh, HIGH(netInterfaceData2)
cpi r16, 16
breq AppStats_OnEveryMinute_sendPacketsIn
cpi r16, 17
breq AppStats_OnEveryMinute_sendHeapUsed
cpi r16, 19
breq AppStats_OnEveryMinute_sendHeapfree
#endif
breq AppStats_OnEveryMinute_sendPacketsOut
cpi r16, 18
breq AppStats_OnEveryMinute_sendDevice
cpi r16, 19
breq AppStats_OnEveryMinute_sendContentErrs
cpi r16, 20
breq AppStats_OnEveryMinute_sendIoErrs
cpi r16, 21
breq AppStats_OnEveryMinute_sendDevice
cpi r16, 22
breq AppStats_OnEveryMinute_sendNoBufErrs
cpi r16, 23
breq AppStats_OnEveryMinute_sendDevice
cpi r16, 24
breq AppStats_OnEveryMinute_sendCollisionErrs
cpi r16, 25
breq AppStats_OnEveryMinute_sendBusyErrs
#endif
#ifdef MODULES_HEAP
cpi r16, 26
breq AppStats_OnEveryMinute_sendHeapUsed
cpi r16, 27
breq AppStats_OnEveryMinute_sendHeapfree
#endif
cpi r16, 28
breq AppStats_OnEveryMinute_sendDevice
ret
AppStats_OnEveryMinute_sendDevice:
rjmp AppNetwork_SendDevice
AppStats_OnEveryMinute_sendPacketsIn:
ldi r17, AQHOME_VALUEID_STATS_PACKETS_IN
ldd r18, Y+NET_IFACE_OFFS_PACKETSIN_LOW
ldd r19, Y+NET_IFACE_OFFS_PACKETSIN_HIGH
rjmp appStatsSend16BitValue
ldi r16, 0
rjmp appStatsSendDeviceStat
AppStats_OnEveryMinute_sendPacketsOut:
ldi r17, AQHOME_VALUEID_STATS_PACKETS_OUT
ldd r18, Y+NET_IFACE_OFFS_PACKETSOUT_LOW
ldd r19, Y+NET_IFACE_OFFS_PACKETSOUT_HIGH
rjmp appStatsSend16BitValue
ldi r16, 1
rjmp appStatsSendDeviceStat
AppStats_OnEveryMinute_sendContentErrs:
ldi r17, AQHOME_VALUEID_STATS_ERRS_CONTENT
ldd r18, Y+NET_IFACE_OFFS_ERR_CONTENT_LOW
ldd r19, Y+NET_IFACE_OFFS_ERR_CONTENT_HIGH
rjmp appStatsSend16BitValue
ldi r16, 2
rjmp appStatsSendDeviceStat
AppStats_OnEveryMinute_sendIoErrs:
ldi r17, AQHOME_VALUEID_STATS_ERRS_IO
ldd r18, Y+NET_IFACE_OFFS_ERR_IO_LOW
ldd r19, Y+NET_IFACE_OFFS_ERR_IO_HIGH
rjmp appStatsSend16BitValue
ldi r16, 3
rjmp appStatsSendDeviceStat
AppStats_OnEveryMinute_sendNoBufErrs:
ldi r17, AQHOME_VALUEID_STATS_ERRS_NOBUF
ldd r18, Y+NET_IFACE_OFFS_ERR_NOBUF_LOW
ldd r19, Y+NET_IFACE_OFFS_ERR_NOBUF_HIGH
rjmp appStatsSend16BitValue
ldi r16, 4
rjmp appStatsSendDeviceStat
AppStats_OnEveryMinute_sendCollisionErrs:
ldi r17, AQHOME_VALUEID_STATS_ERRS_COLLISIONS
ldd r18, Y+NET_IFACE_OFFS_ERR_COLLISIONS_LOW
ldd r19, Y+NET_IFACE_OFFS_ERR_COLLISIONS_HIGH
rjmp appStatsSend16BitValue
ldi r16, 5
rjmp appStatsSendDeviceStat
AppStats_OnEveryMinute_sendBusyErrs:
ldi r17, AQHOME_VALUEID_STATS_ERRS_BUSY
ldd r18, Y+NET_IFACE_OFFS_ERR_BUSY_LOW
ldd r19, Y+NET_IFACE_OFFS_ERR_BUSY_HIGH
rjmp appStatsSend16BitValue
ldi r16, 6
rjmp appStatsSendDeviceStat
#ifdef MODULES_HEAP
AppStats_OnEveryMinute_sendHeapUsed:
ldi r17, AQHOME_VALUEID_STATS_HEAP_USED
@@ -164,6 +179,30 @@ AppStats_OnEveryMinute_sendHeapfree:
; ---------------------------------------------------------------------------
; @routine AppStats_OnEveryMinute @global
;
; @param r16 index into device table (e.g. 0 for NET_IFACE_OFFS_PACKETSIN_LOW)
; @param r17 offset to first value id (e.g. AQHOME_VALUEID_STATS_PACKETS_IN for device 0,
; AQHOME_VALUEID_STATS_PACKETS_IN2 for device 1)
; @param Y pointer to device to send data to
; @param X pointer to device to inspect
appStatsSendDeviceStat:
add r17, r16
lsl r16
adiw xh:xl, NET_IFACE_OFFS_PACKETSIN_LOW
add xl, r16
adc xh, r16
sub xh, r16
ld r18, X+
ld r19, X
rjmp appStatsSend16BitValue
; @end
; ---------------------------------------------------------------------------
; @routine AppStats_OnEveryMinute @global
;

View File

@@ -31,27 +31,25 @@
.equ NET_IFACE_OFFS_LASTMSGID_LOW = 8
.equ NET_IFACE_OFFS_LASTMSGID_HIGH = 9
; receiption stats
; device stats
.equ NET_IFACE_OFFS_PACKETSIN_LOW = 10
.equ NET_IFACE_OFFS_PACKETSIN_HIGH = 11
.equ NET_IFACE_OFFS_ERR_CONTENT_LOW = 12
.equ NET_IFACE_OFFS_ERR_CONTENT_HIGH = 13
.equ NET_IFACE_OFFS_ERR_IO_LOW = 14
.equ NET_IFACE_OFFS_ERR_IO_HIGH = 15
.equ NET_IFACE_OFFS_ERR_NOBUF_LOW = 16
.equ NET_IFACE_OFFS_ERR_NOBUF_HIGH = 17
.equ NET_IFACE_OFFS_ERR_MSGSIZE_LOW = 18
.equ NET_IFACE_OFFS_ERR_MSGSIZE_HIGH = 19
.equ NET_IFACE_OFFS_ERR_MISSED_LOW = 20
.equ NET_IFACE_OFFS_ERR_MISSED_HIGH = 21
; send stats
.equ NET_IFACE_OFFS_PACKETSOUT_LOW = 22
.equ NET_IFACE_OFFS_PACKETSOUT_HIGH = 23
.equ NET_IFACE_OFFS_ERR_COLLISIONS_LOW = 24
.equ NET_IFACE_OFFS_ERR_COLLISIONS_HIGH = 25
.equ NET_IFACE_OFFS_ERR_BUSY_LOW = 26
.equ NET_IFACE_OFFS_ERR_BUSY_HIGH = 27
.equ NET_IFACE_OFFS_PACKETSOUT_LOW = 12
.equ NET_IFACE_OFFS_PACKETSOUT_HIGH = 13
.equ NET_IFACE_OFFS_ERR_CONTENT_LOW = 14
.equ NET_IFACE_OFFS_ERR_CONTENT_HIGH = 15
.equ NET_IFACE_OFFS_ERR_IO_LOW = 16
.equ NET_IFACE_OFFS_ERR_IO_HIGH = 17
.equ NET_IFACE_OFFS_ERR_NOBUF_LOW = 18
.equ NET_IFACE_OFFS_ERR_NOBUF_HIGH = 19
.equ NET_IFACE_OFFS_ERR_COLLISIONS_LOW = 20
.equ NET_IFACE_OFFS_ERR_COLLISIONS_HIGH = 21
.equ NET_IFACE_OFFS_ERR_BUSY_LOW = 22
.equ NET_IFACE_OFFS_ERR_BUSY_HIGH = 23
.equ NET_IFACE_OFFS_ERR_MSGSIZE_LOW = 24
.equ NET_IFACE_OFFS_ERR_MSGSIZE_HIGH = 25
.equ NET_IFACE_OFFS_ERR_MISSED_LOW = 26
.equ NET_IFACE_OFFS_ERR_MISSED_HIGH = 27
.equ NET_IFACE_OFFS_OUTMSGRINGBUF = 28 ; RINGBUFFERY_SIZE+UART_HW_IFACE_OUTMSGBUF_SIZE