Skip to content
Merged
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
1 change: 0 additions & 1 deletion device/src/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,6 @@ if(NOT CONFIG_BOARD_UHK_60_RIGHT)
messenger.c
pin_wiring.c
shell/shell_log_backend.c
resend.c
round_trip_test.c
settings.c
shell/shell_backend_usb.c
Expand Down
5 changes: 0 additions & 5 deletions device/src/connections.h
Original file line number Diff line number Diff line change
Expand Up @@ -68,11 +68,6 @@
typedef struct {
uint8_t rxIdx;
uint8_t txIdx;
uint16_t missedCount;
bool needsResend;
uint8_t lastSentResendableWm;
uint8_t lastSentId1;
uint8_t lastSentId2;
} ATTR_PACKED connection_watermarks_t;

typedef struct {
Expand Down
4 changes: 1 addition & 3 deletions device/src/keyboard/oled/widgets/widget_store.c
Original file line number Diff line number Diff line change
Expand Up @@ -82,10 +82,8 @@ static string_segment_t getKeymapText() {
static string_segment_t getDebugLineText() {
#define BUFFER_LENGTH 80
static char buffer[BUFFER_LENGTH] = { [BUFFER_LENGTH-1] = 0 };
snprintf(buffer, BUFFER_LENGTH-1, "D %d, MB %d, MU %d, R %d, RTT %d",
snprintf(buffer, BUFFER_LENGTH-1, "D %d, R %d, RTT %d",
MessengerQueue_DroppedMessageCount,
Connections[ConnectionId_UartLeft].watermarks.missedCount,
Connections[ConnectionId_NusServerLeft].watermarks.missedCount,
StateSync_LeftResetCounter,
RoundTripTime
);
Expand Down
3 changes: 1 addition & 2 deletions device/src/keyboard/uart_bridge.c
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,6 @@
#include "bt_manager.h"
#include "debug.h"
#include "connections.h"
#include "resend.h"
#include "pin_wiring.h"
#include "keyboard/uart_link.h"
#include "shared/uart_parser.h"
Expand Down Expand Up @@ -161,7 +160,7 @@ int UartBridge_SendMessage(message_t* msg) {
UartLink_LockBusy(&uartState->core);

// Call this only after we have taken the semaphore.
Resend_RegisterMessageAndUpdateWatermarks(msg);
Messenger_UpdateWatermarks(msg);

UartParser_StartMessage(&uartState->parser);

Expand Down
44 changes: 5 additions & 39 deletions device/src/messenger.c
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,6 @@
#include "slave_drivers/uhk_module_driver.h"
#include "macros/status_buffer.h"
#include "connections.h"
#include "resend.h"
#include "debug.h"
#include "trace.h"
#include "usb_commands/usb_command_reenumerate.h"
Expand Down Expand Up @@ -117,11 +116,6 @@ static connection_id_t determineChannel(device_id_t dst) {
return ConnectionId_Invalid;
}

uint16_t Messenger_GetMissedMessages(device_id_t dst) {
connection_id_t connId = determineChannel(dst);
return Connections[connId].watermarks.missedCount;
}

static char getDeviceAbbrev(device_id_t src) {
switch (src) {
case DeviceId_Uhk80_Left:
Expand Down Expand Up @@ -153,9 +147,6 @@ static void receiveLeft(device_id_t src, const uint8_t* data, uint16_t len) {
case MessageId_RoundTripTest:
RoundTripTest_Receive(data, len);
break;
case MessageId_ResendRequest:
Resend_ResendRequestReceived(src, determineChannel(src), data, len);
break;
default:
printk("Didn't expect to receive message %i %i\n", data[0], data[1]);
break;
Expand Down Expand Up @@ -200,9 +191,6 @@ static void receiveRight(device_id_t src, const uint8_t* data, uint16_t len) {
case MessageId_RoundTripTest:
RoundTripTest_Receive(data, len);
break;
case MessageId_ResendRequest:
Resend_ResendRequestReceived(src, determineChannel(src), data, len);
break;
default:
printk("Unrecognized or unexpected message [%i, %i, ...]\n", data[0], data[1]);
break;
Expand Down Expand Up @@ -264,9 +252,6 @@ static void receiveDongle(device_id_t src, const uint8_t* data, uint16_t len) {
case MessageId_RoundTripTest:
RoundTripTest_Receive(data, len);
break;
case MessageId_ResendRequest:
Resend_ResendRequestReceived(src, determineChannel(src), data, len);
break;
default:
printk("Unrecognized or unexpected message [%i, %i, ...]\n", data[0], data[1]);
break;
Expand Down Expand Up @@ -386,34 +371,11 @@ void logAllMessages(uint8_t srcConnectionId, uint8_t src, const uint8_t* data, u


bool processWatermarks(uint8_t srcConnectionId, uint8_t src, const uint8_t* data, uint16_t len, uint8_t offset) {
if (data[offset+MessageOffset_MsgId1] == MessageId_ResendRequest) {
return true;
}

uint8_t wm = data[offset+MessageOffset_Wm];
uint8_t lastWm = Connections[srcConnectionId].watermarks.rxIdx;
uint8_t expectedWm = lastWm + 1;

if (wm == lastWm) {
// we have already received this message, so don't push it into the queue again.
return false;
}

if (data == MessengerQueue_BlackholeBuffer) {
return false;
}

if (false && wm != expectedWm && DEBUG_MODE) {
if (wm != 0) {
int8_t difference = wm - expectedWm;
LogUSDO("Message index doesn't match by %i message(s) from connection %d (%s), wm %d / %d\n", difference, srcConnectionId, Connections_GetStaticName(srcConnectionId), wm, expectedWm);
} else {
// they have resetted their connection; that is fine, just update our watermarks
}
Connections[srcConnectionId].watermarks.missedCount++;
}

Connections[srcConnectionId].watermarks.rxIdx = wm;
Connections[srcConnectionId].watermarks.rxIdx = data[offset+MessageOffset_Wm];

return true;
}
Expand Down Expand Up @@ -472,6 +434,10 @@ void Messenger_ProcessQueue() {
}
}

void Messenger_UpdateWatermarks(message_t* msg) {
msg->wm = Connections[msg->connectionId].watermarks.txIdx++;
}

int Messenger_SendMessage(message_t* message) {
connection_id_t connectionId = message->connectionId;
device_id_t dst = message->dst;
Expand Down
2 changes: 1 addition & 1 deletion device/src/messenger.h
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@

// Functions:

uint16_t Messenger_GetMissedMessages(device_id_t dst);
void Messenger_UpdateWatermarks(message_t* msg);

int Messenger_SendMessage(message_t* message);
int Messenger_Send(device_id_t dst, uint8_t messageId, const uint8_t* data, uint16_t len);
Expand Down
3 changes: 1 addition & 2 deletions device/src/nus_client.c
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,6 @@
#include "messenger_queue.h"
#include "debug.h"
#include <zephyr/settings/settings.h>
#include "resend.h"
#include "trace.h"
#include <zephyr/logging/log.h>
#include "config_manager.h"
Expand Down Expand Up @@ -196,7 +195,7 @@ int NusClient_SendMessage(message_t* msg) {
// gives it back on error, and the `sent` callback gives it back on success.

// Call this only after we have taken the semaphore.
Resend_RegisterMessageAndUpdateWatermarks(msg);
Messenger_UpdateWatermarks(msg);

uint8_t buffer[MAX_LINK_PACKET_LENGTH];
uint8_t bufferIdx = 0;
Expand Down
3 changes: 1 addition & 2 deletions device/src/nus_server.c
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,6 @@
#include "messenger_queue.h"
#include "debug.h"
#include "zephyr/bluetooth/addr.h"
#include "resend.h"
#include <zephyr/logging/log.h>
#include "bt_manager.h"
#include "hid/transport.h"
Expand Down Expand Up @@ -115,7 +114,7 @@ int NusServer_SendMessageTo(message_t* msg, struct bt_conn* conn) {
// gives it back on error, and the `sent` callback gives it back on success.

// Call this only after we have taken the semaphore.
Resend_RegisterMessageAndUpdateWatermarks(msg);
Messenger_UpdateWatermarks(msg);

uint8_t buffer[MAX_LINK_PACKET_LENGTH];
uint8_t bufferIdx = 0;
Expand Down
102 changes: 0 additions & 102 deletions device/src/resend.c

This file was deleted.

28 changes: 0 additions & 28 deletions device/src/resend.h

This file was deleted.

3 changes: 0 additions & 3 deletions right/src/event_scheduler.c
Original file line number Diff line number Diff line change
Expand Up @@ -222,9 +222,6 @@ static void processEvt(event_scheduler_event_t evt)
RoundTripTest_Run();
EventScheduler_Schedule(Timer_GetCurrentTime()+10000, EventSchedulerEvent_RoundTripTest, "Event scheduler loop");
break;
case EventSchedulerEvent_ResendMessage:
Resend_RequestResendSync();
break;
case EventSchedulerEvent_CheckFwChecksums:
StateSync_CheckFirmwareVersions();
break;
Expand Down
1 change: 0 additions & 1 deletion right/src/stubs.c
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,6 @@
ATTRS void BtConn_UpdateHostConnectionPeerAllocations() {};
ATTRS void Oled_RequestRedraw() {};
ATTRS void RoundTripTest_Run() {};
ATTRS void Resend_RequestResendSync() {};
ATTRS void PairingScreen_Feedback(const char* message) {};
ATTRS void StateSync_CheckFirmwareVersions() {};
ATTRS void StateSync_CheckDongleProtocolVersion() {};
Expand Down
1 change: 0 additions & 1 deletion right/src/stubs.h
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,6 @@
extern void BtConn_UpdateHostConnectionPeerAllocations();
extern void Oled_RequestRedraw();
extern void RoundTripTest_Run();
extern void Resend_RequestResendSync();
extern void PairingScreen_Feedback(const char* message);
extern void StateSync_CheckFirmwareVersions();
extern void StateSync_CheckDongleProtocolVersion();
Expand Down
Loading