示例#1
0
/**
 * Called when a send settings element is released
 * @param element pointer to a chekbox or text area
 * @param dispi pointer to the caller display input
 * @return LV_ACTION_RES_OK because the list is NOT deleted in the function
 */
static lv_action_res_t win_send_settings_element_rel_action(lv_obj_t * element, lv_dispi_t * dispi)
{
    send_settings_id_t id = lv_obj_get_free_num(element);
    lv_app_inst_t * app = lv_obj_get_free_p(element);
    my_app_data_t * app_data = app->app_data;

    if(id == SEND_SETTINGS_FN) {
        app_data->send_fn = lv_btn_get_state(element) == LV_BTN_STATE_REL ? 0 : 1;
    } else if(id == SEND_SETTINGS_SIZE) {
        app_data->send_size = lv_btn_get_state(element) == LV_BTN_STATE_REL ? 0 : 1;
    } else if(id == SEND_SETTINGS_CRC) {
        app_data->send_crc = lv_btn_get_state(element) == LV_BTN_STATE_REL ? 0 : 1;

        /*TODO CRC sending is not supported yet*/
        if(app_data->send_crc != 0) {
            lv_app_notice_add("CRC sending is\nnot supported yet");
        }
    } else if(id == SEND_SETTINGS_CHUNK_SIZE) {
        lv_app_kb_open(element, LV_APP_KB_MODE_NUM | LV_APP_KB_MODE_WIN_RESIZE, send_settings_kb_close_action, send_settings_kb_ok_action);
    } else if(id == SEND_SETTINGS_CHUNK_DELAY) {
        lv_app_kb_open(element, LV_APP_KB_MODE_NUM | LV_APP_KB_MODE_WIN_RESIZE, send_settings_kb_close_action, send_settings_kb_ok_action);
    }

    return LV_ACTION_RES_OK;
}
示例#2
0
static lv_res_t list_move(lv_obj_t *btn)
{
    if(lv_obj_get_free_num(btn) == 0) {
        lv_list_up(list1);
        lv_list_up(list2);
        lv_list_up(list3);
        lv_list_up(list4);
    } else {
        lv_list_down(list1);
        lv_list_down(list2);
        lv_list_down(list3);
        lv_list_down(list4);
    }
    return LV_RES_OK;
}
示例#3
0
/**
 * Called when a send setting is typed and 'Close' pressed on the App. keyboard.
 * The function reverts the original value in the text area.
 * @param ta pointer to a text area
 */
static void send_settings_kb_close_action(lv_obj_t * ta)
{
    send_settings_id_t id = lv_obj_get_free_num(ta);
    lv_app_inst_t * app = lv_obj_get_free_p(ta);
    my_app_data_t * app_data = app->app_data;

    char buf[32];
    buf[0] = '\0';

    if(id == SEND_SETTINGS_CHUNK_DELAY) {
        sprintf(buf, "%d", app_data->chunk_size);
    } else if(id == SEND_SETTINGS_CHUNK_SIZE) {
        sprintf(buf, "%d", app_data->chunk_size);
    }
    lv_ta_set_text(ta, buf);
}
示例#4
0
/**
 * Called when a send setting is typed and 'Ok' pressed on the App. keyboard.
 * The function saves teh new value.
 * @param ta pointer to a text area
 */
static void send_settings_kb_ok_action(lv_obj_t * ta)
{
    send_settings_id_t id = lv_obj_get_free_num(ta);
    lv_app_inst_t * app = lv_obj_get_free_p(ta);
    my_app_data_t * app_data = app->app_data;

    int num;
    sscanf(lv_ta_get_txt(ta), "%d", &num);

    if(id == SEND_SETTINGS_CHUNK_DELAY) {
        if(num > LV_APP_FILES_CHUNK_MAX_TIME) num = LV_APP_FILES_CHUNK_MAX_TIME;
        if(num < LV_APP_FILES_CHUNK_MIN_TIME) num = LV_APP_FILES_CHUNK_MIN_TIME;
        app_data->chunk_delay = (uint16_t) num;
    } else if(id == SEND_SETTINGS_CHUNK_SIZE) {
        if(num > LV_APP_FILES_CHUNK_MAX_SIZE) num = LV_APP_FILES_CHUNK_MAX_SIZE;
        if(num < LV_APP_FILES_CHUNK_MIN_SIZE) num = LV_APP_FILES_CHUNK_MIN_SIZE;
        app_data->chunk_size= (uint16_t) num;
    }

}