docs(gateway): update sequence diagrams to reflect final implementation - Update class diagram: add INVALID_VALUE and EXPECTED_PAYLOAD_SIZE constants, add on_connect and on_publish callbacks, remove service_uuid - Update sequence diagram: replace UUID filter with company_id 0xffff filter, add payload size check, add CO2 0xFFFFFFFF handling
This commit is contained in:
@@ -9,18 +9,28 @@ participant "Database\n(InfluxDB)" as db
|
|||||||
== Data collection ==
|
== Data collection ==
|
||||||
thingy -> gw : BLE advertising packet
|
thingy -> gw : BLE advertising packet
|
||||||
|
|
||||||
alt UUID does not match ef680100
|
alt company_id != 0xffff
|
||||||
gw -> gw : discard packet
|
gw -> gw : discard packet
|
||||||
else UUID matches
|
else company_id == 0xffff
|
||||||
gw -> gw : extract raw payload
|
gw -> gw : check payload size
|
||||||
gw -> gw : decode_payload()
|
|
||||||
|
alt payload size != 12 bytes
|
||||||
alt unknown key or value out of range
|
gw -> gw : discard packet\n(non-Thingy device)
|
||||||
gw -> gw : discard invalid value\nlog warning
|
else payload size == 12 bytes
|
||||||
else valid payload
|
gw -> gw : decode_payload()
|
||||||
gw -> gw : add UTC timestamp
|
|
||||||
gw -> broker : publish JSON\n{gateway_id}/{mac}/update
|
alt unknown key in payload
|
||||||
broker -> db : store measurement
|
gw -> gw : discard packet\nlog debug
|
||||||
|
else valid keys
|
||||||
|
alt CO2 == 0xFFFFFFFF
|
||||||
|
gw -> gw : discard CO2 value\n(sensor not ready)
|
||||||
|
end
|
||||||
|
|
||||||
|
gw -> gw : add UTC timestamp
|
||||||
|
gw -> broker : publish JSON\n{gateway_id}/{mac}/update
|
||||||
|
broker --> gw : on_publish confirmed
|
||||||
|
broker -> db : store measurement
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user