Advertisement
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
Advertisement