Example #1
0
 /// <summary>
 /// This method will retrieve Gen1 and Gen2 XML IRCC Command List or Gen3 JSON Command List.
 /// </summary>
 /// <returns>Returns a string containing the contents of the returned XML Command List for your Use</returns>
 /// <remarks>This method will also populate the SonyDevice.Commands object list with the retrieved command list</remarks>
 public string get_remote_command_list()
 {
     string cmdList = "";
     if (this.Actionlist.RegisterMode <= 2)
     {
         _Log.writetolog(this.Name + " is Retrieving Generation:" + this.Actionlist.RegisterMode + " Remote Command List", false);
         cmdList = HttpGet(this.Actionlist.getRemoteCommandList);
         if (cmdList != "")
         {
             _Log.writetolog("Retrieve Command List was Successful", true);
             DataSet CommandList = new DataSet();
             System.IO.StringReader xmlSR = new System.IO.StringReader(cmdList);
             CommandList.ReadXml(xmlSR, XmlReadMode.Auto);
             DataTable IRCCcmd = new DataTable();
             var items = CommandList.Tables[0].AsEnumerable().Select(r => new SonyCommands { name = r.Field<string>("name"), value = r.Field<string>("value") });
             var itemlist = items.ToList();
             this.Commands = itemlist;
             _Log.writetolog(this.Name + " Commands have been Populated", true);
         }
         else
         {
             _Log.writetolog("Retrieve Command List was NOT successful", true);
         }
     }
     else
     {
         _Log.writetolog(this.Name + " is Retrieving Generation:" + this.Actionlist.RegisterMode + " Remote Command List", false);
         var httpWebRequest = (HttpWebRequest)WebRequest.Create(@"http://" + this.Device_IP_Address + @"/sony/system");
         httpWebRequest.ContentType = "text/json";
         httpWebRequest.Method = "POST";
         using (var streamWriter = new StreamWriter(httpWebRequest.GetRequestStream()))
         {
             string json = "{\"id\":20,\"method\":\"getRemoteControllerInfo\",\"version\":\"1.0\",\"params\":[]}";
             streamWriter.Write(json);
         }
         var httpResponse = (HttpWebResponse)httpWebRequest.GetResponse();
         using (var streamReader = new StreamReader(httpResponse.GetResponseStream()))
         {
             var responseText = streamReader.ReadToEnd();
             cmdList = responseText;
             if (cmdList != "")
             {
                 _Log.writetolog("Response Returned: " + cmdList, true);
                 _Log.writetolog("Retrieve Command List was Successful", true);
             }
             else
             {
                 _Log.writetolog("Retrieve Command List was NOT successful", true);
             }
             dataSet = JsonConvert.DeserializeObject<SonyCommandList>(responseText);
         }
         string first = dataSet.result[1].ToString();
         List<SonyCommands> bal = JsonConvert.DeserializeObject<List<SonyCommands>>(first);
         this.Commands = bal;
         _Log.writetolog(this.Name + " Commands have been Populated: " + this.Commands.Count().ToString(), true);
     }
     return cmdList;
 }
