justincouch

Gadgeteer Google Camera

Jan 22nd, 2013
134
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 5.75 KB | None | 0 0
  1. using System;
  2. using System.Collections;
  3. using System.Threading;
  4. using Microsoft.SPOT;
  5. using Microsoft.SPOT.Presentation;
  6. using Microsoft.SPOT.Presentation.Controls;
  7. using Microsoft.SPOT.Presentation.Media;
  8. using Microsoft.SPOT.Touch;
  9.  
  10. using Gadgeteer.Networking;
  11. using GT = Gadgeteer;
  12. using GTM = Gadgeteer.Modules;
  13. using Gadgeteer.Modules.GHIElectronics;
  14.  
  15. namespace JCgoogleCamera2
  16. {
  17.     public partial class Program
  18.     {
  19.         string WIFINETWORK = _wifinetwork;
  20.         string WIFIPASSWORD = _wifipassword;
  21.  
  22.         string phpsavefileURL = _phpsavefileURL;
  23.         string phpcurlimgURL = _phpcurlimgURL;
  24.  
  25.         int counter = 0;
  26.            
  27.         void ProgramStarted()
  28.         {
  29.             Debug.Print("Program Started");
  30.            
  31.             button.ButtonPressed += new Button.ButtonEventHandler(button_ButtonPressed);
  32.             camera.PictureCaptured += new Camera.PictureCapturedEventHandler(camera_PictureCaptured);
  33.             camera.CameraConnected += new Camera.CameraConnectedEventHandler(camera_CameraConnected);
  34.             startWifi();
  35.             Debug.Print("end of Program Started");
  36.         }
  37.  
  38.         void camera_CameraConnected(Camera sender)
  39.         {
  40.             if (camera.CameraReady) { Debug.Print("camera ready."); }
  41.         }
  42.  
  43.         void button_ButtonPressed(Button sender, Button.ButtonState state)
  44.         {
  45.             Debug.Print("button pressed");
  46.             //multicolorLed.TurnBlue();
  47.             Debug.Print("camera is ready: " + camera.CameraReady);
  48.             if (camera.CameraReady)
  49.             {
  50.                 Debug.Print("starting to take picture");
  51.                 camera.TakePicture();
  52.             }
  53.             else { Debug.Print("camera not ready"); }
  54.             Debug.Print("end of button pressed");
  55.         }
  56.  
  57.         void camera_PictureCaptured(Camera sender, GT.Picture picture)
  58.         {
  59.             Debug.Print("picture captured");
  60.             //multicolorLed.TurnGreen();
  61.             display_T35.SimpleGraphics.DisplayImage(picture, 0, 0);
  62.             postPictureToWeb(picture);
  63.         }
  64.  
  65.         void postPictureToWeb(GT.Picture picture)
  66.         {
  67.            
  68.             GT.Networking.POSTContent postcontent = new POSTContent();
  69.             postcontent = GT.Networking.POSTContent.CreateBinaryBasedContent(picture.PictureData);
  70.             Debug.Print("posting");
  71.  
  72.             try
  73.             {
  74.                 GT.Networking.HttpRequest postreq = HttpHelper.CreateHttpPostRequest(phpsavefileURL, postcontent, "image/bmp");
  75.                 postreq.ResponseReceived += new HttpRequest.ResponseHandler(postreq_ResponseReceived);
  76.                 postreq.SendRequest();
  77.             }
  78.             catch (System.Net.Sockets.SocketException e)
  79.             {
  80.                 Debug.Print("socket exception: " + e.ErrorCode);
  81.             }
  82.             catch (Exception e)
  83.             {
  84.                 Debug.Print("exception: " + e.Message);
  85.             }
  86.         }
  87.  
  88.         void postreq_ResponseReceived(HttpRequest sender, HttpResponse response)
  89.         {
  90.             Debug.Print("Response Received");
  91.             string filename = response.Text;
  92.             Debug.Print(filename);
  93.             Debug.Print(response.StatusCode);
  94.             sendCurlToWeb(filename);
  95.         }
  96.  
  97.         void sendCurlToWeb(string filename)
  98.         {
  99.             Debug.Print("curling");
  100.  
  101.             string phpadd = phpcurlimgURL + filename;
  102.             Debug.Print("sending curl req to: " + phpadd);
  103.             GT.Networking.HttpRequest curlreq = WebClient.GetFromWeb(phpadd);
  104.             curlreq.ResponseReceived += new HttpRequest.ResponseHandler(curlreq_ResponseReceived);
  105.             curlreq.SendRequest();
  106.         }
  107.  
  108.         void curlreq_ResponseReceived(HttpRequest sender, HttpResponse response)
  109.         {
  110.             Debug.Print("curl response received");
  111.             string curlresponsetxt = response.Text;
  112.             Debug.Print(curlresponsetxt);
  113.         }
  114.  
  115.         void startWifi()
  116.         {
  117.             Debug.Print("Starting Wifi");
  118.             GHI.Premium.Net.NetworkInterfaceExtension.AssignNetworkingStackTo(null);
  119.             wifi_RS21.Interface.Open();
  120.             wifi_RS21.Interface.NetworkInterface.EnableDhcp();
  121.             GHI.Premium.Net.NetworkInterfaceExtension.AssignNetworkingStackTo(wifi_RS21.Interface);
  122.             wifi_RS21.Interface.WirelessConnectivityChanged += new GHI.Premium.Net.WiFiRS9110.WirelessConnectivityChangedEventHandler(Interface_WirelessConnectivityChanged);
  123.            
  124.             try
  125.             {
  126.                 Debug.Print("scanning for network");
  127.                 GHI.Premium.Net.WiFiNetworkInfo[] ScanResp = wifi_RS21.Interface.Scan(WIFINETWORK);
  128.                 if (ScanResp != null && ScanResp.Length > 0)
  129.                 {
  130.                     Debug.Print("connecting...");
  131.                     wifi_RS21.Interface.Join(ScanResp[0], WIFIPASSWORD);
  132.                     //multicolorLed.BlinkRepeatedly(GT.Color.Orange);
  133.                 }
  134.                 else
  135.                 {
  136.                     //multicolorLed.BlinkRepeatedly(GT.Color.Red);
  137.                     Debug.Print("failed");
  138.                 }
  139.             }
  140.             catch (Exception e)
  141.             {
  142.                 counter++;
  143.                 Debug.Print("unable to find network. trying attempt # " + counter + ", " + e.Message);
  144.                 //startWifi();
  145.                 //multicolorLed.BlinkRepeatedly(GT.Color.Purple);
  146.             }
  147.  
  148.  
  149.         }
  150.  
  151.         void Interface_WirelessConnectivityChanged(object sender, GHI.Premium.Net.WiFiRS9110.WirelessConnectivityEventArgs e)
  152.         {
  153.             if (e.IsConnected)
  154.             {
  155.                 //multicolorLed.TurnGreen();
  156.                 Debug.Print("wifi connected");
  157.             }
  158.         }
  159.     }
  160. }
Add Comment
Please, Sign In to add comment