mirror of
https://github.com/DarkFlippers/unleashed-firmware
synced 2025-02-17 05:48:33 +00:00
update i2c tools
This commit is contained in:
parent
68219f0d7b
commit
3420cda83a
7 changed files with 36 additions and 29 deletions
|
@ -6,7 +6,7 @@ void scan_i2c_bus(i2cScanner* i2c_scanner) {
|
|||
// Get the bus
|
||||
furi_hal_i2c_acquire(I2C_BUS);
|
||||
// scan
|
||||
for(uint8_t addr = 0x01; addr < MAX_I2C_ADDR; addr++) {
|
||||
for(uint8_t addr = 0x01; addr <= MAX_I2C_ADDR << 1; addr++) {
|
||||
// Check for peripherals
|
||||
if(furi_hal_i2c_is_device_ready(I2C_BUS, addr, I2C_TIMEOUT)) {
|
||||
// skip even 8-bit addr
|
||||
|
|
|
@ -16,7 +16,7 @@ typedef enum { I2C_BUS_FREE, I2C_BUS_STARTED } i2cBusStates;
|
|||
#define MAX_MESSAGE_SIZE 128
|
||||
|
||||
// Nb of records
|
||||
#define MAX_RECORDS 32
|
||||
#define MAX_RECORDS 128
|
||||
|
||||
/// @brief Struct used to store our reads
|
||||
typedef struct {
|
||||
|
|
|
@ -2,8 +2,7 @@
|
|||
#include <furi_hal.h>
|
||||
#include <gui/gui.h>
|
||||
#include <i2cTools_icons.h>
|
||||
|
||||
#define APP_NAME "I2C Tools"
|
||||
#define APP_NAME "I2C_Tools"
|
||||
|
||||
#define SCAN_MENU_TEXT "Scan"
|
||||
#define SCAN_MENU_X 75
|
||||
|
|
|
@ -1,9 +1,7 @@
|
|||
#include <furi.h>
|
||||
#include <furi_hal.h>
|
||||
#include <gui/gui.h>
|
||||
|
||||
#include <i2cTools_icons.h>
|
||||
|
||||
#include "../i2cscanner.h"
|
||||
|
||||
#define SCAN_MENU_TEXT "Scan"
|
||||
|
|
|
@ -1,9 +1,7 @@
|
|||
#include <furi.h>
|
||||
#include <furi_hal.h>
|
||||
#include <gui/gui.h>
|
||||
|
||||
#include <i2cTools_icons.h>
|
||||
|
||||
#include "../i2csender.h"
|
||||
|
||||
#define SEND_MENU_TEXT "Send"
|
||||
|
|
|
@ -20,39 +20,53 @@ void draw_sniffer_view(Canvas* canvas, i2cSniffer* i2c_sniffer) {
|
|||
canvas_draw_str_aligned(canvas, 85, 51, AlignLeft, AlignTop, "Stop");
|
||||
}
|
||||
canvas_set_color(canvas, ColorBlack);
|
||||
if(i2c_sniffer->first) {
|
||||
canvas_draw_str_aligned(canvas, 50, 3, AlignLeft, AlignTop, "Nothing Recorded");
|
||||
return;
|
||||
}
|
||||
char text_buffer[8];
|
||||
// nbFrame text
|
||||
canvas_draw_str_aligned(canvas, 50, 3, AlignLeft, AlignTop, "Frame: ");
|
||||
snprintf(text_buffer, sizeof(text_buffer), "%d", (int)i2c_sniffer->menu_index + 1);
|
||||
canvas_draw_str_aligned(canvas, 85, 3, AlignLeft, AlignTop, text_buffer);
|
||||
canvas_draw_str_aligned(canvas, 100, 3, AlignLeft, AlignTop, "/");
|
||||
snprintf(text_buffer, sizeof(text_buffer), "%d", (int)i2c_sniffer->frame_index + 1);
|
||||
canvas_draw_str_aligned(canvas, 110, 3, AlignLeft, AlignTop, text_buffer);
|
||||
// Address text
|
||||
char addr_text[8];
|
||||
snprintf(
|
||||
addr_text,
|
||||
sizeof(addr_text),
|
||||
text_buffer,
|
||||
sizeof(text_buffer),
|
||||
"0x%02x",
|
||||
(int)(i2c_sniffer->frames[i2c_sniffer->menu_index].data[0] >> 1));
|
||||
canvas_draw_str_aligned(canvas, 50, 3, AlignLeft, AlignTop, "Addr: ");
|
||||
canvas_draw_str_aligned(canvas, 75, 3, AlignLeft, AlignTop, addr_text);
|
||||
canvas_draw_str_aligned(canvas, 50, 13, AlignLeft, AlignTop, "Addr: ");
|
||||
canvas_draw_str_aligned(canvas, 75, 13, AlignLeft, AlignTop, text_buffer);
|
||||
// R/W
|
||||
if((int)(i2c_sniffer->frames[i2c_sniffer->menu_index].data[0]) % 2 == 0) {
|
||||
canvas_draw_str_aligned(canvas, 105, 3, AlignLeft, AlignTop, "W");
|
||||
canvas_draw_str_aligned(canvas, 105, 13, AlignLeft, AlignTop, "W");
|
||||
} else {
|
||||
canvas_draw_str_aligned(canvas, 105, 3, AlignLeft, AlignTop, "R");
|
||||
canvas_draw_str_aligned(canvas, 105, 13, AlignLeft, AlignTop, "R");
|
||||
}
|
||||
// nbFrame text
|
||||
canvas_draw_str_aligned(canvas, 50, 13, AlignLeft, AlignTop, "Frames: ");
|
||||
snprintf(addr_text, sizeof(addr_text), "%d", (int)i2c_sniffer->menu_index + 1);
|
||||
canvas_draw_str_aligned(canvas, 90, 13, AlignLeft, AlignTop, addr_text);
|
||||
canvas_draw_str_aligned(canvas, 100, 13, AlignLeft, AlignTop, "/");
|
||||
snprintf(addr_text, sizeof(addr_text), "%d", (int)i2c_sniffer->frame_index + 1);
|
||||
canvas_draw_str_aligned(canvas, 110, 13, AlignLeft, AlignTop, addr_text);
|
||||
// Frames content
|
||||
const uint8_t x_min = 50;
|
||||
const uint8_t y_min = 23;
|
||||
uint8_t x_pos = 0;
|
||||
uint8_t y_pos = 23;
|
||||
uint8_t y_pos = 0;
|
||||
uint8_t row = 1;
|
||||
uint8_t column = 1;
|
||||
for(uint8_t i = 1; i < i2c_sniffer->frames[i2c_sniffer->menu_index].data_index; i++) {
|
||||
snprintf(
|
||||
addr_text,
|
||||
sizeof(addr_text),
|
||||
text_buffer,
|
||||
sizeof(text_buffer),
|
||||
"0x%02x",
|
||||
(int)i2c_sniffer->frames[i2c_sniffer->menu_index].data[i]);
|
||||
x_pos = 50 + (i - 1) * 35;
|
||||
canvas_draw_str_aligned(canvas, x_pos, y_pos, AlignLeft, AlignTop, addr_text);
|
||||
x_pos = x_min + (column - 1) * 35;
|
||||
y_pos = y_min + (row - 1) * 10;
|
||||
column++;
|
||||
if(column > 2) {
|
||||
column = 1;
|
||||
row++;
|
||||
}
|
||||
canvas_draw_str_aligned(canvas, x_pos, y_pos, AlignLeft, AlignTop, text_buffer);
|
||||
if(i2c_sniffer->frames[i2c_sniffer->menu_index].ack[i]) {
|
||||
canvas_draw_str_aligned(canvas, x_pos + 24, y_pos, AlignLeft, AlignTop, "A");
|
||||
} else {
|
||||
|
|
|
@ -1,9 +1,7 @@
|
|||
#include <furi.h>
|
||||
#include <furi_hal.h>
|
||||
#include <gui/gui.h>
|
||||
|
||||
#include <i2cTools_icons.h>
|
||||
|
||||
#include "../i2csniffer.h"
|
||||
|
||||
#define SNIFF_MENU_TEXT "Sniff"
|
||||
|
|
Loading…
Add table
Reference in a new issue