Advertisement
Guest User

work

a guest
Dec 7th, 2015
1,079
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.12 KB | None | 0 0
  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. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement