UNPKG

@sailboat-computer/validation

Version:

Validation framework for sailboat computer v3

110 lines 3.16 kB
/** * Extended Signal K validation rules * * This file defines enhanced validation rules for Signal K data, * focusing on common marine sensors and providing more comprehensive validation. */ import { BaseValidationRule } from './base-rule'; import { ValidationResult, ValidationContext, RawSensorData } from '../types'; /** * Signal K value range validation rule * * Validates that a Signal K value is within the expected range * based on path metadata and zones. */ export declare class SignalKValueRangeRule extends BaseValidationRule { constructor(); validate(data: RawSensorData, context: ValidationContext): ValidationResult; isApplicable(data: RawSensorData): boolean; /** * Check if value is of the expected type */ private isValueTypeValid; /** * Find the zone that a value falls into */ private findZone; /** * Map zone state to validation severity */ private mapZoneStateToSeverity; /** * Calculate confidence factors for the validation result */ private calculateConfidenceFactors; /** * Get reliability score for a Signal K source */ private getSourceReliability; /** * Calculate value stability based on history */ private calculateValueStability; /** * Calculate update frequency score */ private calculateUpdateFrequency; /** * Get expected update interval for a path in milliseconds */ private getExpectedUpdateInterval; /** * Calculate cross validation score */ private calculateCrossValidation; /** * Calculate context appropriateness score */ private calculateContextAppropriateness; } /** * Signal K rate of change validation rule * * Validates that the rate of change of a Signal K value is within * expected limits based on the data type. */ export declare class SignalKRateOfChangeRule extends BaseValidationRule { constructor(); validate(data: RawSensorData, context: ValidationContext): ValidationResult; isApplicable(data: RawSensorData): boolean; /** * Get maximum rate of change for a path */ private getMaxRateOfChange; } /** * Signal K cross-validation rule * * Validates Signal K data by comparing it with related data * from other sources or paths. */ export declare class SignalKCrossValidationRule extends BaseValidationRule { constructor(); validate(data: RawSensorData, context: ValidationContext): ValidationResult; isApplicable(data: RawSensorData): boolean; /** * Get related paths for a Signal K path */ private getRelatedPaths; /** * Cross-validate Speed Over Ground */ private crossValidateSOG; /** * Cross-validate Course Over Ground */ private crossValidateCOG; /** * Cross-validate Depth */ private crossValidateDepth; /** * Cross-validate Wind data */ private crossValidateWind; } /** * Create all Signal K validation rules */ export declare function createExtendedSignalKValidationRules(): BaseValidationRule[]; //# sourceMappingURL=extended-signal-k-rules.d.ts.map