--- source_files: - DataPRO/DbAPI/Sensors/ISensors.cs generated_at: "2026-04-17T15:58:13.020676+00:00" model: "zai-org/GLM-5-FP8" schema_version: 1 sha256: "aab63aa6f9bf9fbc" --- # Documentation: ISensors Interface ## 1. Purpose The `ISensors` interface defines the database abstraction layer for sensor management within the DataPRO system. It provides a comprehensive API for CRUD operations across multiple sensor types (analog, digital input/output, squib, UART, CAN, thermocoupler) and their associated metadata (calibrations, diagnostic runs, input/output streams). This interface abstracts database persistence concerns from the rest of the application, enforcing user context and connection details for all operations. --- ## 2. Public Interface ### Analog Sensor Operations | Method | Signature | Description | |--------|-----------|-------------| | `SensorsAnalogGet` | `ulong SensorsAnalogGet(IUserDbRecord user, IConnectionDetails connection, int? sensorId, string serialNumber, string eId, out IAnalogDbRecord[] sensors)` | Retrieves analog sensors matching search criteria. Null parameters act as wildcards. | | `SensorsAnalogUpdateInsert` | `ulong SensorsAnalogUpdateInsert(IUserDbRecord user, IConnectionDetails connection, IAnalogDbRecord record)` | Commits an analog sensor record to the database (insert or update). | | `SensorsAnalogBridgeResistanceGet` | `ulong SensorsAnalogBridgeResistanceGet(IUserDbRecord user, IConnectionDetails connection, string serialNumber, out double bridgeResistance)` | Retrieves the bridge resistance for a sensor by serial number. | ### Generic Sensor Operations | Method | Signature | Description | |--------|-----------|-------------| | `SensorsGet` | `ulong SensorsGet(IUserDbRecord user, IConnectionDetails connection, string serialNumber, out ISensorDbRecord[] sensors)` | Retrieves sensors by serial number. | | `SensorsDelete` | `ulong SensorsDelete(IUserDbRecord user, IConnectionDetails connection, int sensorId, int sensorType)` | Deletes a specific sensor by ID and type. Sensor types: 0=analog, 1=digital in, 2=digital out, 3=squib, 4=UART. | | `SensorsDeleteAll` | `ulong SensorsDeleteAll(IUserDbRecord user, IConnectionDetails connection)` | Deletes ALL sensors in the database. | ### Calibration Operations | Method | Signature | Description | |--------|-----------|-------------| | `SensorCalibrationsGet` | `ulong SensorCalibrationsGet(IUserDbRecord user, IConnectionDetails connection, int? sensorId, string serialNumber, out ISensorCalDbRecord[] calibrations)` | Retrieves calibrations matching criteria. | | `SensorCalibrationsInsert` | `ulong SensorCalibrationsInsert(IUserDbRecord user, IConnectionDetails connection, ISensorCalDbRecord cal, int sensorType, bool setCalibrationId)` | Inserts a new calibration record. | | `SensorCalibrationsDelete` | `ulong SensorCalibrationsDelete(IUserDbRecord user, IConnectionDetails connection, string sensorSerialNumber, DateTime? calibrationDate, DateTime? modifyDate)` | Deletes calibrations matching criteria. Nulls are wildcards. | ### Digital Input/Output Operations | Method | Signature | Description | |--------|-----------|-------------| | `SensorsDigitalInGet` | `ulong SensorsDigitalInGet(IUserDbRecord user, IConnectionDetails connection, int? id, string serialNumber, string eId, out IDigitalInDbRecord[] records)` | Retrieves digital input settings matching criteria. | | `SensorsDigitalInUpdateInsert` | `ulong SensorsDigitalInUpdateInsert(IUserDbRecord user, IConnectionDetails connection, IDigitalInDbRecord record)` | Inserts or updates a digital input record. | | `SensorsDigitalOutGet` | `ulong SensorsDigitalOutGet(IUserDbRecord user, IConnectionDetails connection, int? Id, string serialNumber, out IDigitalOutDbRecord[] records)` | Retrieves digital output settings matching criteria. | | `SensorsDigitalOutUpdateInsert` | `ulong SensorsDigitalOutUpdateInsert(IUserDbRecord user, IConnectionDetails connection, IDigitalOutDbRecord record)` | Commits a digital output setting to the database. | ### Squib Operations | Method | Signature | Description | |--------|-----------|-------------| | `SensorsSquibGet` | `ulong SensorsSquibGet(IUserDbRecord user, IConnectionDetails connection, int? Id, string serialNumber, string eId, out ISquibDbRecord[] records)` | Retrieves squib settings matching criteria. | | `SensorsSquibUpdateInsert` | `ulong SensorsSquibUpdateInsert(IUserDbRecord user, IConnectionDetails connection, ISquibDbRecord record)` | Inserts or updates a squib setting. | ### UART Operations | Method | Signature | Description | |--------|-----------|-------------| | `SensorsUARTGet` | `ulong SensorsUARTGet(IUserDbRecord user, IConnectionDetails connection, int? Id, string SerialNumber, out IUARTRecord[] records)` | Retrieves UART settings. | | `SensorsUARTUpdateInsert` | `ulong SensorsUARTUpdateInsert(IUserDbRecord user, IConnectionDetails connection, ref IUARTRecord record)` | Inserts or updates a UART record. ID is updated on insert. | ### CAN Operations | Method | Signature | Description | |--------|-----------|-------------| | `SensorsCanGet` | `ulong SensorsCanGet(IUserDbRecord user, IConnectionDetails connection, int? Id, string SerialNumber, out ICANRecord[] records)` | Retrieves CAN records. (No XML documentation in source.) | | `SensorsCanUpdateInsert`