Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 13 additions & 3 deletions applications/bt/bt_service/bt.c
100755 → 100644
Original file line number Diff line number Diff line change
Expand Up @@ -167,7 +167,11 @@ static void bt_rpc_send_bytes_callback(void* context, uint8_t* bytes, size_t byt
furi_assert(context);
Bt* bt = context;

osEventFlagsClear(bt->rpc_event, BT_RPC_EVENT_ALL);
if(osEventFlagsGet(bt->rpc_event) & BT_RPC_EVENT_DISCONNECTED) {
// Early stop from sending if we're already disconnected
return;
}
osEventFlagsClear(bt->rpc_event, BT_RPC_EVENT_ALL & (~BT_RPC_EVENT_DISCONNECTED));
size_t bytes_sent = 0;
while(bytes_sent < bytes_len) {
size_t bytes_remain = bytes_len - bytes_sent;
Expand All @@ -178,10 +182,14 @@ static void bt_rpc_send_bytes_callback(void* context, uint8_t* bytes, size_t byt
furi_hal_bt_serial_tx(&bytes[bytes_sent], bytes_remain);
bytes_sent += bytes_remain;
}
uint32_t event_flag =
osEventFlagsWait(bt->rpc_event, BT_RPC_EVENT_ALL, osFlagsWaitAny, osWaitForever);
// We want BT_RPC_EVENT_DISCONNECTED to stick, so don't clear
uint32_t event_flag = osEventFlagsWait(
bt->rpc_event, BT_RPC_EVENT_ALL, osFlagsWaitAny | osFlagsNoClear, osWaitForever);
if(event_flag & BT_RPC_EVENT_DISCONNECTED) {
break;
} else {
// If we didn't get BT_RPC_EVENT_DISCONNECTED, then clear everything else
osEventFlagsClear(bt->rpc_event, BT_RPC_EVENT_ALL & (~BT_RPC_EVENT_DISCONNECTED));
}
}
}
Expand All @@ -197,6 +205,8 @@ static bool bt_on_gap_event_callback(GapEvent event, void* context) {
bt->status = BtStatusConnected;
BtMessage message = {.type = BtMessageTypeUpdateStatus};
furi_check(osMessageQueuePut(bt->message_queue, &message, 0, osWaitForever) == osOK);
// Clear BT_RPC_EVENT_DISCONNECTED because it might be set from previous session
osEventFlagsClear(bt->rpc_event, BT_RPC_EVENT_DISCONNECTED);
if(bt->profile == BtProfileSerial) {
// Open RPC session
bt->rpc_session = rpc_session_open(bt->rpc);
Expand Down
2 changes: 1 addition & 1 deletion applications/gpio/gpio_custom_event.h
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
typedef enum {
GpioStartEventOtgOff = 0,
GpioStartEventOtgOn,
GpioStartEventManualConrol,
GpioStartEventManualControl,
GpioStartEventUsbUart,

GpioCustomEventErrorBack,
Expand Down
4 changes: 2 additions & 2 deletions applications/gpio/scenes/gpio_scene_start.c
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ static void gpio_scene_start_var_list_enter_callback(void* context, uint32_t ind
furi_assert(context);
GpioApp* app = context;
if(index == GpioItemTest) {
view_dispatcher_send_custom_event(app->view_dispatcher, GpioStartEventManualConrol);
view_dispatcher_send_custom_event(app->view_dispatcher, GpioStartEventManualControl);
} else if(index == GpioItemUsbUart) {
view_dispatcher_send_custom_event(app->view_dispatcher, GpioStartEventUsbUart);
}
Expand Down Expand Up @@ -82,7 +82,7 @@ bool gpio_scene_start_on_event(void* context, SceneManagerEvent event) {
furi_hal_power_enable_otg();
} else if(event.event == GpioStartEventOtgOff) {
furi_hal_power_disable_otg();
} else if(event.event == GpioStartEventManualConrol) {
} else if(event.event == GpioStartEventManualControl) {
scene_manager_set_scene_state(app->scene_manager, GpioSceneStart, GpioItemTest);
scene_manager_next_scene(app->scene_manager, GpioSceneTest);
} else if(event.event == GpioStartEventUsbUart) {
Expand Down
4 changes: 2 additions & 2 deletions assets/resources/Manifest
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
V:0
T:1651524332
T:1653334495
D:badusb
D:dolphin
D:infrared
Expand Down Expand Up @@ -226,7 +226,7 @@ D:infrared/assets
F:d895fda2f48c6cc4c55e8a398ff52e43:74300:infrared/assets/tv.ir
F:a157a80f5a668700403d870c23b9567d:470:music_player/Marble_Machine.fmf
D:nfc/assets
F:c6826a621d081d68309e4be424d3d974:4715:nfc/assets/aid.nfc
F:81dc04c7b181f94b644079a71476dff4:4742:nfc/assets/aid.nfc
F:86efbebdf41bb6bf15cc51ef88f069d5:2565:nfc/assets/country_code.nfc
F:41b4f08774249014cb8d3dffa5f5c07d:1757:nfc/assets/currency_code.nfc
F:c60e862919731b0bd538a1001bbc1098:17453:nfc/assets/mf_classic_dict.nfc
Expand Down
1 change: 1 addition & 0 deletions assets/resources/nfc/assets/aid.nfc
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,7 @@ A0000004540010: Etranzact Genesis Card
A0000004540011: Etranzact Genesis Card 2
A0000004766C: GOOGLE_PAYMENT
A0000005241010: RuPay
A0000006472F0001: FIDO U2F
A0000006723010: TROY chip credit card
A0000006723020: TROY chip debit card
A0000007705850: XTRAPOWER
Expand Down