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 ==
|
||||
thingy -> gw : BLE advertising packet
|
||||
|
||||
alt UUID does not match ef680100
|
||||
alt company_id != 0xffff
|
||||
gw -> gw : discard packet
|
||||
else UUID matches
|
||||
gw -> gw : extract raw payload
|
||||
gw -> gw : decode_payload()
|
||||
|
||||
alt unknown key or value out of range
|
||||
gw -> gw : discard invalid value\nlog warning
|
||||
else valid payload
|
||||
gw -> gw : add UTC timestamp
|
||||
gw -> broker : publish JSON\n{gateway_id}/{mac}/update
|
||||
broker -> db : store measurement
|
||||
else company_id == 0xffff
|
||||
gw -> gw : check payload size
|
||||
|
||||
alt payload size != 12 bytes
|
||||
gw -> gw : discard packet\n(non-Thingy device)
|
||||
else payload size == 12 bytes
|
||||
gw -> gw : decode_payload()
|
||||
|
||||
alt unknown key in payload
|
||||
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
|
||||
|
||||
|
||||
Reference in New Issue
Block a user