Change mp_method_t.name from const char * to qstr.
Addresses issue #377.
This commit is contained in:
parent
69b3ba0df3
commit
c12b2213c1
|
@ -178,8 +178,8 @@ STATIC mp_obj_t mp_builtin_dir(uint n_args, const mp_obj_t *args) {
|
|||
}
|
||||
}
|
||||
if (meth != NULL) {
|
||||
for (; meth->name != NULL; meth++) {
|
||||
mp_obj_list_append(dir, MP_OBJ_NEW_QSTR(qstr_from_str(meth->name)));
|
||||
for (; meth->name != MP_QSTR_NULL; meth++) {
|
||||
mp_obj_list_append(dir, MP_OBJ_NEW_QSTR(meth->name));
|
||||
}
|
||||
}
|
||||
return dir;
|
||||
|
|
2
py/obj.h
2
py/obj.h
|
@ -96,7 +96,7 @@ typedef bool (*mp_store_attr_fun_t)(mp_obj_t self_in, qstr attr, mp_obj_t value)
|
|||
typedef bool (*mp_store_item_fun_t)(mp_obj_t self_in, mp_obj_t index, mp_obj_t value); // return true if store succeeded
|
||||
|
||||
typedef struct _mp_method_t {
|
||||
const char *name;
|
||||
qstr name;
|
||||
mp_const_obj_t fun;
|
||||
} mp_method_t;
|
||||
|
||||
|
|
|
@ -150,8 +150,8 @@ STATIC machine_int_t array_get_buffer(mp_obj_t o_in, buffer_info_t *bufinfo, int
|
|||
}
|
||||
|
||||
STATIC const mp_method_t array_type_methods[] = {
|
||||
{ "append", &array_append_obj },
|
||||
{ NULL, NULL },
|
||||
{ MP_QSTR_append, &array_append_obj },
|
||||
{ MP_QSTR_NULL, NULL }, // end-of-list sentinel
|
||||
};
|
||||
|
||||
const mp_obj_type_t mp_type_array = {
|
||||
|
|
24
py/objdict.c
24
py/objdict.c
|
@ -424,18 +424,18 @@ STATIC MP_DEFINE_CONST_FUN_OBJ_1(dict_values_obj, dict_values);
|
|||
/* dict constructors & public C API */
|
||||
|
||||
STATIC const mp_method_t dict_type_methods[] = {
|
||||
{ "clear", &dict_clear_obj },
|
||||
{ "copy", &dict_copy_obj },
|
||||
{ "fromkeys", &dict_fromkeys_obj },
|
||||
{ "get", &dict_get_obj },
|
||||
{ "items", &dict_items_obj },
|
||||
{ "keys", &dict_keys_obj },
|
||||
{ "pop", &dict_pop_obj },
|
||||
{ "popitem", &dict_popitem_obj },
|
||||
{ "setdefault", &dict_setdefault_obj },
|
||||
{ "update", &dict_update_obj },
|
||||
{ "values", &dict_values_obj },
|
||||
{ NULL, NULL }, // end-of-list sentinel
|
||||
{ MP_QSTR_clear, &dict_clear_obj },
|
||||
{ MP_QSTR_copy, &dict_copy_obj },
|
||||
{ MP_QSTR_fromkeys, &dict_fromkeys_obj },
|
||||
{ MP_QSTR_get, &dict_get_obj },
|
||||
{ MP_QSTR_items, &dict_items_obj },
|
||||
{ MP_QSTR_keys, &dict_keys_obj },
|
||||
{ MP_QSTR_pop, &dict_pop_obj },
|
||||
{ MP_QSTR_popitem, &dict_popitem_obj },
|
||||
{ MP_QSTR_setdefault, &dict_setdefault_obj },
|
||||
{ MP_QSTR_update, &dict_update_obj },
|
||||
{ MP_QSTR_values, &dict_values_obj },
|
||||
{ MP_QSTR_NULL, NULL }, // end-of-list sentinel
|
||||
};
|
||||
|
||||
const mp_obj_type_t dict_type = {
|
||||
|
|
|
@ -193,10 +193,10 @@ STATIC mp_obj_t gen_instance_close(mp_obj_t self_in) {
|
|||
STATIC MP_DEFINE_CONST_FUN_OBJ_1(gen_instance_close_obj, gen_instance_close);
|
||||
|
||||
STATIC const mp_method_t gen_type_methods[] = {
|
||||
{ "close", &gen_instance_close_obj },
|
||||
{ "send", &gen_instance_send_obj },
|
||||
{ "throw", &gen_instance_throw_obj },
|
||||
{ NULL, NULL }, // end-of-list sentinel
|
||||
{ MP_QSTR_close, &gen_instance_close_obj },
|
||||
{ MP_QSTR_send, &gen_instance_send_obj },
|
||||
{ MP_QSTR_throw, &gen_instance_throw_obj },
|
||||
{ MP_QSTR_NULL, NULL }, // end-of-list sentinel
|
||||
};
|
||||
|
||||
const mp_obj_type_t gen_instance_type = {
|
||||
|
|
24
py/objlist.c
24
py/objlist.c
|
@ -329,18 +329,18 @@ STATIC MP_DEFINE_CONST_FUN_OBJ_1(list_reverse_obj, list_reverse);
|
|||
STATIC MP_DEFINE_CONST_FUN_OBJ_KW(list_sort_obj, 0, mp_obj_list_sort);
|
||||
|
||||
STATIC const mp_method_t list_type_methods[] = {
|
||||
{ "append", &list_append_obj },
|
||||
{ "clear", &list_clear_obj },
|
||||
{ "copy", &list_copy_obj },
|
||||
{ "count", &list_count_obj },
|
||||
{ "extend", &list_extend_obj },
|
||||
{ "index", &list_index_obj },
|
||||
{ "insert", &list_insert_obj },
|
||||
{ "pop", &list_pop_obj },
|
||||
{ "remove", &list_remove_obj },
|
||||
{ "reverse", &list_reverse_obj },
|
||||
{ "sort", &list_sort_obj },
|
||||
{ NULL, NULL }, // end-of-list sentinel
|
||||
{ MP_QSTR_append, &list_append_obj },
|
||||
{ MP_QSTR_clear, &list_clear_obj },
|
||||
{ MP_QSTR_copy, &list_copy_obj },
|
||||
{ MP_QSTR_count, &list_count_obj },
|
||||
{ MP_QSTR_extend, &list_extend_obj },
|
||||
{ MP_QSTR_index, &list_index_obj },
|
||||
{ MP_QSTR_insert, &list_insert_obj },
|
||||
{ MP_QSTR_pop, &list_pop_obj },
|
||||
{ MP_QSTR_remove, &list_remove_obj },
|
||||
{ MP_QSTR_reverse, &list_reverse_obj },
|
||||
{ MP_QSTR_sort, &list_sort_obj },
|
||||
{ MP_QSTR_NULL, NULL }, // end-of-list sentinel
|
||||
};
|
||||
|
||||
const mp_obj_type_t list_type = {
|
||||
|
|
36
py/objset.c
36
py/objset.c
|
@ -424,24 +424,24 @@ STATIC mp_obj_t set_binary_op(int op, mp_obj_t lhs, mp_obj_t rhs) {
|
|||
|
||||
|
||||
STATIC const mp_method_t set_type_methods[] = {
|
||||
{ "add", &set_add_obj },
|
||||
{ "clear", &set_clear_obj },
|
||||
{ "copy", &set_copy_obj },
|
||||
{ "discard", &set_discard_obj },
|
||||
{ "difference", &set_diff_obj },
|
||||
{ "difference_update", &set_diff_update_obj },
|
||||
{ "intersection", &set_intersect_obj },
|
||||
{ "intersection_update", &set_intersect_update_obj },
|
||||
{ "isdisjoint", &set_isdisjoint_obj },
|
||||
{ "issubset", &set_issubset_obj },
|
||||
{ "issuperset", &set_issuperset_obj },
|
||||
{ "pop", &set_pop_obj },
|
||||
{ "remove", &set_remove_obj },
|
||||
{ "symmetric_difference", &set_symmetric_difference_obj },
|
||||
{ "symmetric_difference_update", &set_symmetric_difference_update_obj },
|
||||
{ "union", &set_union_obj },
|
||||
{ "update", &set_update_obj },
|
||||
{ NULL, NULL }, // end-of-list sentinel
|
||||
{ MP_QSTR_add, &set_add_obj },
|
||||
{ MP_QSTR_clear, &set_clear_obj },
|
||||
{ MP_QSTR_copy, &set_copy_obj },
|
||||
{ MP_QSTR_discard, &set_discard_obj },
|
||||
{ MP_QSTR_difference, &set_diff_obj },
|
||||
{ MP_QSTR_difference_update, &set_diff_update_obj },
|
||||
{ MP_QSTR_intersection, &set_intersect_obj },
|
||||
{ MP_QSTR_intersection_update, &set_intersect_update_obj },
|
||||
{ MP_QSTR_isdisjoint, &set_isdisjoint_obj },
|
||||
{ MP_QSTR_issubset, &set_issubset_obj },
|
||||
{ MP_QSTR_issuperset, &set_issuperset_obj },
|
||||
{ MP_QSTR_pop, &set_pop_obj },
|
||||
{ MP_QSTR_remove, &set_remove_obj },
|
||||
{ MP_QSTR_symmetric_difference, &set_symmetric_difference_obj },
|
||||
{ MP_QSTR_symmetric_difference_update, &set_symmetric_difference_update_obj },
|
||||
{ MP_QSTR_union, &set_union_obj },
|
||||
{ MP_QSTR_update, &set_update_obj },
|
||||
{ MP_QSTR_NULL, NULL }, // end-of-list sentinel
|
||||
};
|
||||
|
||||
const mp_obj_type_t set_type = {
|
||||
|
|
24
py/objstr.c
24
py/objstr.c
|
@ -694,18 +694,18 @@ STATIC MP_DEFINE_CONST_FUN_OBJ_2(str_partition_obj, str_partition);
|
|||
STATIC MP_DEFINE_CONST_FUN_OBJ_2(str_rpartition_obj, str_rpartition);
|
||||
|
||||
STATIC const mp_method_t str_type_methods[] = {
|
||||
{ "find", &str_find_obj },
|
||||
{ "rfind", &str_rfind_obj },
|
||||
{ "join", &str_join_obj },
|
||||
{ "split", &str_split_obj },
|
||||
{ "startswith", &str_startswith_obj },
|
||||
{ "strip", &str_strip_obj },
|
||||
{ "format", &str_format_obj },
|
||||
{ "replace", &str_replace_obj },
|
||||
{ "count", &str_count_obj },
|
||||
{ "partition", &str_partition_obj },
|
||||
{ "rpartition", &str_rpartition_obj },
|
||||
{ NULL, NULL }, // end-of-list sentinel
|
||||
{ MP_QSTR_find, &str_find_obj },
|
||||
{ MP_QSTR_rfind, &str_rfind_obj },
|
||||
{ MP_QSTR_join, &str_join_obj },
|
||||
{ MP_QSTR_split, &str_split_obj },
|
||||
{ MP_QSTR_startswith, &str_startswith_obj },
|
||||
{ MP_QSTR_strip, &str_strip_obj },
|
||||
{ MP_QSTR_format, &str_format_obj },
|
||||
{ MP_QSTR_replace, &str_replace_obj },
|
||||
{ MP_QSTR_count, &str_count_obj },
|
||||
{ MP_QSTR_partition, &str_partition_obj },
|
||||
{ MP_QSTR_rpartition, &str_rpartition_obj },
|
||||
{ MP_QSTR_NULL, NULL }, // end-of-list sentinel
|
||||
};
|
||||
|
||||
const mp_obj_type_t str_type = {
|
||||
|
|
|
@ -166,9 +166,9 @@ STATIC mp_obj_t tuple_index(uint n_args, const mp_obj_t *args) {
|
|||
STATIC MP_DEFINE_CONST_FUN_OBJ_VAR_BETWEEN(tuple_index_obj, 2, 4, tuple_index);
|
||||
|
||||
STATIC const mp_method_t tuple_type_methods[] = {
|
||||
{ "count", &tuple_count_obj },
|
||||
{ "index", &tuple_index_obj },
|
||||
{ NULL, NULL }, // end-of-list sentinel
|
||||
{ MP_QSTR_count, &tuple_count_obj },
|
||||
{ MP_QSTR_index, &tuple_index_obj },
|
||||
{ MP_QSTR_NULL, NULL }, // end-of-list sentinel
|
||||
};
|
||||
|
||||
const mp_obj_type_t tuple_type = {
|
||||
|
|
|
@ -41,8 +41,8 @@ STATIC mp_obj_t mp_obj_class_lookup(const mp_obj_type_t *type, qstr attr) {
|
|||
} else if (type->methods != NULL) {
|
||||
// search methods (the const set of methods)
|
||||
|
||||
for (const mp_method_t *meth = type->methods; meth->name != NULL; meth++) {
|
||||
if (strcmp(meth->name, qstr_str(attr)) == 0) {
|
||||
for (const mp_method_t *meth = type->methods; meth->name != MP_QSTR_NULL; meth++) {
|
||||
if (meth->name == attr) {
|
||||
return (mp_obj_t)meth->fun;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -123,7 +123,26 @@ Q(type)
|
|||
Q(value)
|
||||
Q(zip)
|
||||
|
||||
Q(clear)
|
||||
Q(copy)
|
||||
Q(fromkeys)
|
||||
Q(get)
|
||||
Q(items)
|
||||
Q(keys)
|
||||
Q(pop)
|
||||
Q(popitem)
|
||||
Q(setdefault)
|
||||
Q(update)
|
||||
Q(values)
|
||||
Q(append)
|
||||
Q(close)
|
||||
Q(send)
|
||||
Q(throw)
|
||||
Q(count)
|
||||
Q(extend)
|
||||
Q(index)
|
||||
Q(remove)
|
||||
Q(insert)
|
||||
Q(pop)
|
||||
Q(sort)
|
||||
Q(join)
|
||||
|
@ -131,6 +150,30 @@ Q(strip)
|
|||
Q(format)
|
||||
Q(key)
|
||||
Q(reverse)
|
||||
Q(add)
|
||||
Q(clear)
|
||||
Q(copy)
|
||||
Q(discard)
|
||||
Q(difference)
|
||||
Q(difference_update)
|
||||
Q(intersection)
|
||||
Q(intersection_update)
|
||||
Q(isdisjoint)
|
||||
Q(issubset)
|
||||
Q(issuperset)
|
||||
Q(pop)
|
||||
Q(remove)
|
||||
Q(symmetric_difference)
|
||||
Q(symmetric_difference_update)
|
||||
Q(union)
|
||||
Q(update)
|
||||
Q(find)
|
||||
Q(rfind)
|
||||
Q(split)
|
||||
Q(startswith)
|
||||
Q(replace)
|
||||
Q(partition)
|
||||
Q(rpartition)
|
||||
|
||||
Q(bound_method)
|
||||
Q(closure)
|
||||
|
|
|
@ -847,8 +847,8 @@ STATIC void rt_load_method_maybe(mp_obj_t base, qstr attr, mp_obj_t *dest) {
|
|||
// this is a lookup in the object (ie not class or type)
|
||||
const mp_method_t *meth = type->methods;
|
||||
if (meth != NULL) {
|
||||
for (; meth->name != NULL; meth++) {
|
||||
if (strcmp(meth->name, qstr_str(attr)) == 0) {
|
||||
for (; meth->name != MP_QSTR_NULL; meth++) {
|
||||
if (meth->name == attr) {
|
||||
// check if the methods are functions, static or class methods
|
||||
// see http://docs.python.org/3.3/howto/descriptor.html
|
||||
if (MP_OBJ_IS_TYPE(meth->fun, &mp_type_staticmethod)) {
|
||||
|
|
14
stm/adc.c
14
stm/adc.c
|
@ -324,11 +324,11 @@ static MP_DEFINE_CONST_FUN_OBJ_1(adc_all_read_core_vbat_obj, adc_all_read_core_v
|
|||
static MP_DEFINE_CONST_FUN_OBJ_1(adc_all_read_core_vref_obj, adc_all_read_core_vref);
|
||||
|
||||
static const mp_method_t adc_all_methods[] = {
|
||||
{ "read_channel", &adc_all_read_channel_obj},
|
||||
{ "read_core_temp", &adc_all_read_core_temp_obj},
|
||||
{ "read_core_vbat", &adc_all_read_core_vbat_obj},
|
||||
{ "read_core_vref", &adc_all_read_core_vref_obj},
|
||||
{ NULL, NULL },
|
||||
{ MP_QSTR_read_channel, &adc_all_read_channel_obj},
|
||||
{ MP_QSTR_read_core_temp, &adc_all_read_core_temp_obj},
|
||||
{ MP_QSTR_read_core_vbat, &adc_all_read_core_vbat_obj},
|
||||
{ MP_QSTR_read_core_vref, &adc_all_read_core_vref_obj},
|
||||
{ MP_QSTR_NULL, NULL },
|
||||
};
|
||||
|
||||
static const mp_obj_type_t adc_all_type = {
|
||||
|
@ -381,8 +381,8 @@ static mp_obj_t adc_read(mp_obj_t self_in) {
|
|||
static MP_DEFINE_CONST_FUN_OBJ_1(adc_read_obj, adc_read);
|
||||
|
||||
static const mp_method_t adc_methods[] = {
|
||||
{ "read", &adc_read_obj},
|
||||
{ NULL, NULL },
|
||||
{ MP_QSTR_read, &adc_read_obj},
|
||||
{ MP_QSTR_NULL, NULL },
|
||||
};
|
||||
|
||||
static const mp_obj_type_t adc_type = {
|
||||
|
|
10
stm/audio.c
10
stm/audio.c
|
@ -194,11 +194,11 @@ STATIC MP_DEFINE_CONST_FUN_OBJ_2(pyb_audio_dac_obj, pyb_audio_dac);
|
|||
STATIC MP_DEFINE_CONST_FUN_OBJ_KW(pyb_audio_dma_obj, 3, pyb_audio_dma);
|
||||
|
||||
STATIC const mp_method_t pyb_audio_methods[] = {
|
||||
{ "noise", &pyb_audio_noise_obj },
|
||||
{ "triangle", &pyb_audio_triangle_obj },
|
||||
{ "dac", &pyb_audio_dac_obj },
|
||||
{ "dma", &pyb_audio_dma_obj },
|
||||
{ NULL, NULL },
|
||||
{ MP_QSTR_noise, &pyb_audio_noise_obj },
|
||||
{ MP_QSTR_triangle, &pyb_audio_triangle_obj },
|
||||
{ MP_QSTR_dac, &pyb_audio_dac_obj },
|
||||
{ MP_QSTR_dma, &pyb_audio_dma_obj },
|
||||
{ MP_QSTR_NULL, NULL },
|
||||
};
|
||||
|
||||
STATIC const mp_obj_type_t pyb_audio_type = {
|
||||
|
|
10
stm/exti.c
10
stm/exti.c
|
@ -227,11 +227,11 @@ static MP_DEFINE_CONST_FUN_OBJ_1(exti_obj_disable_obj, exti_obj_disable);
|
|||
static MP_DEFINE_CONST_FUN_OBJ_1(exti_obj_swint_obj, exti_obj_swint);
|
||||
|
||||
static const mp_method_t exti_methods[] = {
|
||||
{ "line", &exti_obj_line_obj },
|
||||
{ "enable", &exti_obj_enable_obj },
|
||||
{ "disable", &exti_obj_disable_obj },
|
||||
{ "swint", &exti_obj_swint_obj },
|
||||
{ NULL, NULL },
|
||||
{ MP_QSTR_line, &exti_obj_line_obj },
|
||||
{ MP_QSTR_enable, &exti_obj_enable_obj },
|
||||
{ MP_QSTR_disable, &exti_obj_disable_obj },
|
||||
{ MP_QSTR_swint, &exti_obj_swint_obj },
|
||||
{ MP_QSTR_NULL, NULL },
|
||||
};
|
||||
|
||||
static mp_obj_t exti_regs(void) {
|
||||
|
|
|
@ -53,10 +53,10 @@ static MP_DEFINE_CONST_FUN_OBJ_1(file_obj_close_obj, file_obj_close);
|
|||
// TODO gc hook to close the file if not already closed
|
||||
|
||||
static const mp_method_t file_methods[] = {
|
||||
{ "read", &file_obj_read_obj },
|
||||
{ "write", &file_obj_write_obj },
|
||||
{ "close", &file_obj_close_obj },
|
||||
{NULL, NULL},
|
||||
{ MP_QSTR_read, &file_obj_read_obj },
|
||||
{ MP_QSTR_write, &file_obj_write_obj },
|
||||
{ MP_QSTR_close, &file_obj_close_obj },
|
||||
{ MP_QSTR_NULL, NULL },
|
||||
};
|
||||
|
||||
static const mp_obj_type_t file_obj_type = {
|
||||
|
|
12
stm/i2c.c
12
stm/i2c.c
|
@ -326,12 +326,12 @@ static MP_DEFINE_CONST_FUN_OBJ_1(i2c_obj_readAndStop_obj, i2c_obj_readAndStop);
|
|||
static MP_DEFINE_CONST_FUN_OBJ_1(i2c_obj_stop_obj, i2c_obj_stop);
|
||||
|
||||
static const mp_method_t i2c_methods[] = {
|
||||
{ "start", &i2c_obj_start_obj },
|
||||
{ "write", &i2c_obj_write_obj },
|
||||
{ "read", &i2c_obj_read_obj },
|
||||
{ "readAndStop", &i2c_obj_readAndStop_obj },
|
||||
{ "stop", &i2c_obj_stop_obj },
|
||||
{ NULL, NULL },
|
||||
{ MP_QSTR_start, &i2c_obj_start_obj },
|
||||
{ MP_QSTR_write, &i2c_obj_write_obj },
|
||||
{ MP_QSTR_read, &i2c_obj_read_obj },
|
||||
{ MP_QSTR_readAndStop, &i2c_obj_readAndStop_obj },
|
||||
{ MP_QSTR_stop, &i2c_obj_stop_obj },
|
||||
{ MP_QSTR_NULL, NULL },
|
||||
};
|
||||
|
||||
static const mp_obj_type_t i2c_obj_type = {
|
||||
|
|
|
@ -110,10 +110,10 @@ static MP_DEFINE_CONST_FUN_OBJ_1(led_obj_off_obj, led_obj_off);
|
|||
static MP_DEFINE_CONST_FUN_OBJ_1(led_obj_toggle_obj, led_obj_toggle);
|
||||
|
||||
static const mp_method_t led_methods[] = {
|
||||
{ "on", &led_obj_on_obj },
|
||||
{ "off", &led_obj_off_obj },
|
||||
{ "toggle", &led_obj_toggle_obj },
|
||||
{ NULL, NULL },
|
||||
{ MP_QSTR_on, &led_obj_on_obj },
|
||||
{ MP_QSTR_off, &led_obj_off_obj },
|
||||
{ MP_QSTR_toggle, &led_obj_toggle_obj },
|
||||
{ MP_QSTR_NULL, NULL },
|
||||
};
|
||||
|
||||
static const mp_obj_type_t led_obj_type = {
|
||||
|
|
|
@ -35,10 +35,10 @@ static MP_DEFINE_CONST_FUN_OBJ_1(pin_obj_port_obj, pin_obj_port);
|
|||
static MP_DEFINE_CONST_FUN_OBJ_1(pin_obj_pin_obj, pin_obj_pin);
|
||||
|
||||
static const mp_method_t pin_methods[] = {
|
||||
{ "name", &pin_obj_name_obj },
|
||||
{ "port", &pin_obj_port_obj },
|
||||
{ "pin", &pin_obj_pin_obj },
|
||||
{ NULL, NULL },
|
||||
{ MP_QSTR_name, &pin_obj_name_obj },
|
||||
{ MP_QSTR_port, &pin_obj_port_obj },
|
||||
{ MP_QSTR_pin, &pin_obj_pin_obj },
|
||||
{ MP_QSTR_NULL, NULL },
|
||||
};
|
||||
|
||||
const mp_obj_type_t pin_obj_type = {
|
||||
|
|
|
@ -55,3 +55,37 @@ Q(PULL_UP)
|
|||
Q(PULL_DOWN)
|
||||
Q(PUSH_PULL)
|
||||
Q(OPEN_DRAIN)
|
||||
Q(on)
|
||||
Q(off)
|
||||
Q(toggle)
|
||||
Q(line)
|
||||
Q(enable)
|
||||
Q(disable)
|
||||
Q(swint)
|
||||
Q(read_channel)
|
||||
Q(read_core_temp)
|
||||
Q(read_core_vbat)
|
||||
Q(read_core_vref)
|
||||
Q(noise)
|
||||
Q(triangle)
|
||||
Q(dac)
|
||||
Q(dma)
|
||||
Q(present)
|
||||
Q(power)
|
||||
Q(read)
|
||||
Q(read)
|
||||
Q(write)
|
||||
Q(close)
|
||||
Q(name)
|
||||
Q(port)
|
||||
Q(pin)
|
||||
Q(angle)
|
||||
Q(start)
|
||||
Q(write)
|
||||
Q(read)
|
||||
Q(readAndStop)
|
||||
Q(stop)
|
||||
Q(status)
|
||||
Q(recv_chr)
|
||||
Q(send_chr)
|
||||
Q(send)
|
||||
|
|
|
@ -195,10 +195,10 @@ static mp_obj_t sd_read(mp_obj_t self, mp_obj_t block_num) {
|
|||
static MP_DEFINE_CONST_FUN_OBJ_2(sd_read_obj, sd_read);
|
||||
|
||||
static const mp_method_t sdcard_methods[] = {
|
||||
{ "present", &sd_present_obj },
|
||||
{ "power", &sd_power_obj },
|
||||
{ "read", &sd_read_obj },
|
||||
{ NULL, NULL },
|
||||
{ MP_QSTR_present, &sd_present_obj },
|
||||
{ MP_QSTR_power, &sd_power_obj },
|
||||
{ MP_QSTR_read, &sd_read_obj },
|
||||
{ MP_QSTR_NULL, NULL },
|
||||
};
|
||||
|
||||
static const mp_obj_type_t sdcard_type = {
|
||||
|
|
|
@ -147,8 +147,8 @@ STATIC mp_obj_t servo_obj_angle(mp_obj_t self_in, mp_obj_t angle) {
|
|||
STATIC MP_DEFINE_CONST_FUN_OBJ_2(servo_obj_angle_obj, servo_obj_angle);
|
||||
|
||||
STATIC const mp_method_t servo_methods[] = {
|
||||
{ "angle", &servo_obj_angle_obj },
|
||||
{ NULL, NULL },
|
||||
{ MP_QSTR_angle, &servo_obj_angle_obj },
|
||||
{ MP_QSTR_NULL, NULL },
|
||||
};
|
||||
|
||||
STATIC const mp_obj_type_t servo_obj_type = {
|
||||
|
|
10
stm/usart.c
10
stm/usart.c
|
@ -236,11 +236,11 @@ static MP_DEFINE_CONST_FUN_OBJ_2(usart_obj_tx_char_obj, usart_obj_tx_char);
|
|||
static MP_DEFINE_CONST_FUN_OBJ_2(usart_obj_tx_str_obj, usart_obj_tx_str);
|
||||
|
||||
STATIC const mp_method_t usart_methods[] = {
|
||||
{ "status", &usart_obj_status_obj },
|
||||
{ "recv_chr", &usart_obj_rx_char_obj },
|
||||
{ "send_chr", &usart_obj_tx_char_obj },
|
||||
{ "send", &usart_obj_tx_str_obj },
|
||||
{ NULL, NULL },
|
||||
{ MP_QSTR_status, &usart_obj_status_obj },
|
||||
{ MP_QSTR_recv_chr, &usart_obj_rx_char_obj },
|
||||
{ MP_QSTR_send_chr, &usart_obj_tx_char_obj },
|
||||
{ MP_QSTR_send, &usart_obj_tx_str_obj },
|
||||
{ MP_QSTR_NULL, NULL },
|
||||
};
|
||||
|
||||
STATIC const mp_obj_type_t usart_obj_type = {
|
||||
|
|
|
@ -141,32 +141,32 @@ STATIC mp_obj_t pyb_accel_filtered_xyz(mp_obj_t self_in) {
|
|||
|
||||
STATIC MP_DEFINE_CONST_FUN_OBJ_1(pyb_accel_filtered_xyz_obj, pyb_accel_filtered_xyz);
|
||||
|
||||
STATIC mp_obj_t pyb_accel_read_reg(mp_obj_t self_in, mp_obj_t reg) {
|
||||
STATIC mp_obj_t pyb_accel_read(mp_obj_t self_in, mp_obj_t reg) {
|
||||
uint8_t data[1];
|
||||
HAL_I2C_Mem_Read(&I2cHandle_X, MMA_ADDR, mp_obj_get_int(reg), I2C_MEMADD_SIZE_8BIT, data, 1, 200);
|
||||
return mp_obj_new_int(data[0]);
|
||||
}
|
||||
|
||||
MP_DEFINE_CONST_FUN_OBJ_2(pyb_accel_read_reg_obj, pyb_accel_read_reg);
|
||||
MP_DEFINE_CONST_FUN_OBJ_2(pyb_accel_read_obj, pyb_accel_read);
|
||||
|
||||
STATIC mp_obj_t pyb_accel_write_reg(mp_obj_t self_in, mp_obj_t reg, mp_obj_t val) {
|
||||
STATIC mp_obj_t pyb_accel_write(mp_obj_t self_in, mp_obj_t reg, mp_obj_t val) {
|
||||
uint8_t data[1];
|
||||
data[0] = mp_obj_get_int(val);
|
||||
HAL_I2C_Mem_Write(&I2cHandle_X, MMA_ADDR, mp_obj_get_int(reg), I2C_MEMADD_SIZE_8BIT, data, 1, 200);
|
||||
return mp_const_none;
|
||||
}
|
||||
|
||||
MP_DEFINE_CONST_FUN_OBJ_3(pyb_accel_write_reg_obj, pyb_accel_write_reg);
|
||||
MP_DEFINE_CONST_FUN_OBJ_3(pyb_accel_write_obj, pyb_accel_write);
|
||||
|
||||
STATIC const mp_method_t pyb_accel_methods[] = {
|
||||
{ "x", &pyb_accel_x_obj },
|
||||
{ "y", &pyb_accel_y_obj },
|
||||
{ "z", &pyb_accel_z_obj },
|
||||
{ "tilt", &pyb_accel_tilt_obj },
|
||||
{ "filtered_xyz", &pyb_accel_filtered_xyz_obj },
|
||||
{ "read_reg", &pyb_accel_read_reg_obj },
|
||||
{ "write_reg", &pyb_accel_write_reg_obj },
|
||||
{ NULL, NULL },
|
||||
{ MP_QSTR_x, &pyb_accel_x_obj },
|
||||
{ MP_QSTR_y, &pyb_accel_y_obj },
|
||||
{ MP_QSTR_z, &pyb_accel_z_obj },
|
||||
{ MP_QSTR_tilt, &pyb_accel_tilt_obj },
|
||||
{ MP_QSTR_filtered_xyz, &pyb_accel_filtered_xyz_obj },
|
||||
{ MP_QSTR_read, &pyb_accel_read_obj },
|
||||
{ MP_QSTR_write, &pyb_accel_write_obj },
|
||||
{ MP_QSTR_NULL, NULL },
|
||||
};
|
||||
|
||||
const mp_obj_type_t pyb_accel_type = {
|
||||
|
|
14
stmhal/adc.c
14
stmhal/adc.c
|
@ -164,8 +164,8 @@ STATIC mp_obj_t adc_read(mp_obj_t self_in) {
|
|||
STATIC MP_DEFINE_CONST_FUN_OBJ_1(adc_read_obj, adc_read);
|
||||
|
||||
STATIC const mp_method_t adc_methods[] = {
|
||||
{ "read", &adc_read_obj},
|
||||
{ NULL, NULL },
|
||||
{ MP_QSTR_read, &adc_read_obj},
|
||||
{ MP_QSTR_NULL, NULL },
|
||||
};
|
||||
|
||||
const mp_obj_type_t pyb_adc_type = {
|
||||
|
@ -321,11 +321,11 @@ STATIC MP_DEFINE_CONST_FUN_OBJ_1(adc_all_read_core_vbat_obj, adc_all_read_core_v
|
|||
STATIC MP_DEFINE_CONST_FUN_OBJ_1(adc_all_read_core_vref_obj, adc_all_read_core_vref);
|
||||
|
||||
STATIC const mp_method_t adc_all_methods[] = {
|
||||
{ "read_channel", &adc_all_read_channel_obj},
|
||||
{ "read_core_temp", &adc_all_read_core_temp_obj},
|
||||
{ "read_core_vbat", &adc_all_read_core_vbat_obj},
|
||||
{ "read_core_vref", &adc_all_read_core_vref_obj},
|
||||
{ NULL, NULL },
|
||||
{ MP_QSTR_read_channel, &adc_all_read_channel_obj},
|
||||
{ MP_QSTR_read_core_temp, &adc_all_read_core_temp_obj},
|
||||
{ MP_QSTR_read_core_vbat, &adc_all_read_core_vbat_obj},
|
||||
{ MP_QSTR_read_core_vref, &adc_all_read_core_vref_obj},
|
||||
{ MP_QSTR_NULL, NULL },
|
||||
};
|
||||
|
||||
STATIC const mp_obj_type_t adc_all_type = {
|
||||
|
|
10
stmhal/dac.c
10
stmhal/dac.c
|
@ -261,14 +261,14 @@ mp_obj_t pyb_dac_dma(uint n_args, const mp_obj_t *args, mp_map_t *kw_args) {
|
|||
STATIC MP_DEFINE_CONST_FUN_OBJ_KW(pyb_dac_dma_obj, 3, pyb_dac_dma);
|
||||
|
||||
STATIC const mp_method_t pyb_dac_methods[] = {
|
||||
{ "noise", &pyb_dac_noise_obj },
|
||||
{ "triangle", &pyb_dac_triangle_obj },
|
||||
{ "write", &pyb_dac_write_obj },
|
||||
{ "dma", &pyb_dac_dma_obj },
|
||||
{ MP_QSTR_noise, &pyb_dac_noise_obj },
|
||||
{ MP_QSTR_triangle, &pyb_dac_triangle_obj },
|
||||
{ MP_QSTR_write, &pyb_dac_write_obj },
|
||||
{ MP_QSTR_dma, &pyb_dac_dma_obj },
|
||||
// TODO add function that does double buffering:
|
||||
// dma2(freq, buf1, buf2, callback)
|
||||
// where callback is called when the buffer has been drained
|
||||
{ NULL, NULL },
|
||||
{ MP_QSTR_NULL, NULL },
|
||||
};
|
||||
|
||||
const mp_obj_type_t pyb_dac_type = {
|
||||
|
|
|
@ -229,11 +229,11 @@ static MP_DEFINE_CONST_FUN_OBJ_1(exti_obj_disable_obj, exti_obj_disable);
|
|||
static MP_DEFINE_CONST_FUN_OBJ_1(exti_obj_swint_obj, exti_obj_swint);
|
||||
|
||||
static const mp_method_t exti_methods[] = {
|
||||
{ "line", &exti_obj_line_obj },
|
||||
{ "enable", &exti_obj_enable_obj },
|
||||
{ "disable", &exti_obj_disable_obj },
|
||||
{ "swint", &exti_obj_swint_obj },
|
||||
{ NULL, NULL },
|
||||
{ MP_QSTR_line, &exti_obj_line_obj },
|
||||
{ MP_QSTR_enable, &exti_obj_enable_obj },
|
||||
{ MP_QSTR_disable, &exti_obj_disable_obj },
|
||||
{ MP_QSTR_swint, &exti_obj_swint_obj },
|
||||
{ MP_QSTR_NULL, NULL },
|
||||
};
|
||||
|
||||
static mp_obj_t exti_regs(void) {
|
||||
|
|
|
@ -52,10 +52,10 @@ static MP_DEFINE_CONST_FUN_OBJ_1(file_obj_close_obj, file_obj_close);
|
|||
// TODO gc hook to close the file if not already closed
|
||||
|
||||
static const mp_method_t file_methods[] = {
|
||||
{ "read", &file_obj_read_obj },
|
||||
{ "write", &file_obj_write_obj },
|
||||
{ "close", &file_obj_close_obj },
|
||||
{NULL, NULL},
|
||||
{ MP_QSTR_read, &file_obj_read_obj },
|
||||
{ MP_QSTR_write, &file_obj_write_obj },
|
||||
{ MP_QSTR_close, &file_obj_close_obj },
|
||||
{ MP_QSTR_NULL, NULL },
|
||||
};
|
||||
|
||||
static const mp_obj_type_t file_obj_type = {
|
||||
|
|
|
@ -38,14 +38,10 @@ STATIC const char *help_text =
|
|||
" CTRL-D -- on a blank line, do a soft reset of the board\n"
|
||||
;
|
||||
|
||||
STATIC void pyb_help_print_info_about_object(mp_obj_t name_o, const char *name_str, mp_obj_t value) {
|
||||
if (name_o != MP_OBJ_NULL) {
|
||||
printf(" ");
|
||||
mp_obj_print(name_o, PRINT_STR);
|
||||
printf(" -- ");
|
||||
} else {
|
||||
printf(" %s -- ", name_str);
|
||||
}
|
||||
STATIC void pyb_help_print_info_about_object(mp_obj_t name_o, mp_obj_t value) {
|
||||
printf(" ");
|
||||
mp_obj_print(name_o, PRINT_STR);
|
||||
printf(" -- ");
|
||||
mp_obj_print(value, PRINT_STR);
|
||||
printf("\n");
|
||||
}
|
||||
|
@ -72,14 +68,14 @@ STATIC mp_obj_t pyb_help(uint n_args, const mp_obj_t *args) {
|
|||
if (map != NULL) {
|
||||
for (uint i = 0; i < map->alloc; i++) {
|
||||
if (map->table[i].key != MP_OBJ_NULL) {
|
||||
pyb_help_print_info_about_object(map->table[i].key, NULL, map->table[i].value);
|
||||
pyb_help_print_info_about_object(map->table[i].key, map->table[i].value);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (type->methods != NULL) {
|
||||
for (const mp_method_t *meth = type->methods; meth->name != NULL; meth++) {
|
||||
pyb_help_print_info_about_object(MP_OBJ_NULL, meth->name, (mp_obj_t)meth->fun);
|
||||
for (const mp_method_t *meth = type->methods; meth->name != MP_QSTR_NULL; meth++) {
|
||||
pyb_help_print_info_about_object(MP_OBJ_NEW_QSTR(meth->name), (mp_obj_t)meth->fun);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -170,10 +170,10 @@ STATIC mp_obj_t pyb_i2c_mem_write(uint n_args, const mp_obj_t *args) {
|
|||
STATIC MP_DEFINE_CONST_FUN_OBJ_VAR_BETWEEN(pyb_i2c_mem_write_obj, 4, 4, pyb_i2c_mem_write);
|
||||
|
||||
STATIC const mp_method_t pyb_i2c_methods[] = {
|
||||
{ "is_ready", &pyb_i2c_is_ready_obj },
|
||||
{ "mem_read", &pyb_i2c_mem_read_obj },
|
||||
{ "mem_write", &pyb_i2c_mem_write_obj },
|
||||
{ NULL, NULL },
|
||||
{ MP_QSTR_is_ready, &pyb_i2c_is_ready_obj },
|
||||
{ MP_QSTR_mem_read, &pyb_i2c_mem_read_obj },
|
||||
{ MP_QSTR_mem_write, &pyb_i2c_mem_write_obj },
|
||||
{ MP_QSTR_NULL, NULL },
|
||||
};
|
||||
|
||||
const mp_obj_type_t pyb_i2c_type = {
|
||||
|
|
10
stmhal/led.c
10
stmhal/led.c
|
@ -257,11 +257,11 @@ STATIC MP_DEFINE_CONST_FUN_OBJ_1(led_obj_toggle_obj, led_obj_toggle);
|
|||
STATIC MP_DEFINE_CONST_FUN_OBJ_VAR_BETWEEN(led_obj_intensity_obj, 1, 2, led_obj_intensity);
|
||||
|
||||
STATIC const mp_method_t led_methods[] = {
|
||||
{ "on", &led_obj_on_obj },
|
||||
{ "off", &led_obj_off_obj },
|
||||
{ "toggle", &led_obj_toggle_obj },
|
||||
{ "intensity", &led_obj_intensity_obj },
|
||||
{ NULL, NULL },
|
||||
{ MP_QSTR_on, &led_obj_on_obj },
|
||||
{ MP_QSTR_off, &led_obj_off_obj },
|
||||
{ MP_QSTR_toggle, &led_obj_toggle_obj },
|
||||
{ MP_QSTR_intensity, &led_obj_intensity_obj },
|
||||
{ MP_QSTR_NULL, NULL },
|
||||
};
|
||||
|
||||
const mp_obj_type_t pyb_led_type = {
|
||||
|
|
|
@ -4,6 +4,8 @@ Q(help)
|
|||
Q(pyb)
|
||||
Q(info)
|
||||
Q(sd_test)
|
||||
Q(present)
|
||||
Q(power)
|
||||
Q(stop)
|
||||
Q(standby)
|
||||
Q(source_dir)
|
||||
|
@ -17,23 +19,17 @@ Q(switch)
|
|||
Q(SW)
|
||||
Q(servo)
|
||||
Q(pwm)
|
||||
Q(Accel)
|
||||
Q(read)
|
||||
Q(write)
|
||||
Q(hid)
|
||||
Q(time)
|
||||
Q(rng)
|
||||
Q(Led)
|
||||
Q(LCD)
|
||||
Q(Servo)
|
||||
Q(SD)
|
||||
Q(SDcard)
|
||||
Q(I2C)
|
||||
Q(gpio)
|
||||
Q(gpio_in)
|
||||
Q(gpio_out)
|
||||
Q(Usart)
|
||||
Q(ADC)
|
||||
Q(ADC_all)
|
||||
Q(DAC)
|
||||
Q(open)
|
||||
Q(File)
|
||||
// Entries for sys.path
|
||||
|
@ -44,7 +40,6 @@ Q(Pin)
|
|||
Q(PinMap)
|
||||
Q(PinAF)
|
||||
Q(PinNamed)
|
||||
Q(Exti)
|
||||
Q(ExtiMeta)
|
||||
Q(rtc_info)
|
||||
Q(millis)
|
||||
|
@ -54,6 +49,59 @@ Q(PULL_DOWN)
|
|||
Q(PUSH_PULL)
|
||||
Q(OPEN_DRAIN)
|
||||
|
||||
// for Led object
|
||||
Q(Led)
|
||||
Q(on)
|
||||
Q(off)
|
||||
Q(toggle)
|
||||
Q(intensity)
|
||||
|
||||
// for Usart object
|
||||
Q(Usart)
|
||||
Q(status)
|
||||
Q(recv_chr)
|
||||
Q(send_chr)
|
||||
Q(send)
|
||||
|
||||
// for exti object
|
||||
Q(Exti)
|
||||
Q(line)
|
||||
Q(enable)
|
||||
Q(disable)
|
||||
Q(swint)
|
||||
|
||||
// for I2C object
|
||||
Q(I2C)
|
||||
Q(is_ready)
|
||||
Q(mem_read)
|
||||
Q(mem_write)
|
||||
|
||||
// for Accel object
|
||||
Q(Accel)
|
||||
Q(x)
|
||||
Q(y)
|
||||
Q(z)
|
||||
Q(tilt)
|
||||
Q(filtered_xyz)
|
||||
|
||||
// for ADC object
|
||||
Q(ADC)
|
||||
Q(ADC_all)
|
||||
Q(read_channel)
|
||||
Q(read_core_temp)
|
||||
Q(read_core_vbat)
|
||||
Q(read_core_vref)
|
||||
|
||||
// for DAC object
|
||||
Q(DAC)
|
||||
Q(noise)
|
||||
Q(triangle)
|
||||
Q(dma)
|
||||
|
||||
// for Servo object
|
||||
Q(Servo)
|
||||
Q(angle)
|
||||
|
||||
// for os module
|
||||
Q(os)
|
||||
Q(/)
|
||||
|
|
|
@ -233,10 +233,10 @@ static mp_obj_t sd_read(mp_obj_t self, mp_obj_t block_num) {
|
|||
static MP_DEFINE_CONST_FUN_OBJ_2(sd_read_obj, sd_read);
|
||||
|
||||
static const mp_method_t sdcard_methods[] = {
|
||||
{ "present", &sd_present_obj },
|
||||
{ "power", &sd_power_obj },
|
||||
{ "read", &sd_read_obj },
|
||||
{ NULL, NULL },
|
||||
{ MP_QSTR_present, &sd_present_obj },
|
||||
{ MP_QSTR_power, &sd_power_obj },
|
||||
{ MP_QSTR_read, &sd_read_obj },
|
||||
{ MP_QSTR_NULL, NULL },
|
||||
};
|
||||
|
||||
static const mp_obj_type_t sdcard_type = {
|
||||
|
|
|
@ -206,8 +206,8 @@ STATIC mp_obj_t pyb_servo_angle(uint n_args, const mp_obj_t *args) {
|
|||
STATIC MP_DEFINE_CONST_FUN_OBJ_VAR_BETWEEN(pyb_servo_angle_obj, 1, 3, pyb_servo_angle);
|
||||
|
||||
STATIC const mp_method_t pyb_servo_methods[] = {
|
||||
{ "angle", &pyb_servo_angle_obj },
|
||||
{ NULL, NULL },
|
||||
{ MP_QSTR_angle, &pyb_servo_angle_obj },
|
||||
{ MP_QSTR_NULL, NULL },
|
||||
};
|
||||
|
||||
const mp_obj_type_t pyb_servo_type = {
|
||||
|
|
|
@ -210,11 +210,11 @@ STATIC MP_DEFINE_CONST_FUN_OBJ_2(usart_obj_tx_char_obj, usart_obj_tx_char);
|
|||
STATIC MP_DEFINE_CONST_FUN_OBJ_2(usart_obj_tx_str_obj, usart_obj_tx_str);
|
||||
|
||||
STATIC const mp_method_t usart_methods[] = {
|
||||
{ "status", &usart_obj_status_obj },
|
||||
{ "recv_chr", &usart_obj_rx_char_obj },
|
||||
{ "send_chr", &usart_obj_tx_char_obj },
|
||||
{ "send", &usart_obj_tx_str_obj },
|
||||
{ NULL, NULL },
|
||||
{ MP_QSTR_status, &usart_obj_status_obj },
|
||||
{ MP_QSTR_recv_chr, &usart_obj_rx_char_obj },
|
||||
{ MP_QSTR_send_chr, &usart_obj_tx_char_obj },
|
||||
{ MP_QSTR_send, &usart_obj_tx_str_obj },
|
||||
{ MP_QSTR_NULL, NULL },
|
||||
};
|
||||
|
||||
const mp_obj_type_t pyb_usart_type = {
|
||||
|
|
14
unix/file.c
14
unix/file.c
|
@ -106,13 +106,13 @@ static mp_obj_t fdfile_make_new(mp_obj_t type_in, uint n_args, uint n_kw, const
|
|||
}
|
||||
|
||||
static const mp_method_t rawfile_type_methods[] = {
|
||||
{ "fileno", &fdfile_fileno_obj },
|
||||
{ "read", &mp_stream_read_obj },
|
||||
{ "readall", &mp_stream_readall_obj },
|
||||
{ "readline", &mp_stream_unbuffered_readline_obj},
|
||||
{ "write", &mp_stream_write_obj },
|
||||
{ "close", &fdfile_close_obj },
|
||||
{ NULL, NULL },
|
||||
{ MP_QSTR_fileno, &fdfile_fileno_obj },
|
||||
{ MP_QSTR_read, &mp_stream_read_obj },
|
||||
{ MP_QSTR_readall, &mp_stream_readall_obj },
|
||||
{ MP_QSTR_readline, &mp_stream_unbuffered_readline_obj},
|
||||
{ MP_QSTR_write, &mp_stream_write_obj },
|
||||
{ MP_QSTR_close, &fdfile_close_obj },
|
||||
{ MP_QSTR_NULL, NULL },
|
||||
};
|
||||
|
||||
static const mp_obj_type_t rawfile_type = {
|
||||
|
|
|
@ -192,9 +192,9 @@ static MP_DEFINE_CONST_FUN_OBJ_1(test_get_obj, test_get);
|
|||
static MP_DEFINE_CONST_FUN_OBJ_2(test_set_obj, test_set);
|
||||
|
||||
static const mp_method_t test_methods[] = {
|
||||
{ "get", &test_get_obj },
|
||||
{ "set", &test_set_obj },
|
||||
{ NULL, NULL },
|
||||
{ MP_QSTR_get, &test_get_obj },
|
||||
{ MP_QSTR_set, &test_set_obj },
|
||||
{ MP_QSTR_NULL, NULL },
|
||||
};
|
||||
|
||||
static const mp_obj_type_t test_type = {
|
||||
|
|
|
@ -15,6 +15,18 @@ Q(inet_aton)
|
|||
Q(gethostbyname)
|
||||
Q(getaddrinfo)
|
||||
Q(microsocket)
|
||||
Q(fileno)
|
||||
Q(read)
|
||||
Q(readall)
|
||||
Q(readline)
|
||||
Q(write)
|
||||
Q(makefile)
|
||||
Q(connect)
|
||||
Q(bind)
|
||||
Q(listen)
|
||||
Q(accept)
|
||||
Q(recv)
|
||||
Q(setsockopt)
|
||||
|
||||
Q(io.FileIO)
|
||||
Q(ffimod)
|
||||
|
|
|
@ -218,25 +218,25 @@ static mp_obj_t socket_make_new(mp_obj_t type_in, uint n_args, uint n_kw, const
|
|||
}
|
||||
|
||||
static const mp_method_t microsocket_type_methods[] = {
|
||||
{ "fileno", &socket_fileno_obj },
|
||||
{ "makefile", &mp_identity_obj },
|
||||
{ "read", &mp_stream_read_obj },
|
||||
{ "readall", &mp_stream_readall_obj },
|
||||
{ "readline", &mp_stream_unbuffered_readline_obj},
|
||||
{ "write", &mp_stream_write_obj },
|
||||
{ "connect", &socket_connect_obj },
|
||||
{ "bind", &socket_bind_obj },
|
||||
{ "listen", &socket_listen_obj },
|
||||
{ "accept", &socket_accept_obj },
|
||||
{ "recv", &socket_recv_obj },
|
||||
{ "send", &socket_send_obj },
|
||||
{ "setsockopt", &socket_setsockopt_obj },
|
||||
{ "close", &socket_close_obj },
|
||||
{ MP_QSTR_fileno, &socket_fileno_obj },
|
||||
{ MP_QSTR_makefile, &mp_identity_obj },
|
||||
{ MP_QSTR_read, &mp_stream_read_obj },
|
||||
{ MP_QSTR_readall, &mp_stream_readall_obj },
|
||||
{ MP_QSTR_readline, &mp_stream_unbuffered_readline_obj},
|
||||
{ MP_QSTR_write, &mp_stream_write_obj },
|
||||
{ MP_QSTR_connect, &socket_connect_obj },
|
||||
{ MP_QSTR_bind, &socket_bind_obj },
|
||||
{ MP_QSTR_listen, &socket_listen_obj },
|
||||
{ MP_QSTR_accept, &socket_accept_obj },
|
||||
{ MP_QSTR_recv, &socket_recv_obj },
|
||||
{ MP_QSTR_send, &socket_send_obj },
|
||||
{ MP_QSTR_setsockopt, &socket_setsockopt_obj },
|
||||
{ MP_QSTR_close, &socket_close_obj },
|
||||
#if MICROPY_SOCKET_EXTRA
|
||||
{ "recv", &mp_stream_read_obj },
|
||||
{ "send", &mp_stream_write_obj },
|
||||
{ MP_QSTR_recv, &mp_stream_read_obj },
|
||||
{ MP_QSTR_send, &mp_stream_write_obj },
|
||||
#endif
|
||||
{ NULL, NULL },
|
||||
{ MP_QSTR_NULL, NULL },
|
||||
};
|
||||
|
||||
static const mp_obj_type_t microsocket_type = {
|
||||
|
|
|
@ -1,9 +1,35 @@
|
|||
// qstrs specific to this port
|
||||
|
||||
Q(Test)
|
||||
|
||||
Q(argv)
|
||||
Q(open)
|
||||
Q(stdin)
|
||||
Q(stdout)
|
||||
Q(stderr)
|
||||
Q(rawsocket)
|
||||
Q(socket)
|
||||
Q(sockaddr_in)
|
||||
Q(htons)
|
||||
Q(inet_aton)
|
||||
Q(gethostbyname)
|
||||
Q(getaddrinfo)
|
||||
Q(microsocket)
|
||||
Q(fileno)
|
||||
Q(read)
|
||||
Q(readall)
|
||||
Q(readline)
|
||||
Q(write)
|
||||
Q(makefile)
|
||||
Q(connect)
|
||||
Q(bind)
|
||||
Q(listen)
|
||||
Q(accept)
|
||||
Q(recv)
|
||||
Q(setsockopt)
|
||||
|
||||
Q(io.FileIO)
|
||||
Q(ffimod)
|
||||
Q(ffifunc)
|
||||
Q(fficallback)
|
||||
Q(ffivar)
|
||||
|
|
Loading…
Reference in New Issue