Multitech xDot Utils

MultitechDot.h

Committer:
lucian@192-168-0-103.rdsnet.ro
Date:
2018-02-19
Revision:
2:8d1c64670642
Parent:
1:73cea350269e
Child:
3:7fa5603c10dc

File content as of revision 2:8d1c64670642:

#ifndef MBED_MULTITECHDOT_H
#define MBED_MULTITECHDOT_H

#include "mbed.h"
#include "mDot.h"
#include "MTSLog.h"
#include "MTSText.h"
#include "dot_defs.h"
#include "xdot_low_power.h"

class MultitechDot : public mDot {
public:

    static MultitechDot *get_instance(struct dot_config *config);

    void config(struct dot_config *config);

    struct dot_config *get_config();

    void display_config();

    //todo use dot_config param
    void update_ota_config_name_phrase(
            std::string network_name, std::string network_passphrase, uint8_t frequency_sub_band, bool public_network,
            uint8_t ack
    );

    //todo use dot_config param
    void update_ota_config_id_key(
            uint8_t *network_id, uint8_t *network_key, uint8_t frequency_sub_band, bool public_network, uint8_t ack
    );

    void update_manual_config(struct dot_config *config);

    //todo use dot_config param
    void update_peer_to_peer_config(
            uint8_t *network_address, uint8_t *network_session_key, uint8_t *data_session_key, uint32_t tx_frequency,
            uint8_t tx_datarate, uint8_t tx_power
    );

    void update_network_link_check_config(uint8_t link_check_count, uint8_t link_check_threshold);

    void join_network();

    void deep_sleep(uint32_t min_delay_s);

    void sleep_wake_rtc_only(bool deepsleep);

    void sleep_wake_interrupt_only(bool deepsleep);

    void sleep_wake_rtc_or_interrupt(uint32_t delay_s, bool deepsleep);

    void sleep_save_io();

    void sleep_reset_hsi();

    void sleep_configure_io();

    void sleep_restore_io();

    void send_data(std::vector<uint8_t> data);

    /**
    * Set debug mode so that debug logs are enabled
    * @param is_debug_mode true to enable debug mode, false otherwise
    */
    void set_debug_mode(bool is_debug_mode);


    /**
     * Set sleep time
     * @param sleep_time sleep time in seconds
     */
    void set_sleep_time(uint32_t sleep_time);

protected:
    struct dot_config *_config;
};


#endif //MBED_MULTITECHDOT_H