summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ao-tools/ao-view/aoview_monitor.c9
-rw-r--r--src/ao.h1
-rw-r--r--src/ao_usb.c2
3 files changed, 7 insertions, 5 deletions
diff --git a/ao-tools/ao-view/aoview_monitor.c b/ao-tools/ao-view/aoview_monitor.c
index 4d7e7a9f..1f9937b2 100644
--- a/ao-tools/ao-view/aoview_monitor.c
+++ b/ao-tools/ao-view/aoview_monitor.c
@@ -83,8 +83,11 @@ aoview_monitor_callback(gpointer user_data,
void
aoview_monitor_set_channel(int channel)
{
- if (monitor_serial)
+ if (monitor_serial) {
+ aoview_serial_printf(monitor_serial, "m 0\n");
aoview_serial_printf(monitor_serial, "c r %d\n", channel);
+ aoview_serial_printf(monitor_serial, "m 1\n");
+ }
}
gboolean
@@ -98,9 +101,7 @@ aoview_monitor_connect(char *tty)
aoview_table_clear();
aoview_state_reset();
channel = aoview_channel_current();
- if (channel >= 0)
- aoview_monitor_set_channel(channel);
- aoview_serial_printf(monitor_serial, "m 1\n");
+ aoview_monitor_set_channel(channel);
aoview_serial_set_callback(monitor_serial,
aoview_monitor_callback);
return TRUE;
diff --git a/src/ao.h b/src/ao.h
index 97cb75ae..a2dfadd0 100644
--- a/src/ao.h
+++ b/src/ao.h
@@ -110,6 +110,7 @@ ao_start_scheduler(void);
#define AO_PANIC_STDIO 7 /* Too many stdio handlers registered */
#define AO_PANIC_REBOOT 8 /* Reboot failed */
#define AO_PANIC_FLASH 9 /* Invalid flash part (or wrong blocksize) */
+#define AO_PANIC_USB 10 /* Trying to send USB packet while busy */
/* Stop the operating system, beeping and blinking the reason */
void
diff --git a/src/ao_usb.c b/src/ao_usb.c
index e4af8e45..d071fe6f 100644
--- a/src/ao_usb.c
+++ b/src/ao_usb.c
@@ -85,7 +85,7 @@ ao_usb_ep0_flush(void)
USBINDEX = 0;
cs0 = USBCS0;
if (cs0 & USBCS0_INPKT_RDY)
- ao_panic(0);
+ ao_panic(AO_PANIC_USB);
this_len = ao_usb_ep0_in_len;
if (this_len > AO_USB_CONTROL_SIZE)