<commit_before>wb-homa-drivers
===============

MQTT drivers for compatible with HomA conventions
    * Kernel 1-wire interface driver (currently thermometers only)
    * GPIO-drivern switches driver
    * Ninja Cloud (ninjablocks.com) bridge


Lanuage: C++11, g++-4.7 is required




wb-homa-adc
==========
Драйвер ADC запускается командой `/etc/init.d/wb-homa-modbus start`
При запуске драйвер считывает конфигурацию для каналов с файла 
`/etc/wb-homa-adc.conf`, ниже приведен пример конфигурационного файла
с объяснением параметров.
```
// Configuration options
{
    // Под каким именем будет опубликовано устройство в MQTT
    // то есть ../meta/name ADCs
    "device_name" : "ADCs",
    "debug" : false,
    "iio_channels" : [
        {
    // режим работы драйвера однопоточный, данное значение указывает 
    // сколько раз считать значение в данном канале за один проход, 
    // по умолчанию 10
                "readings_number" : 10,

    // указывает сколько значащих цифр после запятой выводить у данного канала
    // по умолчанию 3
                "decimal_places" : 3,

    // указывает по скольки выборкам происходит усреднение значения
    // указывается в кратных от readings_number, в примере 4 * readings_number
                "averaging_window": 4,
        
    // номер физического канала, указывает с какого файла будет читаться значение :
    // /bus/iio/devices/iio:device0/in_voltage1_raw , т.е. in_voltageНОМЕРКАНАЛА_raw
                "channel_number" : 0,
       
    // под каким id будет публиковаться данный канал в MQTT 
    // то есть /devices/wb-adc/controls/ID 
                "id" : "Vin",
                "multiplier" : 3.73
                
        },

        {
    // тип mux указывает, что канал мультиплексированный
            "type" : "mux",
           
            "averaging_window": 4,

    // указывает сколько времени драйверу ждать после переключения 
    // мультиплексора
         
            "min_switch_interval_ms": 100,
       
   // гпио, которые переключают мультиплексор, важно расположить 
   // в правильном порядке, по умолчанию, поставлены корректно.
            "gpios" : [51, 57, 54],
            "channels" : [
    // порядок в котором каналы будут публиковаться в MQTT 
    // совпадает с порядком, по которому они перечислены в конфиге
                    {
                        "id" : "A1",
                        "multiplier" : 0.903,
            
    // к какому мультиплексированному каналу АЦП привязан данный канал 
                        "mux_channel_number" : 3
                        "readings_number" : 10,
                    },
                    {
                        "id" : "A2",
                        "multiplier" : 0.903,
                        "mux_channel_number" : 4

                    },
                    {
                        "id" : "A3",
                        "multiplier" : 0.903,
                        "mux_channel_number" : 6

                    },
                    {
                        "id" : "A4",
                        "multiplier" : 3.73,
                        "mux_channel_number" : 0
                    },
                    {
                        "id" : "A5",
                        "multiplier" : 3.73,
                        "mux_channel_number" : 1

                    },
                    {
                        "id" : "R1",
                        "multiplier" : 0.497,
                        "mux_channel_number" : 7

                    },
                    {
                        "id" : "R2",
                        "multiplier" : 0.497,
                        "mux_channel_number" : 5

                    },
                    {<commit_msg>described discharge_channel and max_voltage fields<commit_after>wb-homa-drivers
===============

MQTT drivers for compatible with HomA conventions
    * Kernel 1-wire interface driver (currently thermometers only)
    * GPIO-drivern switches driver
    * Ninja Cloud (ninjablocks.com) bridge


Lanuage: C++11, g++-4.7 is required




wb-homa-adc
==========
Драйвер ADC запускается командой `/etc/init.d/wb-homa-modbus start`
При запуске драйвер считывает конфигурацию для каналов с файла 
`/etc/wb-homa-adc.conf`, ниже приведен пример конфигурационного файла
с объяснением параметров.
```
// Configuration options
{
    // Под каким именем будет опубликовано устройство в MQTT
    // то есть ../meta/name ADCs
    "device_name" : "ADCs",
    "debug" : false,
    "iio_channels" : [
        {
    // режим работы драйвера однопоточный, данное значение указывает 
    // сколько раз считать значение в данном канале за один проход, 
    // по умолчанию 10
                "readings_number" : 10,

    // указывает сколько значащих цифр после запятой выводить у данного канала
    // по умолчанию 3
                "decimal_places" : 3,
    // указывает по скольки выборкам происходит усреднение значения
    // указывается в кратных от readings_number, в примере 4 * readings_number
                "averaging_window": 4,
        
    // номер физического канала, указывает с какого файла будет читаться значение :
    // /bus/iio/devices/iio:device0/in_voltage1_raw , т.е. in_voltageНОМЕРКАНАЛА_raw
                "channel_number" : 0,
    // указывает максимальное значение напряжение, которое может быть измерено
    // на данном канале (следует задавать только для особых физических каналов),
    // например 7 канал, с большими значениями scale
                "max_voltage" : 15,

    // под каким id будет публиковаться данный канал в MQTT 
    // то есть /devices/wb-adc/controls/ID 
                "id" : "Vin",
                "multiplier" : 3.73
                
        },

        {
    // тип mux указывает, что канал мультиплексированный
            "type" : "mux",
           
            "averaging_window": 4,

    // указывает сколько времени драйверу ждать после переключения 
    // мультиплексора
         
            "min_switch_interval_ms": 100,
       
   // гпио, которые переключают мультиплексор, важно расположить 
   // в правильном порядке, по умолчанию, поставлены корректно.
            "gpios" : [51, 57, 54],
            "channels" : [
    // порядок в котором каналы будут публиковаться в MQTT 
    // совпадает с порядком, по которому они перечислены в конфиге
                    {
                        "id" : "A1",
                        "multiplier" : 0.903,
            
    // к какому мультиплексированному каналу АЦП привязан данный канал 
                        "mux_channel_number" : 3
                        "readings_number" : 10,
                    },
                    {
                        "id" : "A2",
                        "multiplier" : 0.903,
                        "mux_channel_number" : 4

                    },
                    {
                        "id" : "A3",
                        "multiplier" : 0.903,
                        "mux_channel_number" : 6

                    },
                    {
                        "id" : "A4",
                        "multiplier" : 3.73,
                        "mux_channel_number" : 0
                    },
                    {
                        "id" : "A5",
                        "multiplier" : 3.73,
                        "mux_channel_number" : 1

                    },
                    {
                        "id" : "R1",
                        "multiplier" : 0.497,
                        "mux_channel_number" : 7,
    // указывает на какой канал мультиплексору следует переключиться для разрядки 
    // (использовать для каналов R1-R2) перед тем как переключиться на данный канал
                        "discharge_channel" : 3


                    },
                    {
                        "id" : "R2",
                        "multiplier" : 0.497,
                        "mux_channel_number" : 5,
                        "discharge_channel" : 3

                    },
                    {
{'fraction_non_alphanumeric': 0.08897243107769423, 'fraction_numerical': 0.01867167919799499, 'mean_word_length': 1.305980930366946, 'pattern_counts': {'":': 6, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '1128263', 'n_tokens_mistral': 2737, 'n_tokens_neox': 2719, 'n_words': 583}