//https://aleksandarhaber.com/incremental-rotary-encoders-with-raspberry-pi-lpd3806-600bm/
/*This project depends on the now depreciated wiring pi project
* wget https://project-downloads.drogon.net/wiringpi-latest.deb
* or a working version is also saved the the nanocluster server
* g++ -Wall -o "%e" "%f" -lwiringPi -lwiringPiDev
* */
#include
#include
#include
using namespace std;
long encoder0;
long encoder1;
int stateA=0;
int stateB=0;
int angle0=0;
int angle1=0;
int OldAngle0=0;
int OldAngle1=0;
//File dataFile;
string dataString = "";
//hardware IO
//may require "gpio mode in"
/*Encoders*/
int wireA=0; //BCM 17
int wireB=2; //BCM 27
int wireC=12; //MOSI
int wireD=13; //MISO
/*Buttons*/
const int buttonAB = 7; //GPIO7 A-B-encoder pin7 "gpio mode 7 in"
const int buttonCD = 21; //GPIO21 (SCLK) C-D encoder "gpio mode 21 in"
void A();
void B();
void C();
void D();
void setup(); //sets up hardware may do all setup including fileIO in teh future
void resetImg(); //sets data in svg poly line to zero
int main(){
setup();
while(1){
angle0=encoder0;
angle1=encoder1;
if (digitalRead(buttonAB) == LOW) {
cout << "Deleting image data\n";
dataString="";
delay(100);
}
if (digitalRead(buttonCD) == LOW) {
cout << dataString <<"\n";
delay(100);
}
if (angle0==OldAngle0 && angle1==OldAngle1){
; //dont do shit if its not changing
}else{
dataString += ", ";
dataString += to_string(angle0);
dataString += ", ";
dataString += to_string(angle1);
OldAngle0=angle0;
OldAngle1=angle1;
cout<<"Angle is:"<