summaryrefslogtreecommitdiff
path: root/usb-i2c-sl018/usb_serial.c
diff options
context:
space:
mode:
authorChristian Pointner <equinox@spreadspace.org>2013-02-06 22:00:08 +0000
committerChristian Pointner <equinox@spreadspace.org>2013-02-06 22:00:08 +0000
commit3fb7cae1a71c87c719894d220bd4a0651a9402e7 (patch)
tree203c1a582d29dd033f564a79368813376468c85b /usb-i2c-sl018/usb_serial.c
parentcleanup (diff)
entire code now uses stdin and stdout (no stdio any more)
git-svn-id: https://svn.spreadspace.org/avr/trunk@137 aa12f405-d877-488e-9caf-2d797e2a1cc7
Diffstat (limited to 'usb-i2c-sl018/usb_serial.c')
-rw-r--r--usb-i2c-sl018/usb_serial.c62
1 files changed, 28 insertions, 34 deletions
diff --git a/usb-i2c-sl018/usb_serial.c b/usb-i2c-sl018/usb_serial.c
index 5a57480..f08d9b3 100644
--- a/usb-i2c-sl018/usb_serial.c
+++ b/usb-i2c-sl018/usb_serial.c
@@ -21,21 +21,13 @@
* along with spreadspace avr utils. If not, see <http://www.gnu.org/licenses/>.
*/
+#include <stdio.h>
+
#include "usb_serial.h"
#include <LUFA/Drivers/USB/USB.h>
#include "lufa-descriptor-usbserial.h"
#include "LUFA/Drivers/Peripheral/Serial.h"
-FILE usb_stream;
-FILE serial_stream;
-FILE * stdio = &serial_stream;
-
-FILE * * usb_serial_get_stdio_ptr(void)
-{
- return &stdio;
-}
-
-
/*
LUFA Library
Copyright (C) Dean Camera, 2012.
@@ -64,12 +56,26 @@ USB_ClassInfo_CDC_Device_t VirtualSerial_CDC_Interface =
},
};
+void EVENT_USB_Device_ConfigurationChanged(void)
+{
+ CDC_Device_ConfigureEndpoints(&VirtualSerial_CDC_Interface);
+}
+
+void EVENT_USB_Device_ControlRequest(void)
+{
+ CDC_Device_ProcessControlRequest(&VirtualSerial_CDC_Interface);
+}
+/* end LUFA CDC-ACM specific definitions*/
+
+FILE usb_stream;
+FILE serial_stream;
void usb_serial_init()
{
- USB_Init();
Serial_Init(115200,false);
Serial_CreateStream(&serial_stream);
+
+ USB_Init();
CDC_Device_CreateStream(&VirtualSerial_CDC_Interface,&usb_stream);
}
@@ -79,35 +85,23 @@ void usb_serial_task(void)
USB_USBTask();
}
-void EVENT_CDC_Device_ControLineStateChanged(USB_ClassInfo_CDC_Device_t* const CDCInterfaceInfo)
+int16_t usb_serial_bytes_received(void)
{
- if(CDCInterfaceInfo->State.ControlLineStates.HostToDevice & CDC_CONTROL_LINE_OUT_DTR)
- stdio = &usb_stream;
+ if(stdin == &usb_stream)
+ return CDC_Device_BytesReceived(&VirtualSerial_CDC_Interface);
else
- stdio = &serial_stream;
-}
-
-void EVENT_USB_Device_Disconnect(void)
-{
- stdio = &serial_stream;
-}
-/* end LUFA CDC-ACM specific definitions*/
-
-void EVENT_USB_Device_ConfigurationChanged(void)
-{
- CDC_Device_ConfigureEndpoints(&VirtualSerial_CDC_Interface);
+ return (int16_t)Serial_IsCharReceived();
}
-void EVENT_USB_Device_ControlRequest(void)
+void EVENT_CDC_Device_ControLineStateChanged(USB_ClassInfo_CDC_Device_t* const CDCInterfaceInfo)
{
- CDC_Device_ProcessControlRequest(&VirtualSerial_CDC_Interface);
+ if(CDCInterfaceInfo->State.ControlLineStates.HostToDevice & CDC_CONTROL_LINE_OUT_DTR)
+ stdin = stdout = &usb_stream;
+ else
+ stdin = stdout = &serial_stream;
}
-int16_t usb_serial_bytes_received(void)
+void EVENT_USB_Device_Disconnect(void)
{
- if(stdio == &usb_stream)
- return CDC_Device_BytesReceived(&VirtualSerial_CDC_Interface);
- else
- return (int16_t)Serial_IsCharReceived();
+ stdin = stdout = &serial_stream;
}
-