Oliver Fabel 1 год назад
Родитель
Сommit
147f125f6a
3 измененных файлов с 16 добавлено и 5 удалено
  1. 1 0
      genhdr/qstrdefs.generated.h
  2. 12 4
      mp_flipper_modflipperzero.c
  3. 3 1
      mp_flipper_modflipperzero.h

+ 1 - 0
genhdr/qstrdefs.generated.h

@@ -399,6 +399,7 @@ QDEF1(MP_QSTR_gpio_get_pin, 85, 12, "gpio_get_pin")
 QDEF1(MP_QSTR_gpio_init_pin, 185, 13, "gpio_init_pin")
 QDEF1(MP_QSTR_gpio_init_pin, 185, 13, "gpio_init_pin")
 QDEF1(MP_QSTR_gpio_set_pin, 65, 12, "gpio_set_pin")
 QDEF1(MP_QSTR_gpio_set_pin, 65, 12, "gpio_set_pin")
 QDEF1(MP_QSTR_hex, 112, 3, "hex")
 QDEF1(MP_QSTR_hex, 112, 3, "hex")
+QDEF1(MP_QSTR_infrared_is_busy, 195, 16, "infrared_is_busy")
 QDEF1(MP_QSTR_infrared_receive, 112, 16, "infrared_receive")
 QDEF1(MP_QSTR_infrared_receive, 112, 16, "infrared_receive")
 QDEF1(MP_QSTR_infrared_transmit, 81, 17, "infrared_transmit")
 QDEF1(MP_QSTR_infrared_transmit, 81, 17, "infrared_transmit")
 QDEF1(MP_QSTR_intersection, 40, 12, "intersection")
 QDEF1(MP_QSTR_intersection, 40, 12, "intersection")

+ 12 - 4
mp_flipper_modflipperzero.c

@@ -601,14 +601,21 @@ static mp_obj_t flipperzero_infrared_transmit(size_t n_args, const mp_obj_t* arg
     mp_obj_get_array(args[0], &length, &signal);
     mp_obj_get_array(args[0], &length, &signal);
 
 
     mp_int_t repeat = n_args > 1 ? mp_obj_get_int(args[1]) : 1;
     mp_int_t repeat = n_args > 1 ? mp_obj_get_int(args[1]) : 1;
-    mp_int_t frequency = n_args > 2 ? mp_obj_get_int(args[2]) : MP_FLIPPER_INFRARED_TX_DEFAULT_FREQUENCY;
-    mp_float_t duty_cycle = n_args > 3 ? mp_obj_get_float(args[3]) : MP_FLIPPER_INFRARED_TX_DEFAULT_DUTY_CYCLE;
+    bool use_external_pin = n_args > 2 ? mp_obj_is_true(args[2]) ? false;
+    mp_int_t frequency = n_args > 3 ? mp_obj_get_int(args[3]) : MP_FLIPPER_INFRARED_TX_DEFAULT_FREQUENCY;
+    mp_float_t duty_cycle = n_args > 4 ? mp_obj_get_float(args[4]) : MP_FLIPPER_INFRARED_TX_DEFAULT_DUTY_CYCLE;
 
 
-    return mp_flipper_infrared_transmit(signal, length, flipperzero_infrared_tx_signal_provider, repeat, frequency, duty_cycle) ?
+    return mp_flipper_infrared_transmit(
+               signal, length, flipperzero_infrared_tx_signal_provider, repeat, frequency, duty_cycle, use_external_pin) ?
                mp_const_true :
                mp_const_true :
                mp_const_false;
                mp_const_false;
 }
 }
-static MP_DEFINE_CONST_FUN_OBJ_VAR_BETWEEN(flipperzero_infrared_transmit_obj, 1, 4, flipperzero_infrared_transmit);
+static MP_DEFINE_CONST_FUN_OBJ_VAR_BETWEEN(flipperzero_infrared_transmit_obj, 1, 5, flipperzero_infrared_transmit);
+
+static mp_obj_t flipperzero_infrared_is_busy() {
+    return mp_flipper_infrared_is_busy() ? mp_const_true : mp_const_false;
+}
+static MP_DEFINE_CONST_FUN_OBJ_0(flipperzero_infrared_is_busy_obj, flipperzero_infrared_is_busy);
 
 
 static const mp_rom_map_elem_t flipperzero_module_globals_table[] = {
 static const mp_rom_map_elem_t flipperzero_module_globals_table[] = {
     // light
     // light
@@ -838,6 +845,7 @@ for octave in range(9):
     // infrared - functions
     // infrared - functions
     {MP_ROM_QSTR(MP_QSTR_infrared_receive), MP_ROM_PTR(&flipperzero_infrared_receive_obj)},
     {MP_ROM_QSTR(MP_QSTR_infrared_receive), MP_ROM_PTR(&flipperzero_infrared_receive_obj)},
     {MP_ROM_QSTR(MP_QSTR_infrared_transmit), MP_ROM_PTR(&flipperzero_infrared_transmit_obj)},
     {MP_ROM_QSTR(MP_QSTR_infrared_transmit), MP_ROM_PTR(&flipperzero_infrared_transmit_obj)},
+    {MP_ROM_QSTR(MP_QSTR_infrared_is_busy), MP_ROM_PTR(&flipperzero_infrared_is_busy_obj)},
 };
 };
 static MP_DEFINE_CONST_DICT(flipperzero_module_globals, flipperzero_module_globals_table);
 static MP_DEFINE_CONST_DICT(flipperzero_module_globals, flipperzero_module_globals_table);
 
 

+ 3 - 1
mp_flipper_modflipperzero.h

@@ -255,4 +255,6 @@ bool mp_flipper_infrared_transmit(
     mp_flipper_infrared_signal_tx_provider callback,
     mp_flipper_infrared_signal_tx_provider callback,
     uint32_t repeat,
     uint32_t repeat,
     uint32_t frequency,
     uint32_t frequency,
-    float duty);
+    float duty,
+    bool use_external_pin);
+bool mp_flipper_infrared_is_busy();