1 #include <stdio.h>
2 #include <string.h>
3 #include <stdlib.h>
4 
5 #include "py/mperrno.h"
6 #include "py/obj.h"
7 #include "py/runtime.h"
8 #include "py/builtin.h"
9 
10 #include "ulog/ulog.h"
11 
12 #define LOG_TAG "MOD_CHARGER"
13 
obj_open(size_t n_args,const mp_obj_t * args)14 STATIC mp_obj_t obj_open(size_t n_args, const mp_obj_t *args)
15 {
16     LOGD(LOG_TAG, "entern  %s; n_args = %d;\n", __func__, n_args);
17     int ret = -1;
18     if (n_args < 1)
19     {
20         LOGE(LOG_TAG, "%s: args num is illegal :n_args = %d;\n", __func__, n_args);
21         return mp_const_none;
22     }
23     LOGD(LOG_TAG, "%s:out\n", __func__);
24 
25     return mp_const_none;
26 }
27 STATIC MP_DEFINE_CONST_FUN_OBJ_VAR(charger_obj_open, 1, obj_open);
28 
obj_close(size_t n_args,const mp_obj_t * args)29 STATIC mp_obj_t obj_close(size_t n_args, const mp_obj_t *args)
30 {
31     LOGD(LOG_TAG, "entern  %s; n_args = %d;\n", __func__, n_args);
32     int ret = -1;
33     if (n_args < 1)
34     {
35         LOGE(LOG_TAG, "%s: args num is illegal :n_args = %d;\n", __func__, n_args);
36         return mp_const_none;
37     }
38     LOGD(LOG_TAG, "%s:out\n", __func__);
39 
40     return mp_const_none;
41 }
42 STATIC MP_DEFINE_CONST_FUN_OBJ_VAR(charger_obj_close, 1, obj_close);
43 
obj_getConnectState(size_t n_args,const mp_obj_t * args)44 STATIC mp_obj_t obj_getConnectState(size_t n_args, const mp_obj_t *args)
45 {
46     LOGD(LOG_TAG, "entern  %s; n_args = %d;\n", __func__, n_args);
47     int ret = -1;
48     int state;
49 
50     if (n_args < 1)
51     {
52         LOGE(LOG_TAG, "%s: args num is illegal :n_args = %d;\n", __func__, n_args);
53         return mp_const_none;
54     }
55 
56     //if (amp_charger_connect_state_get(&state))
57     {
58         LOGE(LOG_TAG, "get charger connection state fail\n");
59     }
60     LOGD(LOG_TAG, "%s: state = %d;\n", __func__, state);
61 
62     return MP_ROM_INT(state);
63 }
64 STATIC MP_DEFINE_CONST_FUN_OBJ_VAR(charger_obj_getConnectState, 1, obj_getConnectState);
65 
obj_getState(size_t n_args,const mp_obj_t * args)66 STATIC mp_obj_t obj_getState(size_t n_args, const mp_obj_t *args)
67 {
68     LOGD(LOG_TAG, "entern  %s; n_args = %d;\n", __func__, n_args);
69     int ret = -1;
70 
71     //amp_charger_state_t state = AMP_CHARGER_STAT_SHUTDOWN;
72     if (n_args < 1)
73     {
74         LOGE(LOG_TAG, "%s: args num is illegal :n_args = %d;\n", __func__, n_args);
75         return mp_const_none;
76     }
77 
78     //if (amp_charger_state_get(&state))
79     {
80         LOGE(LOG_TAG, "get charger connection state fail\n");
81     }
82     //LOGD(LOG_TAG, "%s: state = %d;\n", __func__, state);
83     //ret = state;
84 
85     return MP_ROM_INT(ret);
86 }
87 STATIC MP_DEFINE_CONST_FUN_OBJ_VAR(charger_obj_getState, 1, obj_getState);
88 
obj_getCurrent(size_t n_args,const mp_obj_t * args)89 STATIC mp_obj_t obj_getCurrent(size_t n_args, const mp_obj_t *args)
90 {
91     LOGD(LOG_TAG, "entern  %s; n_args = %d;\n", __func__, n_args);
92     int ret = -1;
93     int current;
94 
95     if (n_args < 1)
96     {
97         LOGE(LOG_TAG, "%s: args num is illegal :n_args = %d;\n", __func__, n_args);
98         return mp_const_none;
99     }
100 
101     //if (amp_charger_current_get(&current))
102     {
103         LOGE(LOG_TAG, "amp_charger_current_get fail\n");
104     }
105     LOGD(LOG_TAG, "%s: current = %d;\n", __func__, current);
106 
107     return MP_ROM_INT(current);
108 }
109 STATIC MP_DEFINE_CONST_FUN_OBJ_VAR(charger_obj_getCurrent, 1, obj_getCurrent);
110 
obj_switch(size_t n_args,const mp_obj_t * args)111 STATIC mp_obj_t obj_switch(size_t n_args, const mp_obj_t *args)
112 {
113     LOGD(LOG_TAG, "entern  %s; n_args = %d;\n", __func__, n_args);
114     int ret = 0;
115 
116     if (n_args < 2)
117     {
118         LOGE(LOG_TAG, "%s: args num is illegal :n_args = %d;\n", __func__, n_args);
119         return mp_const_none;
120     }
121 
122     int val = (int)mp_obj_get_int(args[1]);
123     //if (amp_charger_switch_set(val))
124     {
125         LOGE(LOG_TAG, "amp_charger_switch_set fail\n");
126         ret = -1;
127     }
128     LOGD(LOG_TAG, "%s: ret = %d;\n", __func__, ret);
129 
130     return MP_ROM_INT(ret);
131 }
132 STATIC MP_DEFINE_CONST_FUN_OBJ_VAR(charger_obj_switch, 2, obj_switch);
133 
obj_onConnect(size_t n_args,const mp_obj_t * args)134 STATIC mp_obj_t obj_onConnect(size_t n_args, const mp_obj_t *args)
135 {
136     LOGD(LOG_TAG, "entern  %s; n_args = %d;\n", __func__, n_args);
137     int ret = -1;
138     if (n_args < 1)
139     {
140         LOGE(LOG_TAG, "%s: args num is illegal :n_args = %d;\n", __func__, n_args);
141         return mp_const_none;
142     }
143     LOGD(LOG_TAG, "%s:out\n", __func__);
144 
145     return mp_const_none;
146 }
147 STATIC MP_DEFINE_CONST_FUN_OBJ_VAR(charger_obj_onConnect, 1, obj_onConnect);
148 
149 STATIC const mp_rom_map_elem_t charger_locals_dict_table[] = {
150     {MP_OBJ_NEW_QSTR(MP_QSTR___name__), MP_ROM_QSTR(MP_QSTR_Charger)},
151     {MP_ROM_QSTR(MP_QSTR_open), MP_ROM_PTR(&charger_obj_open)},
152     {MP_ROM_QSTR(MP_QSTR_close), MP_ROM_PTR(&charger_obj_close)},
153     {MP_ROM_QSTR(MP_QSTR_getConnectState), MP_ROM_PTR(&charger_obj_getConnectState)},
154     {MP_ROM_QSTR(MP_QSTR_getState), MP_ROM_PTR(&charger_obj_getState)},
155     {MP_ROM_QSTR(MP_QSTR_getCurrent), MP_ROM_PTR(&charger_obj_getCurrent)},
156     {MP_ROM_QSTR(MP_QSTR_switch), MP_ROM_PTR(&charger_obj_switch)},
157     {MP_ROM_QSTR(MP_QSTR_onConnect), MP_ROM_PTR(&charger_obj_onConnect)},
158 };
159 
160 STATIC MP_DEFINE_CONST_DICT(charger_locals_dict, charger_locals_dict_table);
161 
162 const mp_obj_module_t charger_module = {
163     .base = {&mp_type_module},
164     .globals = (mp_obj_dict_t *)&charger_locals_dict,
165 };
166