Skip to content

Commit

Permalink
add an async blocking bool - continue work
Browse files Browse the repository at this point in the history
  • Loading branch information
zxkmm committed Apr 17, 2024
1 parent 24bd55f commit b69ddbd
Showing 1 changed file with 102 additions and 0 deletions.
102 changes: 102 additions & 0 deletions firmware/application/usb_serial_shell.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,9 @@ static EventDispatcher* getEventDispatcherInstance() {
}

static void cmd_reboot(BaseSequentialStream* chp, int argc, char* argv[]) {
if (!portapack::async_tx_enabled) {
return;
}
(void)chp;
(void)argc;
(void)argv;
Expand All @@ -75,6 +78,9 @@ static void cmd_reboot(BaseSequentialStream* chp, int argc, char* argv[]) {
}

static void cmd_dfu(BaseSequentialStream* chp, int argc, char* argv[]) {
if (!portapack::async_tx_enabled) {
return;
}
(void)chp;
(void)argc;
(void)argv;
Expand All @@ -90,6 +96,9 @@ static void cmd_dfu(BaseSequentialStream* chp, int argc, char* argv[]) {
}

static void cmd_hackrf(BaseSequentialStream* chp, int argc, char* argv[]) {
if (!portapack::async_tx_enabled) {
return;
}
(void)chp;
(void)argc;
(void)argv;
Expand All @@ -100,6 +109,9 @@ static void cmd_hackrf(BaseSequentialStream* chp, int argc, char* argv[]) {
}

static void cmd_sd_over_usb(BaseSequentialStream* chp, int argc, char* argv[]) {
if (!portapack::async_tx_enabled) {
return;
}
(void)chp;
(void)argc;
(void)argv;
Expand Down Expand Up @@ -135,6 +147,9 @@ bool strEndsWith(const std::u16string& str, const std::u16string& suffix) {
}

static void cmd_flash(BaseSequentialStream* chp, int argc, char* argv[]) {
if (!portapack::async_tx_enabled) {
return;
}
if (argc != 1) {
chprintf(chp, "Usage: flash /FIRMWARE/portapack-h1_h2-mayhem.bin\r\n");
return;
Expand Down Expand Up @@ -165,6 +180,9 @@ static void cmd_flash(BaseSequentialStream* chp, int argc, char* argv[]) {
}

static void cmd_screenshot(BaseSequentialStream* chp, int argc, char* argv[]) {
if (!portapack::async_tx_enabled) {
return;
}
(void)argc;
(void)argv;

Expand All @@ -190,6 +208,9 @@ static void cmd_screenshot(BaseSequentialStream* chp, int argc, char* argv[]) {

// gives full color.
static void cmd_screenframe(BaseSequentialStream* chp, int argc, char* argv[]) {
if (!portapack::async_tx_enabled) {
return;
}
(void)argc;
(void)argv;

Expand Down Expand Up @@ -224,6 +245,9 @@ static char getChrFromRgb(uint8_t r, uint8_t g, uint8_t b) {

// keep track of a buffer, and sends only if full. not only line by line
static void screenbuffer_helper_add(BaseSequentialStream* chp, char* buffer, size_t& wp, char ch) {
if (!portapack::async_tx_enabled) {
return;
}
buffer[wp++] = ch;
if (wp > USBSERIAL_BUFFERS_SIZE - 1) {
fillOBuffer(&((SerialUSBDriver*)chp)->oqueue, (const uint8_t*)buffer, USBSERIAL_BUFFERS_SIZE);
Expand All @@ -233,6 +257,9 @@ static void screenbuffer_helper_add(BaseSequentialStream* chp, char* buffer, siz

// sends only 1 byte (printable only) per pixel, so around 96 colors
static void cmd_screenframeshort(BaseSequentialStream* chp, int argc, char* argv[]) {
if (!portapack::async_tx_enabled) {
return;
}
(void)argc;
(void)argv;
auto evtd = getEventDispatcherInstance();
Expand All @@ -257,6 +284,9 @@ static void cmd_screenframeshort(BaseSequentialStream* chp, int argc, char* argv
}

static void cmd_write_memory(BaseSequentialStream* chp, int argc, char* argv[]) {
if (!portapack::async_tx_enabled) {
return;
}
if (argc != 2) {
chprintf(chp, "usage: write_memory <address> <value (1 or 4 bytes)>\r\n");
chprintf(chp, "example: write_memory 0x40004008 0x00000002\r\n");
Expand Down Expand Up @@ -285,6 +315,9 @@ static void cmd_write_memory(BaseSequentialStream* chp, int argc, char* argv[])
}

static void cmd_read_memory(BaseSequentialStream* chp, int argc, char* argv[]) {
if (!portapack::async_tx_enabled) {
return;
}
if (argc != 1) {
chprintf(chp, "usage: read_memory 0x40004008\r\n");
return;
Expand All @@ -297,6 +330,9 @@ static void cmd_read_memory(BaseSequentialStream* chp, int argc, char* argv[]) {
}

static void cmd_button(BaseSequentialStream* chp, int argc, char* argv[]) {
if (!portapack::async_tx_enabled) {
return;
}
if (argc != 1) {
chprintf(chp, "usage: button 1\r\n");
return;
Expand All @@ -319,6 +355,9 @@ static void cmd_button(BaseSequentialStream* chp, int argc, char* argv[]) {
}

static void cmd_touch(BaseSequentialStream* chp, int argc, char* argv[]) {
if (!portapack::async_tx_enabled) {
return;
}
if (argc != 2) {
chprintf(chp, "usage: touch x y\r\n");
return;
Expand Down Expand Up @@ -347,6 +386,9 @@ static void cmd_touch(BaseSequentialStream* chp, int argc, char* argv[]) {

// send ascii keys in 2 char hex representation. Can send multiple keys at once like: keyboard 414243 (this will be ABC)
static void cmd_keyboard(BaseSequentialStream* chp, int argc, char* argv[]) {
if (!portapack::async_tx_enabled) {
return;
}
if (argc != 1) {
chprintf(chp, "usage: keyboard XX\r\n");
return;
Expand Down Expand Up @@ -388,6 +430,9 @@ static void cmd_keyboard(BaseSequentialStream* chp, int argc, char* argv[]) {
}

static void cmd_rtcget(BaseSequentialStream* chp, int argc, char* argv[]) {
if (!portapack::async_tx_enabled) {
return;
}
(void)chp;
(void)argc;
(void)argv;
Expand All @@ -399,6 +444,9 @@ static void cmd_rtcget(BaseSequentialStream* chp, int argc, char* argv[]) {
}

static void cmd_rtcset(BaseSequentialStream* chp, int argc, char* argv[]) {
if (!portapack::async_tx_enabled) {
return;
}
const char* usage =
"usage: rtcset [year] [month] [day] [hour] [minute] [second]\r\n"
" all fields are required; milliseconds zero when set\r\n"
Expand All @@ -420,6 +468,9 @@ static void cmd_rtcset(BaseSequentialStream* chp, int argc, char* argv[]) {
}

static void cpld_info(BaseSequentialStream* chp, int argc, char* argv[]) {
if (!portapack::async_tx_enabled) {
return;
}
const char* usage =
"usage: cpld_info <device>\r\n"
" supported modes:\r\n"
Expand Down Expand Up @@ -568,6 +619,9 @@ static void cpld_info(BaseSequentialStream* chp, int argc, char* argv[]) {

// walks throught the given widget's childs in recurse to get all support text and pass it to a callback function
static void widget_collect_accessibility(BaseSequentialStream* chp, ui::Widget* w, void (*callback)(BaseSequentialStream*, const std::string&, const std::string&), ui::Widget* focusedWidget) {
if (!portapack::async_tx_enabled) {
return;
}
for (auto child : w->children()) {
if (!child->hidden()) {
std::string res = "";
Expand All @@ -583,6 +637,9 @@ static void widget_collect_accessibility(BaseSequentialStream* chp, ui::Widget*

// callback when it found any response from a widget
static void accessibility_callback(BaseSequentialStream* chp, const std::string& strResult, const std::string& wgType) {
if (!portapack::async_tx_enabled) {
return;
}
if (!wgType.empty()) {
chprintf(chp, "[");
chprintf(chp, wgType.c_str());
Expand All @@ -593,6 +650,9 @@ static void accessibility_callback(BaseSequentialStream* chp, const std::string&

// gets all widget's accessibility helper text
static void cmd_accessibility_readall(BaseSequentialStream* chp, int argc, char* argv[]) {
if (!portapack::async_tx_enabled) {
return;
}
(void)argc;
(void)argv;

Expand All @@ -613,6 +673,9 @@ static void cmd_accessibility_readall(BaseSequentialStream* chp, int argc, char*

// gets focused widget's accessibility helper text
static void cmd_accessibility_readcurr(BaseSequentialStream* chp, int argc, char* argv[]) {
if (!portapack::async_tx_enabled) {
return;
}
(void)argc;
(void)argv;

Expand Down Expand Up @@ -648,6 +711,9 @@ static void cmd_accessibility_readcurr(BaseSequentialStream* chp, int argc, char
}

static void cmd_appstart(BaseSequentialStream* chp, int argc, char* argv[]) {
if (!portapack::async_tx_enabled) {
return;
}
(void)argc;
(void)argv;
if (argc != 1) {
Expand Down Expand Up @@ -677,6 +743,9 @@ static void cmd_appstart(BaseSequentialStream* chp, int argc, char* argv[]) {
}

static void printAppInfo(BaseSequentialStream* chp, ui::AppInfoConsole& element) {
if (!portapack::async_tx_enabled) {
return;
}
if (strlen(element.appCallName) == 0) return;
chprintf(chp, element.appCallName);
chprintf(chp, " ");
Expand All @@ -701,6 +770,9 @@ static void printAppInfo(BaseSequentialStream* chp, ui::AppInfoConsole& element)
}

static void printAppInfo(BaseSequentialStream* chp, const ui::AppInfo& element) {
if (!portapack::async_tx_enabled) {
return;
}
if (strlen(element.id) == 0) return;
chprintf(chp, element.id);
chprintf(chp, " ");
Expand All @@ -726,6 +798,9 @@ static void printAppInfo(BaseSequentialStream* chp, const ui::AppInfo& element)

// returns the installed apps, those can be called by appstart APPNAME
static void cmd_applist(BaseSequentialStream* chp, int argc, char* argv[]) {
if (!portapack::async_tx_enabled) {
return;
}
(void)argc;
(void)argv;
auto evtd = getEventDispatcherInstance();
Expand All @@ -745,6 +820,9 @@ static void cmd_applist(BaseSequentialStream* chp, int argc, char* argv[]) {
}

static void cmd_cpld_read(BaseSequentialStream* chp, int argc, char* argv[]) {
if (!portapack::async_tx_enabled) {
return;
}
const char* usage =
"usage: cpld_read <device> <target>\r\n"
" device can be: hackrf, portapack\r\n"
Expand Down Expand Up @@ -906,6 +984,9 @@ static void cmd_cpld_read(BaseSequentialStream* chp, int argc, char* argv[]) {
}

static void cmd_gotgps(BaseSequentialStream* chp, int argc, char* argv[]) {
if (!portapack::async_tx_enabled) {
return;
}
const char* usage = "usage: gotgps <lat> <lon> [altitude] [speed] [satinuse]\r\n";
if (argc < 2 || argc > 5) {
chprintf(chp, usage);
Expand All @@ -925,6 +1006,9 @@ static void cmd_gotgps(BaseSequentialStream* chp, int argc, char* argv[]) {
}

static void cmd_gotorientation(BaseSequentialStream* chp, int argc, char* argv[]) {
if (!portapack::async_tx_enabled) {
return;
}
const char* usage = "usage: gotorientation <angle> [tilt]\r\n";
if (argc != 1 && argc != 2) {
chprintf(chp, usage);
Expand All @@ -939,6 +1023,9 @@ static void cmd_gotorientation(BaseSequentialStream* chp, int argc, char* argv[]
}

static void cmd_gotenv(BaseSequentialStream* chp, int argc, char* argv[]) {
if (!portapack::async_tx_enabled) {
return;
}
const char* usage = "usage: gotenv <temperature> [humidity] [pressure] [light]\r\n";
if (argc < 1 || argc > 4) {
chprintf(chp, usage);
Expand All @@ -957,6 +1044,9 @@ static void cmd_gotenv(BaseSequentialStream* chp, int argc, char* argv[]) {
}

static void cmd_sysinfo(BaseSequentialStream* chp, int argc, char* argv[]) {
if (!portapack::async_tx_enabled) {
return;
}
const char* usage = "usage: sysinfo\r\n";
(void)argv;
if (argc > 0) {
Expand All @@ -979,6 +1069,9 @@ static void cmd_sysinfo(BaseSequentialStream* chp, int argc, char* argv[]) {
}

static void cmd_radioinfo(BaseSequentialStream* chp, int argc, char* argv[]) {
if (!portapack::async_tx_enabled) {
return;
}
const char* usage = "usage: radioinfo\r\n";
(void)argv;
if (argc > 0) {
Expand All @@ -1002,6 +1095,9 @@ static void cmd_radioinfo(BaseSequentialStream* chp, int argc, char* argv[]) {
}

static void cmd_pmemreset(BaseSequentialStream* chp, int argc, char* argv[]) {
if (!portapack::async_tx_enabled) {
return;
}
const char* usage = "usage: pmemreset yes\r\nThis will reset pmem to defaults!\r\n";
(void)argv;
if (argc != 1 || strcmp(argv[0], "yes") != 0) {
Expand All @@ -1024,6 +1120,9 @@ static void cmd_pmemreset(BaseSequentialStream* chp, int argc, char* argv[]) {
}

static void cmd_settingsreset(BaseSequentialStream* chp, int argc, char* argv[]) {
if (!portapack::async_tx_enabled) {
return;
}
const char* usage = "usage: settingsreset yes\r\nThis will reset all app settings to defaults!\r\n";
(void)argv;
if (argc != 1 || strcmp(argv[0], "yes") != 0) {
Expand Down Expand Up @@ -1054,6 +1153,9 @@ static void cmd_settingsreset(BaseSequentialStream* chp, int argc, char* argv[])
}

static void cmd_sendpocsag(BaseSequentialStream* chp, int argc, char* argv[]) {
if (!portapack::async_tx_enabled) {
return;
}
const char* usage = "usage: sendpocsag <addr> <msglen> [baud] [type] [function] [phase] \r\n";
(void)argv;
if (argc < 2) {
Expand Down

0 comments on commit b69ddbd

Please sign in to comment.