Manages the 1-wire bus

Dependents:   oldheating heating

web/web-1wire-class.js

Committer:
andrewboyson
Date:
2019-04-27
Revision:
2:79cad6a51fd0
Parent:
http/http-1wire-class.js@ 1:c272b1fcc834
Child:
8:ceafef18cbf7

File content as of revision 2:79cad6a51fd0:

//OneWire script
'use strict';

class OneWire
{
    static DS18B20ToString(text)
    {
        switch (text)
        {
            case '7FFF': return 'CRC error'                     ;
            case '7FFE': return 'ROM not found'                 ;
            case '7FFD': return 'Timed out'                     ;
            case '7FFC': return 'No device detected after reset';
            case '7FFB': return 'Device removed during search'  ;
        }
        let isNegative = false;
        switch(text.charAt(0))
        {
            case '8': text = '7' + text.substr(1, 3); isNegative = true; break;
            case '9': text = '6' + text.substr(1, 3); isNegative = true; break;
            case 'A': text = '5' + text.substr(1, 3); isNegative = true; break;
            case 'B': text = '4' + text.substr(1, 3); isNegative = true; break;
            case 'C': text = '3' + text.substr(1, 3); isNegative = true; break;
            case 'D': text = '2' + text.substr(1, 3); isNegative = true; break;
            case 'E': text = '1' + text.substr(1, 3); isNegative = true; break;
            case 'F': text = '0' + text.substr(1, 3); isNegative = true; break;
        }
        let value = parseInt(text, 16) / 16.0;
        if (isNegative) value = -value;
        return value.toFixed(1);
    }
}