daily pastebin goal
61%
SHARE
TWEET

work

a guest Dec 7th, 2015 402 Never
Upgrade to PRO!
ENDING IN00days00hours00mins00secs
 
  1. #include <ArduinoJson.h>
  2. #include "Arduino.h"
  3. #include <Encoder.h>
  4.  
  5. // Initialise the encoder and freq.button
  6. Encoder encoder(3, 2);
  7. const int pinButton = 8;
  8. long oldPos  = -999;
  9.  
  10. // Initial frequency
  11. long frequency = 451000000;
  12.  
  13. // Timeouts
  14. unsigned long reqTime       = 0;
  15. const long    reqInterval   = 10;
  16. unsigned long respTime      = 0;
  17. const long    respInterval  = 500;
  18. boolean gotAnswer = true;
  19.  
  20. void setup() {
  21.   Serial.begin(115200);
  22.   pinMode(pinButton, INPUT);
  23. }
  24.  
  25. void loop()
  26. {
  27.         int stateButton = digitalRead(pinButton);
  28.         if(stateButton == 1 && gotAnswer && (abs(millis() - reqTime) > reqInterval)) {
  29.                 reqTime   = millis();
  30.                 respTime  = millis();
  31.                 gotAnswer = false;
  32.                 //send to sdrsharp get comm.
  33.                 Serial.println("{\"Command\": \"Get\", \"Method\": \"Frequency\"}");  
  34.                 //Json get frequency
  35.                 String inData = Serial.readStringUntil('\n');
  36.                 StaticJsonBuffer<200> jsonBuffer;
  37.                 JsonObject& root = jsonBuffer.parseObject(inData);
  38.  
  39.                         if (!root.success()) {
  40.                         Serial.println("cant_get_frequency");
  41.                         delay(1000);
  42.                         return;
  43.                         }
  44.  
  45.                 frequency = root["Value"];
  46.                 inData = "";
  47.                 //Clear encoder counter
  48.                 encoder.write(0);
  49.  
  50.                         if(Serial.available() > 0) {
  51.                         gotAnswer = true;
  52.                         String inData = Serial.readStringUntil('\n');
  53.                         inData = "";
  54.             }
  55.  
  56.                         if ((abs(millis() - respTime) > respInterval) && !gotAnswer) {
  57.                         respTime = millis();
  58.                         gotAnswer = true;
  59.             }
  60.         }
  61. //Get the encoder position
  62. long newPos = encoder.read();
  63.          if (newPos != oldPos && gotAnswer && (abs(millis() - reqTime) > reqInterval) ) {
  64.      reqTime   = millis();
  65.      respTime  = millis();
  66.      gotAnswer = false;
  67.      oldPos    = newPos;
  68.          //Set feq.
  69.      long newFrequency = frequency + (newPos * 3125);
  70.      Serial.println("{\"Command\": \"Set\", \"Method\": \"Frequency\", \"Value\": "+String(newFrequency)+"}");
  71.  
  72.         }
  73.                         if(Serial.available() > 0) {
  74.                         gotAnswer = true;
  75.                         String inData = Serial.readStringUntil('\n');
  76.                         inData = "";
  77.             }
  78.  
  79.                         if ((abs(millis() - respTime) > respInterval) && !gotAnswer) {
  80.                         respTime = millis();
  81.                         gotAnswer = true;
  82.             }
  83. }
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top