Example #1
0
bool __plugin_setting_dataxserver(void *class_ptr, char *method_name, void *input_pack)
{
    uint8_t *arg_ptr = (uint8_t *)input_pack;
    char *ip;
    bool res = true;

    memcpy(&ip, arg_ptr, sizeof(char *)); arg_ptr += sizeof(char *);

    Serial1.printf("%s\r\n", ip);
    if (extract_ip(ip, EEPROM.getDataPtr() + EEP_DATA_SERVER_IP))
    {
        memcpy(EEPROM.getDataPtr() + EEP_DATA_SERVER_ADDR, ip, strlen(ip));
        memset(EEPROM.getDataPtr() + EEP_DATA_SERVER_ADDR + strlen(ip) , 0, 1);
        EEPROM.commit();
        stream_print(STREAM_CMD, TYPE_STRING, "\"ok\"");
        response_msg_close(STREAM_CMD);
        delay(100);
        fire_reboot(NULL);
    } else
    {
        stream_print(STREAM_CMD, TYPE_STRING, "\"failed, bad ip format.\"");
        return false;
    }

    return true;
}
Example #2
0
/** for data xchange channel */
bool __plugin_pm_sleep(void *class_ptr, char *method_name, void *input_pack)
{
    uint8_t *arg_ptr = (uint8_t *)input_pack;
    uint32_t sec;

    memcpy(&sec, arg_ptr, sizeof(uint32_t)); arg_ptr += sizeof(uint32_t);

    Serial1.printf("deep sleep %lu sec\r\n", sec);
    writer_print(TYPE_STRING, "\"ok, deep sleep\"");
    response_msg_close(STREAM_DATA);
    delay(100);
    //turn off grove's power
    digitalWrite(SWITCH_GROVE_POWER, 0);

    system_deep_sleep(sec * 1000000);

    return true;
}