Files
DP44/docs/ai/DataPRO/DbAPI/Sensors.md

72 lines
5.2 KiB
Markdown
Raw Normal View History

2026-04-17 14:55:32 -04:00
---
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`