fix: remove non-existent DeviceInfo fields from ach_server log and dict
calibration_date, aux_trigger, setup_name etc. don't exist directly on DeviceInfo — they live in DeviceInfo.compliance_config (ComplianceConfig). _device_info_to_dict now accesses them via cc = d.compliance_config. Log line updated to show serial/firmware/model/event_count instead. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
+18
-14
@@ -210,10 +210,11 @@ class AchSession:
|
|||||||
serial = device_info.serial
|
serial = device_info.serial
|
||||||
_save_json(session_dir / "device_info.json", _device_info_to_dict(device_info))
|
_save_json(session_dir / "device_info.json", _device_info_to_dict(device_info))
|
||||||
log.info(
|
log.info(
|
||||||
" [OK] Device: serial=%s firmware=%s calibration=%s",
|
" [OK] Device: serial=%s firmware=%s model=%s events=%d",
|
||||||
serial,
|
serial,
|
||||||
device_info.firmware_version,
|
device_info.firmware_version,
|
||||||
device_info.calibration_date,
|
device_info.model,
|
||||||
|
device_info.event_count or 0,
|
||||||
)
|
)
|
||||||
except Exception as exc:
|
except Exception as exc:
|
||||||
log.error(" [FAIL] Device info failed: %s", exc)
|
log.error(" [FAIL] Device info failed: %s", exc)
|
||||||
@@ -319,21 +320,24 @@ def _save_json(path: Path, obj: object) -> None:
|
|||||||
|
|
||||||
|
|
||||||
def _device_info_to_dict(d: DeviceInfo) -> dict:
|
def _device_info_to_dict(d: DeviceInfo) -> dict:
|
||||||
|
cc = d.compliance_config
|
||||||
return {
|
return {
|
||||||
"serial": d.serial,
|
"serial": d.serial,
|
||||||
"firmware_version": d.firmware_version,
|
"firmware_version": d.firmware_version,
|
||||||
"calibration_date": str(d.calibration_date) if d.calibration_date else None,
|
"dsp_version": d.dsp_version,
|
||||||
"aux_trigger": d.aux_trigger,
|
"model": d.model,
|
||||||
"setup_name": d.setup_name,
|
"event_count": d.event_count,
|
||||||
"sample_rate": d.sample_rate,
|
# compliance config fields (None if 1A read failed)
|
||||||
"record_time": d.record_time,
|
"setup_name": cc.setup_name if cc else None,
|
||||||
"trigger_level_geo": d.trigger_level_geo,
|
"sample_rate": cc.sample_rate if cc else None,
|
||||||
"alarm_level_geo": d.alarm_level_geo,
|
"record_time": cc.record_time if cc else None,
|
||||||
"max_range_geo": d.max_range_geo,
|
"trigger_level_geo": cc.trigger_level_geo if cc else None,
|
||||||
"project": d.project,
|
"alarm_level_geo": cc.alarm_level_geo if cc else None,
|
||||||
"client": d.client,
|
"max_range_geo": cc.max_range_geo if cc else None,
|
||||||
"operator": d.operator,
|
"project": cc.project if cc else None,
|
||||||
"sensor_location": d.sensor_location,
|
"client": cc.client if cc else None,
|
||||||
|
"operator": cc.operator if cc else None,
|
||||||
|
"sensor_location": cc.sensor_location if cc else None,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user