From 64c89ab53447a004002ec0b0db94fd0a1e632cf6 Mon Sep 17 00:00:00 2001 From: Tim Redfern Date: Sun, 28 Jan 2018 22:20:49 +0000 Subject: POC driver --- ofxHelios/src/ofxHelios.cpp | 78 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 78 insertions(+) create mode 100644 ofxHelios/src/ofxHelios.cpp (limited to 'ofxHelios/src/ofxHelios.cpp') diff --git a/ofxHelios/src/ofxHelios.cpp b/ofxHelios/src/ofxHelios.cpp new file mode 100644 index 0000000..d05e062 --- /dev/null +++ b/ofxHelios/src/ofxHelios.cpp @@ -0,0 +1,78 @@ +// +// ofxHelios.cpp +// +// +// Created by Tim Redfern Nov 2017 +// +// + +#include "ofxHelios.h" + +/* +draw a colourpolyline + +put in mid points + +draw a vector of lines + +put in dwell points + +*/ + +int ofxHelios::draw(vector &points,ofColor colour,int intensity){ + return 0; +} + +int ofxHelios::draw(ofPolyline &line,ofColor colour,int intensity){ + + colourPolyline col=colourPolyline(line,colour); + return draw(col); + +} + +int ofxHelios::draw(colourPolyline &line, int intensity){ + //todo: move to a thread + //todo: add a transform + //POC + + int xoffs=0x800-(ofGetWidth()/2); + int yoffs=0x800-(ofGetHeight()/2); + + if (device!=OFXHELIOS_NODEVICE){ + while (!dac.GetStatus(device)); //timeout for this? + //assemble data + + HeliosPoint points[line.size()]; + + for (int i=0;i>8), + (uint8_t)(((line.getColourAt(i).g)*laserintensity)>>8), + (uint8_t)(((line.getColourAt(i).b)*laserintensity)>>8), + (uint8_t)intensity + }); + } + + if (HELIOS_ERROR==dac.WriteFrame(device, pps, HELIOS_FLAGS_DEFAULT, points, line.size())){ + printf("ofxHelios: write error (%i,%i,%i,%i)\n",device, pps, HELIOS_FLAGS_DEFAULT, (int)line.size()); + return -1; + } + + + } + return 0; +} + + + + +void ofxHelios::threadedFunction(){ + + while(isThreadRunning()) { + + } +} + -- cgit v1.2.3