84
84
//|
85
85
//| Catch all exception for Bluetooth related errors.
86
86
//|
87
- MP_DEFINE_EXCEPTION (BluetoothError , Exception )
87
+ MP_DEFINE_BLEIO_EXCEPTION (BluetoothError , Exception )
88
88
89
89
NORETURN void mp_raise_bleio_BluetoothError (const compressed_string_t * fmt , ...) {
90
90
va_list argptr ;
91
91
va_start (argptr ,fmt );
92
- mp_obj_t exception = mp_obj_new_exception_msg_vlist (& mp_type_BluetoothError , fmt , argptr );
92
+ mp_obj_t exception = mp_obj_new_exception_msg_vlist (& mp_type_bleio_BluetoothError , fmt , argptr );
93
93
va_end (argptr );
94
94
nlr_raise (exception );
95
95
}
@@ -98,11 +98,11 @@ NORETURN void mp_raise_bleio_BluetoothError(const compressed_string_t* fmt, ...)
98
98
//|
99
99
//| Raised when a connection is unavailable.
100
100
//|
101
- MP_DEFINE_EXCEPTION (ConnectionError , BluetoothError )
101
+ MP_DEFINE_BLEIO_EXCEPTION (ConnectionError , bleio_BluetoothError )
102
102
NORETURN void mp_raise_bleio_ConnectionError (const compressed_string_t * fmt , ...) {
103
103
va_list argptr ;
104
104
va_start (argptr ,fmt );
105
- mp_obj_t exception = mp_obj_new_exception_msg_vlist (& mp_type_ConnectionError , fmt , argptr );
105
+ mp_obj_t exception = mp_obj_new_exception_msg_vlist (& mp_type_bleio_ConnectionError , fmt , argptr );
106
106
va_end (argptr );
107
107
nlr_raise (exception );
108
108
}
@@ -112,25 +112,26 @@ NORETURN void mp_raise_bleio_ConnectionError(const compressed_string_t* fmt, ...
112
112
//| Raised when a resource is used as the mismatched role. For example, if a local CCCD is
113
113
//| attempted to be set but they can only be set when remote.
114
114
//|
115
- MP_DEFINE_EXCEPTION (RoleError , BluetoothError )
115
+ MP_DEFINE_BLEIO_EXCEPTION (RoleError , bleio_BluetoothError )
116
116
NORETURN void mp_raise_bleio_RoleError (const compressed_string_t * msg ) {
117
- mp_raise_msg (& mp_type_RoleError , msg );
117
+ mp_raise_msg (& mp_type_bleio_RoleError , msg );
118
118
}
119
119
120
120
//| .. class:: SecurityError(BluetoothError)
121
121
//|
122
122
//| Raised when a security related error occurs.
123
123
//|
124
- MP_DEFINE_EXCEPTION (SecurityError , BluetoothError )
124
+ MP_DEFINE_BLEIO_EXCEPTION (SecurityError , bleio_BluetoothError )
125
125
NORETURN void mp_raise_bleio_SecurityError (const compressed_string_t * fmt , ...) {
126
126
va_list argptr ;
127
127
va_start (argptr ,fmt );
128
- mp_obj_t exception = mp_obj_new_exception_msg_vlist (& mp_type_SecurityError , fmt , argptr );
128
+ mp_obj_t exception = mp_obj_new_exception_msg_vlist (& mp_type_bleio_SecurityError , fmt , argptr );
129
129
va_end (argptr );
130
130
nlr_raise (exception );
131
131
}
132
132
133
133
STATIC const mp_rom_map_elem_t bleio_module_globals_table [] = {
134
+ // Name must be the first entry so that the exception printing below is correct.
134
135
{ MP_ROM_QSTR (MP_QSTR___name__ ), MP_ROM_QSTR (MP_QSTR__bleio ) },
135
136
{ MP_ROM_QSTR (MP_QSTR_Adapter ), MP_ROM_PTR (& bleio_adapter_type ) },
136
137
{ MP_ROM_QSTR (MP_QSTR_Address ), MP_ROM_PTR (& bleio_address_type ) },
@@ -148,14 +149,24 @@ STATIC const mp_rom_map_elem_t bleio_module_globals_table[] = {
148
149
{ MP_ROM_QSTR (MP_QSTR_adapter ), MP_ROM_PTR (& common_hal_bleio_adapter_obj ) },
149
150
150
151
// Errors
151
- { MP_ROM_QSTR (MP_QSTR_BluetoothError ), MP_ROM_PTR (& mp_type_BluetoothError ) },
152
- { MP_ROM_QSTR (MP_QSTR_ConnectionError ), MP_ROM_PTR (& mp_type_ConnectionError ) },
153
- { MP_ROM_QSTR (MP_QSTR_RoleError ), MP_ROM_PTR (& mp_type_RoleError ) },
154
- { MP_ROM_QSTR (MP_QSTR_SecurityError ), MP_ROM_PTR (& mp_type_SecurityError ) },
152
+ { MP_ROM_QSTR (MP_QSTR_BluetoothError ), MP_ROM_PTR (& mp_type_bleio_BluetoothError ) },
153
+ { MP_ROM_QSTR (MP_QSTR_ConnectionError ), MP_ROM_PTR (& mp_type_bleio_ConnectionError ) },
154
+ { MP_ROM_QSTR (MP_QSTR_RoleError ), MP_ROM_PTR (& mp_type_bleio_RoleError ) },
155
+ { MP_ROM_QSTR (MP_QSTR_SecurityError ), MP_ROM_PTR (& mp_type_bleio_SecurityError ) },
155
156
};
156
157
157
158
STATIC MP_DEFINE_CONST_DICT (bleio_module_globals , bleio_module_globals_table );
158
159
160
+ void bleio_exception_print (const mp_print_t * print , mp_obj_t o_in , mp_print_kind_t kind ) {
161
+ mp_print_kind_t k = kind & ~PRINT_EXC_SUBCLASS ;
162
+ bool is_subclass = kind & PRINT_EXC_SUBCLASS ;
163
+ if (!is_subclass && (k == PRINT_REPR || k == PRINT_EXC )) {
164
+ mp_print_str (print , qstr_str (MP_OBJ_QSTR_VALUE (bleio_module_globals_table [0 ].value )));
165
+ mp_print_str (print , "." );
166
+ }
167
+ mp_obj_exception_print (print , o_in , kind );
168
+ }
169
+
159
170
const mp_obj_module_t bleio_module = {
160
171
.base = { & mp_type_module },
161
172
.globals = (mp_obj_dict_t * )& bleio_module_globals ,
0 commit comments