examples/tty/tty.c
changeset 1575 17598f2332b6
parent 1573 74bf584564b8
child 1577 fa3f66b783c1
--- a/examples/tty/tty.c	Tue Dec 01 22:33:24 2009 +0100
+++ b/examples/tty/tty.c	Wed Dec 02 15:38:10 2009 +0100
@@ -116,8 +116,6 @@
 } serial_device_t;
 
 static serial_device_t *ser = NULL;
-static char tx_data[] = "ATZ\r\n";
-static off_t tx_off = 0;
 static ec_tty_t *tty = NULL;
         
 /*****************************************************************************/
@@ -283,17 +281,10 @@
             
             tx_accepted_toggle = status & 0x0001;
             if (tx_accepted_toggle != ser->tx_accepted_toggle) { // ready
-                // send new data
-                size_t rem = sizeof(tx_data) - tx_off;
-                if (rem > 0) {
-                    if (rem < ser->max_tx_data_size) {
-                        ser->tx_data_size = rem;
-                    } else {
-                        ser->tx_data_size = ser->max_tx_data_size;
-                    }
+                ser->tx_data_size =
+                    ectty_tx_data(tty, ser->tx_data, ser->max_tx_data_size);
+                if (ser->tx_data_size) {
                     printk(KERN_INFO PFX "Sending %u bytes.\n", ser->tx_data_size);
-                    memcpy(ser->tx_data, tx_data, ser->tx_data_size);
-                    tx_off += ser->tx_data_size;
                     ser->tx_request_toggle = !ser->tx_request_toggle;
                     ser->tx_accepted_toggle = tx_accepted_toggle;
                 }
@@ -397,8 +388,6 @@
 
         // check for master state (optional)
         check_master_state();
-
-        tx_off = 0;
     }
 
     serial_run(ser, EC_READ_U16(domain1_pd + off_status), domain1_pd + off_rx);