Надводный борт: виджет Индикатор не работает

Я пытаюсь сравнить две метки времени, и если разница больше, чем х секунд, укажите "офлайн". Вот что у меня в редакторе js виджета:

// Example: Convert temp from C to F and truncate to 2 decimal places.
// return (datasources["MyDatasource"].sensor.tempInF * 1.8 + 32).toFixed(2);
console.log("Checking Time Difference")
var timediff = (new Date) - datasources["ConsentDS"].Timestamp 
console.log(timediff)
if timediff > 1 * 60 * 1000 {
    return 1
} else {
    return 0
}

Индикатор всегда остается "онлайн", даже если разница должна быть больше 30 секунд. Он даже не пишет в консоль, как я ожидаю.

Я не могу найти какую-либо документацию, поэтому я даже не уверен, должен ли я возвращать 1 или true или elephant:(

1 ответ

Решение

Поэтому большая часть моей проблемы заключалась в синтаксисе javascript, как сразу заметили @Donut и, вероятно, другие.

Вот рабочая версия:

var ts = new Date(datasources["ConsentDS"].Timestamp).getTime();
var ms = new Date().getTime();
var d = ms - ts;

if (d > 5 * 60 * 1000) {
    return 0;
} else {
    return 1;
}

Если текущее время минус метка времени в данных превышает 30 секунд (30000 миллисекунд), то возвращается 0, что является статусом "OFF" в виджете индикатора.

Другие вопросы по тегам