Skip to content

Commit

Permalink
Merge pull request #466 from NicksonYap/led_rssi
Browse files Browse the repository at this point in the history
LED RSSI - turns white if disconnected (1 sec timeout)
  • Loading branch information
krichardsson committed Sep 9, 2019
2 parents 5d835fd + f9fe54a commit 6ebc99b
Show file tree
Hide file tree
Showing 2 changed files with 28 additions and 10 deletions.
26 changes: 20 additions & 6 deletions src/deck/drivers/src/ledring12.c
Original file line number Diff line number Diff line change
Expand Up @@ -683,16 +683,30 @@ static float badRssi = 85, goodRssi = 35;
static void rssiEffect(uint8_t buffer[][3], bool reset)
{
int i;
static int rssiid;
static int isConnectedId, rssiId;
float rssi;
bool isConnected;

rssiid = logGetVarId("radio", "rssi");
rssi = logGetFloat(rssiid);
isConnectedId = logGetVarId("radio", "isConnected");
isConnected = logGetUint(isConnectedId);

rssiId = logGetVarId("radio", "rssi");
rssi = logGetFloat(rssiId);

for (i = 0; i < NBR_LEDS; i++) {
buffer[i][0] = LIMIT(LINSCALE(badRssi, goodRssi, 255, 0, rssi)); // Red (bad)
buffer[i][1] = LIMIT(LINSCALE(badRssi, goodRssi, 0, 255, rssi)); // Green (good)
buffer[i][2] = 0; // Blue
if(isConnected){
buffer[i][0] = LIMIT(LINSCALE(badRssi, goodRssi, 255, 0, rssi)); // Red (bad)
buffer[i][1] = LIMIT(LINSCALE(badRssi, goodRssi, 0, 255, rssi)); // Green (good)
buffer[i][2] = 0; // Blue
}else{
// buffer[i][0] = 255; // Red
// buffer[i][1] = 0; // Green
// buffer[i][2] = 0; // Blue

buffer[i][0] = 100; // Red
buffer[i][1] = 100; // Green
buffer[i][2] = 100; // Blue
}
}
}

Expand Down
12 changes: 8 additions & 4 deletions src/hal/src/radiolink.c
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,7 @@ static int radiolinkReceiveCRTPPacket(CRTPPacket *p);

//Local RSSI variable used to enable logging of RSSI values from Radio
static uint8_t rssi;
static bool isConnected;
static uint32_t lastPacketTick;


Expand Down Expand Up @@ -166,10 +167,12 @@ void radiolinkSyslinkDispatch(SyslinkPacket *slp)
ledseqRun(LINK_LED, seq_linkup);
// no ack for broadcasts
} else if (slp->type == SYSLINK_RADIO_RSSI)
{
//Extract RSSI sample sent from radio
memcpy(&rssi, slp->data, sizeof(uint8_t));
}
{
//Extract RSSI sample sent from radio
memcpy(&rssi, slp->data, sizeof(uint8_t)); //rssi will not change on disconnect
}

isConnected = radiolinkIsConnected();
}

static int radiolinkReceiveCRTPPacket(CRTPPacket *p)
Expand Down Expand Up @@ -212,4 +215,5 @@ static int radiolinkSetEnable(bool enable)

LOG_GROUP_START(radio)
LOG_ADD(LOG_UINT8, rssi, &rssi)
LOG_ADD(LOG_UINT8, isConnected, &isConnected)
LOG_GROUP_STOP(radio)

0 comments on commit 6ebc99b

Please sign in to comment.