Add ability to dump eeprom data over radio link.
[fw/altos] / ao-tools / lib / cc-usb.c
index 80d9c04f7ec5271074c730b3bf01c17f2845f610..9b3b831f3898e44c5f61f9bb14f70e6f770f78e6 100644 (file)
@@ -53,6 +53,8 @@ struct cc_usb {
 
        struct cc_hex_read      hex_buf[CC_NUM_HEX_READ];
        int                     hex_count;
+
+       int                     remote;
 };
 
 #define NOT_HEX        0xff
@@ -372,6 +374,28 @@ cc_usb_reset(struct cc_usb *cc)
        return 1;
 }
 
+void
+cc_usb_open_remote(struct cc_usb *cc)
+{
+       if (!cc->remote) {
+               cc_usb_printf(cc, "p\nE 0\n");
+               do {
+                       cc->in_count = cc->in_pos = 0;
+                       _cc_usb_sync(cc, 100);
+               } while (cc->in_count > 0);
+               cc->remote = 1;
+       }
+}
+
+void
+cc_usb_close_remote(struct cc_usb *cc)
+{
+       if (cc->remote) {
+               cc_usb_printf(cc, "~");
+               cc->remote = 0;
+       }
+}
+
 static struct termios  save_termios;
 
 struct cc_usb *
@@ -406,6 +430,8 @@ cc_usb_open(char *tty)
 void
 cc_usb_close(struct cc_usb *cc)
 {
+       cc_usb_close_remote(cc);
+       cc_usb_sync(cc);
        tcsetattr(cc->fd, TCSAFLUSH, &save_termios);
        close (cc->fd);
        free (cc);