Not a member of Pastebin yet?
                        Sign Up,
                        it unlocks many cool features!                    
                - #include <ArduinoJson.h>
 - #include "Arduino.h"
 - #include <Encoder.h>
 - // Initialise the encoder and freq.button
 - Encoder encoder(3, 2);
 - const int pinButton = 8;
 - long oldPos = -999;
 - // Initial frequency
 - long frequency = 451000000;
 - // Timeouts
 - unsigned long reqTime = 0;
 - const long reqInterval = 10;
 - unsigned long respTime = 0;
 - const long respInterval = 500;
 - boolean gotAnswer = true;
 - void setup() {
 - Serial.begin(115200);
 - pinMode(pinButton, INPUT);
 - }
 - void loop()
 - {
 - int stateButton = digitalRead(pinButton);
 - if(stateButton == 1 && gotAnswer && (abs(millis() - reqTime) > reqInterval)) {
 - reqTime = millis();
 - respTime = millis();
 - gotAnswer = false;
 - //send to sdrsharp get comm.
 - Serial.println("{\"Command\": \"Get\", \"Method\": \"Frequency\"}");
 - //Json get frequency
 - String inData = Serial.readStringUntil('\n');
 - StaticJsonBuffer<200> jsonBuffer;
 - JsonObject& root = jsonBuffer.parseObject(inData);
 - if (!root.success()) {
 - Serial.println("cant_get_frequency");
 - delay(1000);
 - return;
 - }
 - frequency = root["Value"];
 - inData = "";
 - //Clear encoder counter
 - encoder.write(0);
 - if(Serial.available() > 0) {
 - gotAnswer = true;
 - String inData = Serial.readStringUntil('\n');
 - inData = "";
 - }
 - if ((abs(millis() - respTime) > respInterval) && !gotAnswer) {
 - respTime = millis();
 - gotAnswer = true;
 - }
 - }
 - //Get the encoder position
 - long newPos = encoder.read();
 - if (newPos != oldPos && gotAnswer && (abs(millis() - reqTime) > reqInterval) ) {
 - reqTime = millis();
 - respTime = millis();
 - gotAnswer = false;
 - oldPos = newPos;
 - //Set feq.
 - long newFrequency = frequency + (newPos * 3125);
 - Serial.println("{\"Command\": \"Set\", \"Method\": \"Frequency\", \"Value\": "+String(newFrequency)+"}");
 - }
 - if(Serial.available() > 0) {
 - gotAnswer = true;
 - String inData = Serial.readStringUntil('\n');
 - inData = "";
 - }
 - if ((abs(millis() - respTime) > respInterval) && !gotAnswer) {
 - respTime = millis();
 - gotAnswer = true;
 - }
 - }
 
Advertisement
 
                    Add Comment                
                
                        Please, Sign In to add comment