1 #include <stdio.h>
2 #include <stdlib.h>
3 #include <string.h>
4 
5 #include "py/builtin.h"
6 #include "py/mperrno.h"
7 #include "py/obj.h"
8 #include "py/runtime.h"
9 #include "ulog/ulog.h"
10 
11 #define LOG_TAG "MOD_BATTERY"
12 
obj_open(size_t n_args,const mp_obj_t * args)13 STATIC mp_obj_t obj_open(size_t n_args, const mp_obj_t *args)
14 {
15     LOGD(LOG_TAG, "entern  %s; n_args = %d;\n", __func__, n_args);
16     int ret = -1;
17     if (n_args < 1) {
18         LOGE(LOG_TAG, "%s: args num is illegal :n_args = %d;\n", __func__, n_args);
19         return mp_const_none;
20     }
21     LOGD(LOG_TAG, "%s:out\n", __func__);
22 
23     return mp_const_none;
24 }
25 STATIC MP_DEFINE_CONST_FUN_OBJ_VAR(battery_obj_open, 1, obj_open);
26 
obj_close(size_t n_args,const mp_obj_t * args)27 STATIC mp_obj_t obj_close(size_t n_args, const mp_obj_t *args)
28 {
29     LOGD(LOG_TAG, "entern  %s; n_args = %d;\n", __func__, n_args);
30     int ret = -1;
31     if (n_args < 1) {
32         LOGE(LOG_TAG, "%s: args num is illegal :n_args = %d;\n", __func__, n_args);
33         return mp_const_none;
34     }
35     LOGD(LOG_TAG, "%s:out\n", __func__);
36 
37     return mp_const_none;
38 }
39 STATIC MP_DEFINE_CONST_FUN_OBJ_VAR(battery_obj_close, 1, obj_close);
40 
obj_getConnectState(size_t n_args,const mp_obj_t * args)41 STATIC mp_obj_t obj_getConnectState(size_t n_args, const mp_obj_t *args)
42 {
43     LOGD(LOG_TAG, "entern  %s; n_args = %d;\n", __func__, n_args);
44     int ret = -1;
45     int state;
46     if (n_args < 1) {
47         LOGE(LOG_TAG, "%s: args num is illegal :n_args = %d;\n", __func__, n_args);
48         return mp_const_none;
49     }
50 
51     // if (amp_battery_connect_state_get(&state))
52     {
53         LOGE(LOG_TAG, "get battery connect state fail\n");
54     }
55     LOGD(LOG_TAG, "%s: state = %d;\n", __func__, state);
56 
57     return MP_ROM_INT(state);
58 }
59 STATIC MP_DEFINE_CONST_FUN_OBJ_VAR(battery_obj_getConnectState, 1, obj_getConnectState);
60 
obj_getVoltage(size_t n_args,const mp_obj_t * args)61 STATIC mp_obj_t obj_getVoltage(size_t n_args, const mp_obj_t *args)
62 {
63     LOGD(LOG_TAG, "entern  %s; n_args = %d;\n", __func__, n_args);
64     int ret = -1;
65     int voltage;
66 
67     if (n_args < 1) {
68         LOGE(LOG_TAG, "%s: args num is illegal :n_args = %d;\n", __func__, n_args);
69         return mp_const_none;
70     }
71 
72     // if (amp_battery_voltage_get(&voltage))
73     {
74         LOGE(LOG_TAG, "get battery connect voltage fail\n");
75     }
76     LOGD(LOG_TAG, "%s: voltage = %d;\n", __func__, voltage);
77 
78     return MP_ROM_INT(voltage);
79 }
80 STATIC MP_DEFINE_CONST_FUN_OBJ_VAR(battery_obj_getVoltage, 1, obj_getVoltage);
81 
obj_getLevel(size_t n_args,const mp_obj_t * args)82 STATIC mp_obj_t obj_getLevel(size_t n_args, const mp_obj_t *args)
83 {
84     LOGD(LOG_TAG, "entern  %s; n_args = %d;\n", __func__, n_args);
85     int ret = -1;
86     int level;
87 
88     if (n_args < 1) {
89         LOGE(LOG_TAG, "%s: args num is illegal :n_args = %d;\n", __func__, n_args);
90         return mp_const_none;
91     }
92 
93     // if (amp_battery_level_get(&level))
94     {
95         LOGE(LOG_TAG, "get battery connect level fail\n");
96     }
97     LOGD(LOG_TAG, "%s: level = %d;\n", __func__, level);
98 
99     return MP_ROM_INT(level);
100 }
101 STATIC MP_DEFINE_CONST_FUN_OBJ_VAR(battery_obj_getLevel, 1, obj_getLevel);
102 
obj_getTemperature(size_t n_args,const mp_obj_t * args)103 STATIC mp_obj_t obj_getTemperature(size_t n_args, const mp_obj_t *args)
104 {
105     LOGD(LOG_TAG, "entern  %s; n_args = %d;\n", __func__, n_args);
106     int ret = -1;
107     int temperature;
108 
109     if (n_args < 1) {
110         LOGE(LOG_TAG, "%s: args num is illegal :n_args = %d;\n", __func__, n_args);
111         return mp_const_none;
112     }
113 
114     // if (amp_battery_temperature_get(&temperature))
115     {
116         LOGE(LOG_TAG, "get battery connect temperature fail\n");
117     }
118     LOGD(LOG_TAG, "%s: temperature = %d;\n", __func__, temperature);
119 
120     return MP_ROM_INT(temperature);
121 }
122 STATIC MP_DEFINE_CONST_FUN_OBJ_VAR(battery_obj_getTemperature, 1, obj_getTemperature);
123 
124 STATIC const mp_rom_map_elem_t battery_locals_dict_table[] = {
125     { MP_OBJ_NEW_QSTR(MP_QSTR___name__), MP_ROM_QSTR(MP_QSTR_Battery) },
126     { MP_ROM_QSTR(MP_QSTR_open), MP_ROM_PTR(&battery_obj_open) },
127     { MP_ROM_QSTR(MP_QSTR_close), MP_ROM_PTR(&battery_obj_close) },
128     { MP_ROM_QSTR(MP_QSTR_getConnectState), MP_ROM_PTR(&battery_obj_getConnectState) },
129     { MP_ROM_QSTR(MP_QSTR_getVoltage), MP_ROM_PTR(&battery_obj_getVoltage) },
130     { MP_ROM_QSTR(MP_QSTR_getLevel), MP_ROM_PTR(&battery_obj_getLevel) },
131     { MP_ROM_QSTR(MP_QSTR_getTemperature), MP_ROM_PTR(&battery_obj_getTemperature) },
132 };
133 
134 STATIC MP_DEFINE_CONST_DICT(battery_locals_dict, battery_locals_dict_table);
135 
136 const mp_obj_module_t battery_module = {
137     .base = { &mp_type_module },
138     .globals = (mp_obj_dict_t *)&battery_locals_dict,
139 };
140