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 sts appStatsTimer, r16
ldi yl, LOW(netInterfaceData) ldi yl, LOW(netInterfaceData)
ldi yh, HIGH(netInterfaceData) ldi yh, HIGH(netInterfaceData)
ldi r17, AQHOME_VALUEID_STATS_PACKETS_IN
ldi xl, LOW(netInterfaceData)
ldi xh, HIGH(netInterfaceData)
cpi r16, 1 cpi r16, 1
breq AppStats_OnEveryMinute_sendDevice breq AppStats_OnEveryMinute_sendDevice
cpi r16, 3 cpi r16, 3
@@ -97,57 +101,68 @@ AppStats_OnEveryMinute_store:
breq AppStats_OnEveryMinute_sendDevice breq AppStats_OnEveryMinute_sendDevice
cpi r16, 15 cpi r16, 15
breq AppStats_OnEveryMinute_sendBusyErrs 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 cpi r16, 17
breq AppStats_OnEveryMinute_sendHeapUsed breq AppStats_OnEveryMinute_sendPacketsOut
cpi r16, 19
breq AppStats_OnEveryMinute_sendHeapfree
#endif
cpi r16, 18 cpi r16, 18
breq AppStats_OnEveryMinute_sendDevice 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 cpi r16, 23
breq AppStats_OnEveryMinute_sendDevice 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 cpi r16, 28
breq AppStats_OnEveryMinute_sendDevice breq AppStats_OnEveryMinute_sendDevice
ret
AppStats_OnEveryMinute_sendDevice: AppStats_OnEveryMinute_sendDevice:
rjmp AppNetwork_SendDevice rjmp AppNetwork_SendDevice
AppStats_OnEveryMinute_sendPacketsIn: AppStats_OnEveryMinute_sendPacketsIn:
ldi r17, AQHOME_VALUEID_STATS_PACKETS_IN ldi r16, 0
ldd r18, Y+NET_IFACE_OFFS_PACKETSIN_LOW rjmp appStatsSendDeviceStat
ldd r19, Y+NET_IFACE_OFFS_PACKETSIN_HIGH
rjmp appStatsSend16BitValue
AppStats_OnEveryMinute_sendPacketsOut: AppStats_OnEveryMinute_sendPacketsOut:
ldi r17, AQHOME_VALUEID_STATS_PACKETS_OUT ldi r16, 1
ldd r18, Y+NET_IFACE_OFFS_PACKETSOUT_LOW rjmp appStatsSendDeviceStat
ldd r19, Y+NET_IFACE_OFFS_PACKETSOUT_HIGH
rjmp appStatsSend16BitValue
AppStats_OnEveryMinute_sendContentErrs: AppStats_OnEveryMinute_sendContentErrs:
ldi r17, AQHOME_VALUEID_STATS_ERRS_CONTENT ldi r16, 2
ldd r18, Y+NET_IFACE_OFFS_ERR_CONTENT_LOW rjmp appStatsSendDeviceStat
ldd r19, Y+NET_IFACE_OFFS_ERR_CONTENT_HIGH
rjmp appStatsSend16BitValue
AppStats_OnEveryMinute_sendIoErrs: AppStats_OnEveryMinute_sendIoErrs:
ldi r17, AQHOME_VALUEID_STATS_ERRS_IO ldi r16, 3
ldd r18, Y+NET_IFACE_OFFS_ERR_IO_LOW rjmp appStatsSendDeviceStat
ldd r19, Y+NET_IFACE_OFFS_ERR_IO_HIGH
rjmp appStatsSend16BitValue
AppStats_OnEveryMinute_sendNoBufErrs: AppStats_OnEveryMinute_sendNoBufErrs:
ldi r17, AQHOME_VALUEID_STATS_ERRS_NOBUF ldi r16, 4
ldd r18, Y+NET_IFACE_OFFS_ERR_NOBUF_LOW rjmp appStatsSendDeviceStat
ldd r19, Y+NET_IFACE_OFFS_ERR_NOBUF_HIGH
rjmp appStatsSend16BitValue
AppStats_OnEveryMinute_sendCollisionErrs: AppStats_OnEveryMinute_sendCollisionErrs:
ldi r17, AQHOME_VALUEID_STATS_ERRS_COLLISIONS ldi r16, 5
ldd r18, Y+NET_IFACE_OFFS_ERR_COLLISIONS_LOW rjmp appStatsSendDeviceStat
ldd r19, Y+NET_IFACE_OFFS_ERR_COLLISIONS_HIGH
rjmp appStatsSend16BitValue
AppStats_OnEveryMinute_sendBusyErrs: AppStats_OnEveryMinute_sendBusyErrs:
ldi r17, AQHOME_VALUEID_STATS_ERRS_BUSY ldi r16, 6
ldd r18, Y+NET_IFACE_OFFS_ERR_BUSY_LOW rjmp appStatsSendDeviceStat
ldd r19, Y+NET_IFACE_OFFS_ERR_BUSY_HIGH
rjmp appStatsSend16BitValue
#ifdef MODULES_HEAP #ifdef MODULES_HEAP
AppStats_OnEveryMinute_sendHeapUsed: AppStats_OnEveryMinute_sendHeapUsed:
ldi r17, AQHOME_VALUEID_STATS_HEAP_USED 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 ; @routine AppStats_OnEveryMinute @global
; ;

View File

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