iterate()

in source/simulator/lib/device/generators/vehicle/dynamics/oil-temp-calc.js [25:53]


    iterate(snapshot) {

        let TEMP_COEFFICIENT = 2.0417;
        let snapshotTriggers = snapshot.triggers;

        let currentTime = moment();
        let timeDelta = moment.duration(currentTime.diff(this.lastCalc));
        let timeStep = timeDelta.get('seconds') + (timeDelta.get('milliseconds').toFixed(4) / 1000);
        this.lastCalc = moment();
        this.totalTime = this.totalTime + timeStep;

        if (this.totalTime <= 120 && !snapshotTriggers.highOilTemp) {
            let _oiltemp = timeStep * TEMP_COEFFICIENT; // Time * degree/sec.
            this.data = this.data + _oiltemp;
            this.operatingZone = this.data;
        } else {
            // normal oil temp jitter
            let _upper = this.operatingZone + 5;
            let _lower = this.operatingZone - 5;
            this.data = (Math.random() * (_upper - _lower) + _lower);
        }

        if (snapshotTriggers) {
            if (snapshotTriggers.highOilTemp && !this.triggerTripped) {
                this.operatingZone = this._getHighTemp();
                this.triggerTripped = true;
            }
        }
    }