Помощь с библиотекой OneWireHub

debager
Offline
Зарегистрирован: 05.10.2017

Нужна помощь по интерпретации инструкций языка С

код из примера библиотеки передает установленный ID по 1wire

объявляется он так.

auto ds1990A = DS2401( 0x81, 0x00, 0xA0, 0x90, 0x19, 0xDA, 0x00 );

Он больше не меняется в основном цикле .

Мне наоборот необходимо менять код ID в основном цикле LOOP  напишите код как это можно реализовать.

И поясните  auto ds1990A =  что это означает в си я не нашел.

 

ссылки на библиотеку

https://github.com/orgua/OneWireHub/blob/master/src/OneWireHub.h

https://github.com/orgua/OneWireHub/blob/master/src/DS2401.h

#include "OneWireHub.h"
#include "DS2401.h"  // Serial Number

constexpr uint8_t pin_led       { 13 };
constexpr uint8_t pin_onewire   { 8 };

auto hub     = OneWireHub(pin_onewire);
auto ds2401A = DS2401( DS2401::family_code, 0x00, 0xA0, 0x01, 0x24, 0xDA, 0x00 );    // Work - Serial Number
auto ds2401B = DS2401( DS2401::family_code, 0x00, 0xB0, 0x01, 0x24, 0xDA, 0x00 );    // Work - Serial Number
auto ds2401C = DS2401( DS2401::family_code, 0x00, 0xC0, 0x01, 0x24, 0xDA, 0x00 );
auto ds1990A = DS2401( 0x81, 0x00, 0xA0, 0x90, 0x19, 0xDA, 0x00 );

bool blinking(void);


void setup()
{
    Serial.begin(115200);
    Serial.println("OneWire-Hub DS2401 Serial Number used as iButton");

    pinMode(pin_led, OUTPUT);

    // Setup OneWire
    hub.attach(ds2401C); // always online
    hub.attach(ds1990A); // always online

    // Test-Cases: the following code is just to show basic functions, can be removed any time
    // ds2401A and B alternate with each LED-Blink-Change, so there is only one online at a time
    // ds2401C is always online

    Serial.println("config done");
}

void loop()
{
    // following function must be called periodically
    hub.poll();

    // Blink triggers the state-change
    if (blinking())
    {
        static bool flipFlop = 0;
        // Change between Sensor A and B every 50 seconds
        if (flipFlop)
        {
            flipFlop = 0;
            hub.detach(ds2401A);
            hub.attach(ds2401B);
            Serial.println("B is active");
        }
        else
        {
            flipFlop = 1;
            hub.detach(ds2401B);
            hub.attach(ds2401A);
            Serial.println("A is active");
        }
    }
}

bool blinking(void)
{
    const  uint32_t interval    = 50000;          // interval at which to blink (milliseconds)
    static uint32_t nextMillis  = millis();     // will store next time LED will updated

    if (millis() > nextMillis)
    {
        nextMillis += interval;             // save the next time you blinked the LED
        static uint8_t ledState = LOW;      // ledState used to set the LED
        if (ledState == LOW)    ledState = HIGH;
        else                    ledState = LOW;
        digitalWrite(pin_led, ledState);
        return 1;
    }
    return 0;
}

 

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

debager пишет:

Нужна помощь по интерпретации инструкций языка С

Интерпретаторы C/C++

debager пишет:

напишите код 

И поясните  

Щас, тока штаны подтяну. Мама слово "пожалуйста" не учила говорить?

debager пишет:

auto ds1990A =  что это означает в си я не нашел.

В смысле, не искал.

debager
Offline
Зарегистрирован: 05.10.2017

В смысле не нашел понимания данной конструкции так как слаб в си   - умник!

например если:

auto ds1990A = DS2401( 0x01, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A ); 

эквивалентро

byte data[7] = {0x01, 0x00, 0xA0, 0x00, 0x01, 0x00, 0xA0}; 

компилятор не принимает такую замену

 

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

debager пишет:

В смысле не нашел понимания данной конструкции так как слаб в си   - умник!

В смысле, что поленился прочить что означает слово auto (а если надо, то и какую-нибудь книжку по языку) - дурик!

debager пишет:

например если:

auto ds1990A = DS2401( 0x01, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A ); 

эквивалентро

byte data[7] = {0x01, 0x00, 0xA0, 0x00, 0x01, 0x00, 0xA0}; 

компилятор не принимает такую замену

Ну, "например, если" бы это было эквивалентно, то принял был. Беда в том, что эквивалентность тут на уровне "в огороде бузина, а в Киеве дядько".

debager
Offline
Зарегистрирован: 05.10.2017

ЕвгенийП пишет:

debager пишет:

В смысле не нашел понимания данной конструкции так как слаб в си   - умник!

В смысле, что поленился прочить что означает слово auto (а если надо, то и какую-нибудь книжку по языку) - дурик!

debager пишет:

например если:

auto ds1990A = DS2401( 0x01, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A ); 

эквивалентро

byte data[7] = {0x01, 0x00, 0xA0, 0x00, 0x01, 0x00, 0xA0}; 

компилятор не принимает такую замену

Ну, "например, если" бы это было эквивалентно, то принял был. Беда в том, что эквивалентность тут на уровне "в огороде бузина, а в Киеве дядько".

Мне помощь нужна а не твои рассуждения не знаешь сам не отвечай .

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

debager, да ты не только в С слаб.

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

debager пишет:

Мне помощь нужна а не твои рассуждения не знаешь сам не отвечай .

Вам в самом первом посте было сказано как можно получить помощь, помните там фразочка была: "Мама слово "пожалуйста" не учила говорить?". Но Вы эту фразу либо, в силу недоразвитости мозга, не поняли, либо, действительно не учила. Ну, а значит за помощью Вам только вот сюда. Там помогут.