Example #2
0
 /// <summary>
 /// This method Gets the current Status of the device
 /// </summary>
 /// <returns>Returns the device response as a string</returns>
 public string checkStatus()
 {
     string retstatus = "";
     if (this.Actionlist.RegisterMode != 3)
     {
         try
         {
             _Log.writetolog("Checking Status of Device " + this.Name, false);
             string cstatus;
             int x;
             cstatus = HttpGet(this.Actionlist.getStatus);
             cstatus = cstatus.Replace("/n", "");
             x = cstatus.IndexOf("name=");
             cstatus = cstatus.Substring(x + 6);
             x = cstatus.IndexOf("\"");
             string sname = cstatus.Substring(0, x);
             cstatus = cstatus.Substring(x);
             x = cstatus.IndexOf("value=");
             cstatus = cstatus.Substring(x + 7);
             x = cstatus.IndexOf("\"");
             string sval = cstatus.Substring(0, x);
             retstatus = sname + ":" + sval;
             _Log.writetolog("Device returned a Status of: " + retstatus, true);
         }
         catch (Exception ex)
         {
             _Log.writetolog("Checking Device Status for " + this.Name + " Failed!", true);
             _Log.writetolog(ex.ToString(), true);
             retstatus = "";
         }
     }
     else
     {
         try
         {
             _Log.writetolog("Checking Status of Device " + this.Name, false);
             var httpWebRequest = (HttpWebRequest)WebRequest.Create(@"http://" + this.Device_IP_Address + @"/sony/system");
             httpWebRequest.ContentType = "application/json";
             httpWebRequest.Method = "POST";
             using (var streamWriter = new StreamWriter(httpWebRequest.GetRequestStream()))
             {
                 string json = "{\"id\":19,\"method\":\"getPowerStatus\",\"version\":\"1.0\",\"params\":[]}\"";
                 streamWriter.Write(json);
             }
             var httpResponse = (HttpWebResponse)httpWebRequest.GetResponse();
             using (var streamReader = new StreamReader(httpResponse.GetResponseStream()))
             {
                 var responseText = streamReader.ReadToEnd();
                 dataSet = JsonConvert.DeserializeObject<SonyCommandList>(responseText);
             }
             string first = dataSet.result[0].ToString();
             first = first.Replace("{", "");
             first = first.Replace("\"", "");
             retstatus = first;
             _Log.writetolog("Device returned a Status of: " + retstatus, true);
         }
         catch (Exception ex)
         {
             _Log.writetolog("Check Status Failed: " + ex, true);
         }
     }
     return retstatus;
 }
Example #3
0
 /// <summary>
 /// Method used to retrieve Gen3 Devices Mac Address
 /// </summary>
 /// <returns></returns>
 public string getDeviceMac(SonyDevice mDev)
 {
     String macaddress = "";
     _Log.writetolog("Retrieving the Mac Address from: " + mDev.Name + " at IP: " + mDev.Device_IP_Address, true);
     var httpWebRequest = (HttpWebRequest)WebRequest.Create(@"http://" + mDev.Device_IP_Address + @"/sony/system");
     httpWebRequest.ContentType = "text/json";
     httpWebRequest.Method = "POST";
     SonyCommandList dataSet = new SonyCommandList();
     using (var streamWriter = new StreamWriter(httpWebRequest.GetRequestStream()))
     {
         string json = "{\"id\":19,\"method\":\"getSystemSupportedFunction\",\"version\":\"1.0\",\"params\":[]}\"";
         streamWriter.Write(json);
     }
     var httpResponse = (HttpWebResponse)httpWebRequest.GetResponse();
     using (var streamReader = new StreamReader(httpResponse.GetResponseStream()))
     {
         var responseText = streamReader.ReadToEnd();
         dataSet = JsonConvert.DeserializeObject<SonyCommandList>(responseText);
     }
     string first = dataSet.result[0].ToString();
     List<SonyOption> bal = JsonConvert.DeserializeObject<List<SonyOption>>(first);
     macaddress = bal.Find(x => x.option.ToLower() == "WOL".ToLower()).value.ToString();
     _Log.writetolog("Devices Mac Address: " + macaddress, true);
     return macaddress;
 }
