Загрузка данных


namespace sensors {

    interface ColorBoundaries {
        whiteBoundary: number;
        blackBoundary: number;
        coloredBoundary: number;
        redBoundary: number;
        orangeBoundary: number;
        brownBoundary: number;
        yellowBoundary: number;
        greenBoundary: number;
        blueBoundary: number;
        purpleBoundary: number;
    }

    // let minRgbColorSensors: number[][] = [[0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0]]; // Минимальные значения RGB для датчиков цвета
    // let maxRgbColorSensors: number[][] = [[255, 255, 255], [255, 255, 255], [255, 255, 255], [255, 255, 255]]; // Максимальные значения RGB для датчиков цвета

    let whiteBoundaryColorSensors: number[] = [5, 5, 5, 5];
    let blackBoundaryColorSensors: number[] = [1, 1, 1, 1];
    let coloredBoundaryColorSensors: number[] = [50, 50, 50, 50];
    let redBoundaryColorSensors: number[] = [25, 25, 25, 25];
    let orangeBoundaryColorSensors: number[] = [-1, -1, -1, -1];
    let brownBoundaryColorSensors: number[] = [-1, -1, -1, -1];
    let yellowBoundaryColorSensors: number[] = [100, 100, 100, 100];
    let greenBoundaryColorSensors: number[] = [170, 170, 170, 170];
    let blueBoundaryColorSensors: number[] = [270, 270, 270, 270];
    let purpleBoundaryColorSensors: number[] = [-1, -1, -1, -1];

    // export function setHtColorSensorMinRgbValues(sensor: sensors.HiTechnicColorSensor2, minR: number, minG: number, minB: number) {
    //     if (minR < 0 || minG < 0 || minB < 0) {
    //         console.log(`Warning: Negative min RGB values for CS${sensor.port()}. Using absolute value.`);
    //     }
    //     const index = sensor.port() - 1;
    //     minRgbColorSensors[index] = [Math.abs(minR), Math.abs(minG), Math.abs(minB)];
    // }

    // export function setHtColorSensorMaxRgbValues(sensor: sensors.HiTechnicColorSensor2, maxR: number, maxG: number, maxB: number) {
    //     if (maxR < 0 || maxG < 0 || maxB < 0) {
    //         console.log(`Warning: Negative max RGB values for CS${sensor.port()}. Using absolute value.`);
    //     }
    //     const index = sensor.port() - 1;
    //     maxRgbColorSensors[index] = [Math.abs(maxR), Math.abs(maxG), Math.abs(maxB)];
    // }

    // export function getMinRgbHtColorSensor(sensor: sensors.HiTechnicColorSensor2): number[] {
    //     const index = sensor.port() - 1;
    //     return minRgbColorSensors[index];
    // }

    // export function getMaxRgbHtColorSensor(sensor: sensors.HiTechnicColorSensor2): number[] {
    //     const index = sensor.port() - 1;
    //     return maxRgbColorSensors[index];
    // }

    export function setHsvlToColorNumBoundariesHtColorSensor(sensor: sensors.HiTechnicColorSensor2, boundaries: ColorBoundaries) {
        const index = sensor.port() - 1;
        whiteBoundaryColorSensors[index] = boundaries.whiteBoundary;
        blackBoundaryColorSensors[index] = boundaries.blackBoundary;
        coloredBoundaryColorSensors[index] = boundaries.coloredBoundary;
        redBoundaryColorSensors[index] = boundaries.redBoundary;
        orangeBoundaryColorSensors[index] = boundaries.orangeBoundary;
        brownBoundaryColorSensors[index] = boundaries.brownBoundary;
        yellowBoundaryColorSensors[index] = boundaries.yellowBoundary;
        greenBoundaryColorSensors[index] = boundaries.greenBoundary;
        blueBoundaryColorSensors[index] = boundaries.blueBoundary;
        purpleBoundaryColorSensors[index] = boundaries.purpleBoundary;
    }

    export function getHsvlToColorNumBoundariesHtColorSensor(sensor: sensors.HiTechnicColorSensor2): ColorBoundaries {
        const index = sensor.port() - 1;
        return {
            whiteBoundary: whiteBoundaryColorSensors[index],
            blackBoundary: blackBoundaryColorSensors[index],
            coloredBoundary: coloredBoundaryColorSensors[index],
            redBoundary: redBoundaryColorSensors[index],
            orangeBoundary: orangeBoundaryColorSensors[index],
            brownBoundary: brownBoundaryColorSensors[index],
            yellowBoundary: yellowBoundaryColorSensors[index],
            greenBoundary: greenBoundaryColorSensors[index],
            blueBoundary: blueBoundaryColorSensors[index],
            purpleBoundary: purpleBoundaryColorSensors[index]
        }
    }

}