document.write('
Data hosted with ♥ by Pastebin.com - Download Raw - See Original
  1. #include <LiquidCrystal.h>
  2. #include "StringQueue.h"
  3.  
  4. LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
  5. int SW = 7;
  6. int LED_empty = 8;
  7. int LED_full = 9;
  8. boolean toggle = false;
  9. int num = 10;
  10. String userPut ,userGet;
  11. char buf[20];
  12. StringQueue st( num );
  13.  
  14. void setup() {
  15.   lcd.begin(16, 2);
  16.   pinMode(SW, INPUT_PULLUP);
  17.   pinMode(LED_empty, OUTPUT);
  18.   pinMode(LED_full, OUTPUT);
  19.   Serial.begin(115200);
  20. }
  21. void loop() {
  22.   userGet = NULL;
  23.   userPut = NULL;
  24.   if ((digitalRead(SW) == LOW) && (toggle == false)) {
  25.     toggle = true;
  26.   } else if ((digitalRead(SW) == HIGH) && (toggle == true)) {
  27.     if (st.get(userGet)) {
  28.       userGet.toCharArray( buf, 20);
  29.       digitalWrite(LED_empty,LOW);
  30.       digitalWrite(LED_full,LOW);
  31.       Serial.println("[-] Get <= " + userGet + " <= from Queue");
  32.       lcd.setCursor(0, 0);
  33.       lcd.clear();
  34.       lcd.print(userGet);
  35.       lcd.setCursor(0, 1);
  36.       lcd.print("Remain : " + String(st.size()));
  37.     } else {
  38.       digitalWrite(LED_empty,HIGH);
  39.       digitalWrite(LED_full,LOW);
  40.       Serial.println("[!] Queue is Empty");
  41.       lcd.setCursor(0, 0);
  42.       lcd.clear();
  43.       lcd.print("-----EMPTY!-----");
  44.       lcd.setCursor(0, 1);
  45.       lcd.print("Remain : " + String(st.size()));
  46.     }
  47.     toggle = false;
  48.   }
  49.   while(Serial.available() > 0) {
  50.     userPut = Serial.readStringUntil(\'\\n\');
  51.   }
  52.   if (userPut.length() > 16) {
  53.     userPut = userPut.substring(0,16);
  54.     Serial.println("[!] Your String more than 16 letter. This program get 1 to 16 letter");
  55.   }
  56.   if (userPut.length() > 0) {
  57.     if (!st.put(userPut)) {
  58.       digitalWrite(LED_full,HIGH);
  59.       digitalWrite(LED_empty,LOW);
  60.       Serial.println("\\n[!] Queue is Full!");
  61.       lcd.setCursor(0, 0);
  62.       lcd.clear();
  63.       lcd.print("----- FULL -----");
  64.       lcd.setCursor(0, 1);
  65.       lcd.print("Remain : " + String(st.size()));
  66.     } else {
  67.       digitalWrite(LED_full,LOW);
  68.       digitalWrite(LED_empty,LOW);
  69.       Serial.println("[+] Put => " + userPut + " => to Queue");
  70.     }
  71.   }
  72. }
');