Example #4
0
 /// <summary>
 /// Executes the XGetStatus action.
 /// </summary>
 /// <param name="parent">Parent Device object to get the Status from.</param>
 public string XGetStatus(SonyDevice parent)
 {
     string retstatus = "";
         if (parent.Actionlist.RegisterMode != 3)
         {
             if (parent.Actionlist.getStatus != null)
             {
                 try
                 {
                     _Log.writetolog("Checking Status of Device " + parent.Name, false);
                     string cstatus;
                     int x;
                     //cstatus = HttpGet(parent.Actionlist.getStatus);
                     String Url = parent.Actionlist.getStatus;
                     _Log.writetolog("Creating HttpWebRequest to URL: " + Url, true);
                     HttpWebRequest req = (HttpWebRequest)WebRequest.Create(Url);
                     req.KeepAlive = true;
                     // Set our default header Info
                     _Log.writetolog("Setting Header Information: " + req.Host.ToString(), false);
                     req.Host = parent.Device_IP_Address + ":" + parent.Device_Port;
                     req.UserAgent = "Dalvik/1.6.0 (Linux; u; Android 4.0.3; EVO Build/IML74K)";
                     req.Headers.Add("X-CERS-DEVICE-INFO", "Android4.03/TVSideViewForAndroid2.7.1/EVO");
                     req.Headers.Add("X-CERS-DEVICE-ID", "TVSideView:" + parent.Server_Macaddress);
                     req.Headers.Add("Accept-Encoding", "gzip");
                     try
                     {
                         _Log.writetolog("Creating Web Request Response", false);
                         System.Net.WebResponse resp = req.GetResponse();
                         _Log.writetolog("Executing StreamReader", false);
                         System.IO.StreamReader sr = new System.IO.StreamReader(resp.GetResponseStream());
                         cstatus = sr.ReadToEnd().Trim();
                         _Log.writetolog("Response returned: " + cstatus, false);
                         sr.Close();
                         resp.Close();
                         cstatus = cstatus.Replace("/n", "");
                         x = cstatus.IndexOf("name=");
                         cstatus = cstatus.Substring(x + 6);
                         x = cstatus.IndexOf("\"");
                         string sname = cstatus.Substring(0, x);
                         cstatus = cstatus.Substring(x);
                         x = cstatus.IndexOf("value=");
                         cstatus = cstatus.Substring(x + 7);
                         x = cstatus.IndexOf("\"");
                         string sval = cstatus.Substring(0, x);
                         retstatus = sname + ":" + sval;
                         _Log.writetolog("Device returned a Status of: " + retstatus, true);
                     }
                     catch (Exception e)
                     {
                         _Log.writetolog("There was an error during the Web Request or Response! " + e.ToString(), true);
                     }
                 }
                 catch (Exception ex)
                 {
                     _Log.writetolog("Checking Device Status for " + parent.Name + " Failed!", true);
                     _Log.writetolog(ex.ToString(), true);
                     retstatus = "";
                 }
             }
             else
             {
                 _Log.writetolog("ERROR: getStatusUrl is NULL", true);
                 _Log.writetolog("This device is not compatiable with this Service!", false);
                 return "Error";
             }
         }
         else
         {
             try
             {
                 _Log.writetolog("Checking Status of Device " + parent.Name, false);
                 var httpWebRequest = (HttpWebRequest)WebRequest.Create(@"http://" + parent.Device_IP_Address + @"/sony/system");
                 httpWebRequest.ContentType = "application/json";
                 httpWebRequest.Method = "POST";
                 SonyCommandList dataSet = new SonyCommandList();
                 using (var streamWriter = new StreamWriter(httpWebRequest.GetRequestStream()))
                 {
                     string json = "{\"id\":19,\"method\":\"getPowerStatus\",\"version\":\"1.0\",\"params\":[]}\"";
                     streamWriter.Write(json);
                 }
                 var httpResponse = (HttpWebResponse)httpWebRequest.GetResponse();
                 using (var streamReader = new StreamReader(httpResponse.GetResponseStream()))
                 {
                     var responseText = streamReader.ReadToEnd();
                     dataSet = JsonConvert.DeserializeObject<SonyCommandList>(responseText);
                 }
                 string first = dataSet.result[0].ToString();
                 first = first.Replace("{", "");
                 first = first.Replace("\"", "");
                 retstatus = first;
                 _Log.writetolog("Device returned a Status of: " + retstatus, true);
             }
             catch (Exception ex)
             {
                 _Log.writetolog("Check Status Failed: " + ex, true);
             }
         }
         parent.IRCC.sv_LastChange = retstatus;
         parent.IRCC.sv_CurrentStatus = retstatus;
         return retstatus;
 }