A simple but very effective scope. Up to 6 channels of 32 bit float data at 1 kHz.

Dependencies:   QEI USBDevice

Fork of HIDScope by Tom Tom

Revision:
0:79e3f3072f3b
Child:
1:e44574634162
diff -r 000000000000 -r 79e3f3072f3b HIDScope.h
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/HIDScope.h	Mon Sep 08 09:26:53 2014 +0000
@@ -0,0 +1,56 @@
+#ifndef _HIDSCOPE_H_
+#define _HIDSCOPE_H_
+
+#include "mbed.h"
+#include "USBHID.h"
+
+/**A simple HID (Human Interface Device) scope
+- Up to 6 channels of float data is transmitted in a single HID message (64 byte)
+- Theoretical maximum samplerate of 1kHz
+- Data can be parsed using a client-side server like NodeJS
+*/
+class HIDScope {
+    public: 
+        ///Instantiate the HID Scope
+        HIDScope(int channels);
+        
+        /** Sets the current channel value
+          @param ch : integer channel no (0-6)
+          @param val : float value
+          @return void
+        */
+        void set(int ch, float val);
+        
+        /** Sets the current channel value
+          @param ch : integer channel no (0-6)
+          @param val : integer value
+          @return void
+        */
+        void set(int ch, int val);
+        
+        /** Sets the current channel value
+          @param ch : integer channel no (0-6)
+          @param val : boolean value
+          @return void
+        */
+        void set(int ch, bool val);
+        
+        /** Sets the current channel value
+          @param ch : double channel no (0-6)
+          @param val : float value
+          @return void
+        */
+        void set(int ch, double val);
+        
+        /** Sends the channel data to the HID client
+          @return void
+        */
+        void send();
+    private:
+        USBHID hid;
+        HID_REPORT scopeData;
+        float* bufferData;
+        int channelCount;
+};
+
+#endif
\ No newline at end of file