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(¤t))
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