Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependents: Camera_C328_HTTP_SDcard_file_server_WIZwiki-W7500
Fork of CameraC328 by
Diff: SerialBuffered.h
- Revision:
- 13:17cf1e2015f7
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/SerialBuffered.h Fri Sep 17 11:15:37 2010 +0000
@@ -0,0 +1,61 @@
+#ifndef _SERIAL_BUFFERED_H_
+#define _SERIAL_BUFFERED_H_
+
+/**
+ * Buffered serial class.
+ */
+class SerialBuffered : public Serial {
+public:
+ /**
+ * Create a buffered serial class.
+ *
+ * @param tx A pin for transmit.
+ * @param rx A pin for receive.
+ */
+ SerialBuffered(PinName tx, PinName rx);
+
+ /**
+ * Destroy.
+ */
+ virtual ~SerialBuffered();
+
+ /**
+ * Get a character.
+ *
+ * @return A character. (-1:timeout)
+ */
+ int getc();
+
+ /**
+ * Returns 1 if there is a character available to read, 0 otherwise.
+ */
+ int readable();
+
+ /**
+ * Set timeout for getc().
+ *
+ * @param ms milliseconds. (-1:Disable timeout)
+ */
+ void setTimeout(int ms);
+
+ /**
+ * Read requested bytes.
+ *
+ * @param bytes A pointer to a buffer.
+ * @param requested Length.
+ *
+ * @return Readed byte length.
+ */
+ size_t readBytes(uint8_t *bytes, size_t requested);
+
+private:
+ void handleInterrupt();
+ static const int BUFFERSIZE = 4096;
+ uint8_t buffer[BUFFERSIZE]; // points at a circular buffer, containing data from m_contentStart, for m_contentSize bytes, wrapping when you get to the end
+ uint16_t indexContentStart; // index of first bytes of content
+ uint16_t indexContentEnd; // index of bytes after last byte of content
+ int timeout;
+ Timer timer;
+};
+
+#endif
