Advertisement
myChrisDangelo

tkts Ticker Tape

Jul 19th, 2012
1,373
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 3.75 KB | None | 0 0
  1. /*
  2.  * DNS and DHCP-based Web client
  3.  * Circuit:
  4.  * Ethernet shield attached to pins 10, 11, 12, 13
  5.  */
  6.  
  7. #include <SPI.h>
  8. #include <Ethernet.h>
  9. #include <SoftwareSerial.h>
  10. #include <Thermal.h>
  11. #include <TextFinder.h>
  12.  
  13.  
  14. // Enter a MAC address for your controller below.
  15. // Newer Ethernet shields have a MAC address printed on a sticker on the shield
  16. //byte mac[] = {  /*enter your mac address in here*/ };
  17. char serverName[] = "iphone.tdf.org";
  18.  
  19. const int ledGreen = 7;
  20. const int ledRed = 6;
  21. const int ledYellow = 8;
  22. const int button = 5;
  23. #define ON LOW
  24. #define OFF HIGH
  25.  
  26. int printer_RX_Pin = 14;
  27. int printer_TX_Pin = 15;
  28.  
  29. Thermal printer(printer_RX_Pin, printer_TX_Pin);
  30. EthernetClient client;
  31.  
  32. void setup() {
  33.   pinMode(ledGreen, OUTPUT);
  34.   pinMode(ledRed, OUTPUT);
  35.   pinMode(ledYellow, OUTPUT);
  36.   pinMode(button, INPUT);
  37.   digitalWrite(button, HIGH); //turn on internal pull-up resister  
  38.  
  39.   Serial.begin(9600);
  40.   // start the Ethernet connection:
  41.   if (Ethernet.begin(mac) == 0) {
  42.     Serial.println("Failed to configure Ethernet using DHCP");
  43.     digitalWrite(ledRed, HIGH);
  44.     // no point in carrying on, so do nothing forevermore:
  45.     while(true);
  46.   }
  47.   // give the Ethernet shield a second to initialize:
  48.   delay(1000);
  49.   digitalWrite(ledYellow, HIGH);
  50.  
  51.   printer.setSize('S');
  52.   printer.justify('L');
  53. }
  54.  
  55. void connectToServer();
  56.  
  57. #define MAX_TITLE 26
  58. #define RIGHT_ALIGN 29
  59. int length;
  60. char s[MAX_TITLE], t[MAX_TITLE];
  61. int percentage;
  62. TextFinder finder(client);
  63.  
  64. void loop()
  65. {
  66.   if(digitalRead(button) == ON && !client.connected())
  67.   {
  68.     delay(500);
  69.     Serial.println("connecting...");
  70.     connectToServer();
  71.   }
  72.   if (client.available()) {
  73.     digitalWrite(ledRed, LOW);
  74.     digitalWrite(ledYellow, LOW);
  75.     digitalWrite(ledGreen, HIGH);
  76.    
  77.     //finder doesn't use a buffer so must create a test first
  78.     //that doesn't pass here so we don't search file for PostDateTime
  79.     //because it only exists once = !strlen(t)
  80.     if(!strlen(t) && finder.find("PostDateTime\":")){
  81.         length = finder.getString("\"", "\"", t, MAX_TITLE);
  82.         //Serial.println("****TKTS BOOTH TICKER TAPE****");
  83.         //Serial.println(t);
  84.        
  85.         printer.justify('C');
  86.         printer.println("****TKTS BOOTH TICKER TAPE****");
  87.         printer.println(t);
  88.         printer.justify('L');
  89.     }
  90.  
  91.     while(finder.findUntil("Name\":", "OffBroadwayBoard"))
  92.     {
  93.         length = finder.getString("\"", "\"", s, MAX_TITLE);
  94.         //Serial.print(s);
  95.         //Serial.print(": ");
  96.         printer.print(s);
  97.      
  98.       if(finder.find("Percentage\":")) {
  99.           percentage = finder.getValue();
  100.           for(int i = 0; i < RIGHT_ALIGN-length; i++) {
  101.             //Serial.print(" ");
  102.             printer.print(" ");
  103.           }
  104.           //Serial.print(percentage);
  105.           //Serial.print("%");
  106.           //Serial.print("\n");
  107.          
  108.           printer.print(percentage);
  109.           printer.print("%");
  110.           printer.print("\n");
  111.       }
  112.     }
  113.     client.stop();
  114.   }
  115.   if(!client.connected())
  116.   {
  117.     Serial.println("disconnecting.");
  118.     printer.feed();
  119.     printer.feed();
  120.     printer.feed();
  121.     t[0] = 0; //revert so that the title prints
  122.    
  123.     client.stop();
  124.     digitalWrite(ledGreen, LOW);
  125.     digitalWrite(ledYellow, HIGH);
  126.     while(digitalRead(button) == OFF);
  127.   }
  128. }
  129.  
  130.    
  131. void connectToServer()
  132. {
  133.     if (client.connect(serverName, 91)) {
  134.     Serial.println("connected");
  135.     // Make a HTTP request:
  136.     client.println("GET /Services/TKTSShowList.aspx?location=TiSq");
  137.     client.println();
  138.   }
  139.   else {
  140.     // kf you didn't get a connection to the server:
  141.     Serial.println("connection failed");
  142.     digitalWrite(ledRed, HIGH);
  143.     digitalWrite(ledYellow, LOW);
  144.   }
  145. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement