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

HIDScope.h

Committer:
tomlankhorst
Date:
2014-09-08
Revision:
0:79e3f3072f3b
Child:
1:e44574634162

File content as of revision 0:79e3f3072f3b:

#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