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.cpp

Committer:
tomlankhorst
Date:
2014-09-08
Revision:
0:79e3f3072f3b
Child:
5:80d551456856

File content as of revision 0:79e3f3072f3b:

#include "HIDScope.h"

HIDScope::HIDScope(int channels) : hid(64,64) 
{
    bufferData      = new float[channels]();
    channelCount    = channels;
    scopeData.length = 64;
}

void HIDScope::set(int ch, float val)
{
    bufferData[ch] = val;
}

void HIDScope::set(int ch, int val)
{
    set(ch,(float)val);
}

void HIDScope::set(int ch, bool val)
{
    set(ch,(val ? 1.0f : 0.0f));
}

void HIDScope::set(int ch, double val)
{
    set(ch,(float)val);
}

void HIDScope::send()
{    
    for(int ch=0; ch<channelCount; ch++)
        memcpy(&scopeData.data[ch*4], &bufferData[ch], 4); // Copy a 4 byte float to the char array
    
    // Send non blocking, can be adjusted to blocking (hid.send)
    hid.sendNB(&scopeData);
}