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_CHARGER"
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(charger_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(charger_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 
47     if (n_args < 1) {
48         LOGE(LOG_TAG, "%s: args num is illegal :n_args = %d;\n", __func__, n_args);
49         return mp_const_none;
50     }
51 
52     // if (amp_charger_connect_state_get(&state))
53     {
54         LOGE(LOG_TAG, "get charger connection state fail\n");
55     }
56     LOGD(LOG_TAG, "%s: state = %d;\n", __func__, state);
57 
58     return MP_ROM_INT(state);
59 }
60 STATIC MP_DEFINE_CONST_FUN_OBJ_VAR(charger_obj_getConnectState, 1, obj_getConnectState);
61 
obj_getState(size_t n_args,const mp_obj_t * args)62 STATIC mp_obj_t obj_getState(size_t n_args, const mp_obj_t *args)
63 {
64     LOGD(LOG_TAG, "entern  %s; n_args = %d;\n", __func__, n_args);
65     int ret = -1;
66 
67     // amp_charger_state_t state = AMP_CHARGER_STAT_SHUTDOWN;
68     if (n_args < 1) {
69         LOGE(LOG_TAG, "%s: args num is illegal :n_args = %d;\n", __func__, n_args);
70         return mp_const_none;
71     }
72 
73     // if (amp_charger_state_get(&state))
74     {
75         LOGE(LOG_TAG, "get charger connection state fail\n");
76     }
77     // LOGD(LOG_TAG, "%s: state = %d;\n", __func__, state);
78     // ret = state;
79 
80     return MP_ROM_INT(ret);
81 }
82 STATIC MP_DEFINE_CONST_FUN_OBJ_VAR(charger_obj_getState, 1, obj_getState);
83 
obj_getCurrent(size_t n_args,const mp_obj_t * args)84 STATIC mp_obj_t obj_getCurrent(size_t n_args, const mp_obj_t *args)
85 {
86     LOGD(LOG_TAG, "entern  %s; n_args = %d;\n", __func__, n_args);
87     int ret = -1;
88     int current;
89 
90     if (n_args < 1) {
91         LOGE(LOG_TAG, "%s: args num is illegal :n_args = %d;\n", __func__, n_args);
92         return mp_const_none;
93     }
94 
95     // if (amp_charger_current_get(&current))
96     {
97         LOGE(LOG_TAG, "amp_charger_current_get fail\n");
98     }
99     LOGD(LOG_TAG, "%s: current = %d;\n", __func__, current);
100 
101     return MP_ROM_INT(current);
102 }
103 STATIC MP_DEFINE_CONST_FUN_OBJ_VAR(charger_obj_getCurrent, 1, obj_getCurrent);
104 
obj_switch(size_t n_args,const mp_obj_t * args)105 STATIC mp_obj_t obj_switch(size_t n_args, const mp_obj_t *args)
106 {
107     LOGD(LOG_TAG, "entern  %s; n_args = %d;\n", __func__, n_args);
108     int ret = 0;
109 
110     if (n_args < 2) {
111         LOGE(LOG_TAG, "%s: args num is illegal :n_args = %d;\n", __func__, n_args);
112         return mp_const_none;
113     }
114 
115     int val = (int)mp_obj_get_int(args[1]);
116     // if (amp_charger_switch_set(val))
117     {
118         LOGE(LOG_TAG, "amp_charger_switch_set fail\n");
119         ret = -1;
120     }
121     LOGD(LOG_TAG, "%s: ret = %d;\n", __func__, ret);
122 
123     return MP_ROM_INT(ret);
124 }
125 STATIC MP_DEFINE_CONST_FUN_OBJ_VAR(charger_obj_switch, 2, obj_switch);
126 
obj_onConnect(size_t n_args,const mp_obj_t * args)127 STATIC mp_obj_t obj_onConnect(size_t n_args, const mp_obj_t *args)
128 {
129     LOGD(LOG_TAG, "entern  %s; n_args = %d;\n", __func__, n_args);
130     int ret = -1;
131     if (n_args < 1) {
132         LOGE(LOG_TAG, "%s: args num is illegal :n_args = %d;\n", __func__, n_args);
133         return mp_const_none;
134     }
135     LOGD(LOG_TAG, "%s:out\n", __func__);
136 
137     return mp_const_none;
138 }
139 STATIC MP_DEFINE_CONST_FUN_OBJ_VAR(charger_obj_onConnect, 1, obj_onConnect);
140 
141 STATIC const mp_rom_map_elem_t charger_locals_dict_table[] = {
142     { MP_OBJ_NEW_QSTR(MP_QSTR___name__), MP_ROM_QSTR(MP_QSTR_Charger) },
143     { MP_ROM_QSTR(MP_QSTR_open), MP_ROM_PTR(&charger_obj_open) },
144     { MP_ROM_QSTR(MP_QSTR_close), MP_ROM_PTR(&charger_obj_close) },
145     { MP_ROM_QSTR(MP_QSTR_getConnectState), MP_ROM_PTR(&charger_obj_getConnectState) },
146     { MP_ROM_QSTR(MP_QSTR_getState), MP_ROM_PTR(&charger_obj_getState) },
147     { MP_ROM_QSTR(MP_QSTR_getCurrent), MP_ROM_PTR(&charger_obj_getCurrent) },
148     { MP_ROM_QSTR(MP_QSTR_switch), MP_ROM_PTR(&charger_obj_switch) },
149     { MP_ROM_QSTR(MP_QSTR_onConnect), MP_ROM_PTR(&charger_obj_onConnect) },
150 };
151 
152 STATIC MP_DEFINE_CONST_DICT(charger_locals_dict, charger_locals_dict_table);
153 
154 const mp_obj_module_t charger_module = {
155     .base = { &mp_type_module },
156     .globals = (mp_obj_dict_t *)&charger_locals_dict,
157 };
158