v1.4.3 — Payload UDP bruit cur_leq + cur_level, améliorations page database
- UDP bytes 22-23: noise_cur_leq, 24-25: noise_cur_level, 26-27: max_noise (réservé) - Page database: validation dates obligatoire + bouton télécharger toute la table Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -1,5 +1,24 @@
|
|||||||
{
|
{
|
||||||
"versions": [
|
"versions": [
|
||||||
|
{
|
||||||
|
"version": "1.4.3",
|
||||||
|
"date": "2026-03-16",
|
||||||
|
"changes": {
|
||||||
|
"features": [
|
||||||
|
"Page database: bouton telecharger toute la table (bypass filtre dates)",
|
||||||
|
"Page database: validation obligatoire des dates avant telechargement par periode"
|
||||||
|
],
|
||||||
|
"improvements": [
|
||||||
|
"Payload UDP bruit: bytes 22-23 = noise_cur_leq, 24-25 = noise_cur_level, 26-27 = max_noise (reserve)",
|
||||||
|
"Envoi des deux valeurs bruit (cur_LEQ + DB_A_value) en UDP Miotiq au lieu d'une seule"
|
||||||
|
],
|
||||||
|
"fixes": [],
|
||||||
|
"compatibility": [
|
||||||
|
"Necessite mise a jour du parser Miotiq pour decoder les nouveaux champs noise_cur_leq et noise_cur_level"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"notes": "Mise a jour structure UDP bruit pour alignement avec parser Miotiq et ameliorations page database."
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"version": "1.4.2",
|
"version": "1.4.2",
|
||||||
"date": "2026-03-14",
|
"date": "2026-03-14",
|
||||||
|
|||||||
@@ -60,7 +60,7 @@ CSV PAYLOAD (AirCarto Servers)
|
|||||||
28 -> envea_O3
|
28 -> envea_O3
|
||||||
|
|
||||||
CSV FOR UDP (miotiq)
|
CSV FOR UDP (miotiq)
|
||||||
{device_id},{timestamp},{PM1},{PM25},{PM10},{temp},{hum},{press},{avg_noise},{max_noise},{min_noise},{envea_no2},{envea_h2s},{envea_o3},{4g_signal_quality}
|
{device_id},{timestamp},{PM1},{PM25},{PM10},{temp},{hum},{press},{noise_cur_leq},{noise_cur_level},{max_noise},{envea_no2},{envea_h2s},{envea_o3},{4g_signal_quality}
|
||||||
0 -> device ID
|
0 -> device ID
|
||||||
1 -> timestamp
|
1 -> timestamp
|
||||||
2 -> PM1
|
2 -> PM1
|
||||||
@@ -298,14 +298,18 @@ class SensorPayload:
|
|||||||
if pressure is not None:
|
if pressure is not None:
|
||||||
self.payload[20:22] = struct.pack('>H', int(pressure))
|
self.payload[20:22] = struct.pack('>H', int(pressure))
|
||||||
|
|
||||||
def set_noise(self, avg_noise, max_noise=None, min_noise=None):
|
def set_noise(self, cur_leq, cur_level, max_noise=None):
|
||||||
"""Set noise values (bytes 22-27)"""
|
"""Set noise values (bytes 22-27)
|
||||||
if avg_noise is not None:
|
22-23: noise_cur_leq (dBA × 10)
|
||||||
self.payload[22:24] = struct.pack('>H', int(avg_noise * 10))
|
24-25: noise_cur_level (dBA × 10)
|
||||||
|
26-27: max_noise (dBA × 10, reserved for future use)
|
||||||
|
"""
|
||||||
|
if cur_leq is not None:
|
||||||
|
self.payload[22:24] = struct.pack('>H', int(cur_leq * 10))
|
||||||
|
if cur_level is not None:
|
||||||
|
self.payload[24:26] = struct.pack('>H', int(cur_level * 10))
|
||||||
if max_noise is not None:
|
if max_noise is not None:
|
||||||
self.payload[24:26] = struct.pack('>H', int(max_noise * 10))
|
self.payload[26:28] = struct.pack('>H', int(max_noise * 10))
|
||||||
if min_noise is not None:
|
|
||||||
self.payload[26:28] = struct.pack('>H', int(min_noise * 10))
|
|
||||||
|
|
||||||
def set_envea(self, no2, h2s, nh3, co, o3):
|
def set_envea(self, no2, h2s, nh3, co, o3):
|
||||||
"""Set ENVEA gas sensor values (bytes 28-37)"""
|
"""Set ENVEA gas sensor values (bytes 28-37)"""
|
||||||
@@ -974,9 +978,8 @@ try:
|
|||||||
|
|
||||||
#Add data to payload UDP
|
#Add data to payload UDP
|
||||||
payload.set_noise(
|
payload.set_noise(
|
||||||
avg_noise=last_row[2], # DB_A_value
|
cur_leq=cur_LEQ, # current LEQ (dBA)
|
||||||
max_noise=None, # Add if available
|
cur_level=cur_level # current level (dBA)
|
||||||
min_noise=None # Add if available
|
|
||||||
)
|
)
|
||||||
|
|
||||||
#print("Verify SARA connection (AT)")
|
#print("Verify SARA connection (AT)")
|
||||||
|
|||||||
Reference in New Issue
Block a user