public void SendRigBusInfo() { var ServerEp = new IPEndPoint(IPAddress.Any, 0); DirGreetingList dirList = DirGreetingList.Instance; udpClient.EnableBroadcast = true; udpClient.Client.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.ReceiveTimeout, 3000); while (true) { try { rigBusDesc.Time = DateTimeUtils.ConvertToUnixTime(DateTime.Now); Byte[] senddata = Encoding.ASCII.GetBytes(JsonConvert.SerializeObject(rigBusDesc)); udpClient.Send(senddata, senddata.Length, new IPEndPoint(IPAddress.Broadcast, 7300)); var ServerResponseData = udpClient.Receive(ref ServerEp); var ServerResponse = Encoding.ASCII.GetString(ServerResponseData); var dirService = DirectoryBusGreeting.ParseCommand(ServerResponse); DirGreetingList.Instance.Add(dirService); Thread.Sleep(HamBusEnv.SleepTimeMs); } catch (SocketException) { Console.WriteLine("Timeout: Maybe DirectoryBus isn't running! "); } catch (Exception e) { Console.WriteLine("Timeout: Maybe DirectoryBus isn't running! \nExceptions: {0}", e.ToString()); } } }
public override object ReadJson(JsonReader reader, Type objectType, object existingValue, Newtonsoft.Json.JsonSerializer serializer) { if (reader.Value == null) { return(null); } return(DateTimeUtils.ConvertToUnixTime((long)reader.Value)); }
public void SendRigBusInfo() { while (true) { rigBusDesc.Time = DateTimeUtils.ConvertToUnixTime(DateTime.Now); udpClient.Connect("255.255.255.255", Constants.DirPortUdp); Byte[] senddata = Encoding.ASCII.GetBytes(JsonConvert.SerializeObject(rigBusDesc)); udpClient.Send(senddata, senddata.Length); Thread.Sleep(3000); } }
/// <summary> /// Scrobbles a single track /// </summary> /// <param name="artist"></param> /// <param name="track"></param> /// <param name="timestamp"></param> /// <param name="sessionKey"></param> /// <returns></returns> public static async Task <bool> TrackScrobble(string username, string password, string sessionKey, string artist, string trackTitle, string albumTitle, DateTime playbackStartTime) { bool isScrobbleSuccess = false; string method = "track.scrobble"; var data = new NameValueCollection(); data["artist"] = artist; data["track"] = trackTitle; if (!string.IsNullOrEmpty(albumTitle)) { data["album"] = albumTitle; } data["timestamp"] = DateTimeUtils.ConvertToUnixTime(playbackStartTime).ToString(); data["api_key"] = SensitiveInformation.LastfmApiKey; data["sk"] = sessionKey; data["api_sig"] = GenerateSignature(data, method); string result = await PerformPostRequest(method, data, false); if (!string.IsNullOrEmpty(result)) { try { // http://www.last.fm/api/show/track.scrobble var resultXml = XDocument.Parse(result); // Status string lfmStatus = (from t in resultXml.Elements("lfm") select t.Attribute("status").Value).FirstOrDefault(); // If Status is ok, return true. if (lfmStatus != null && lfmStatus == "ok") { isScrobbleSuccess = true; } } catch (Exception) { // Swallow: check for isScrobbleSuccess = true } } return(isScrobbleSuccess); }
private IPEndPoint SendUpdateResponse(IPEndPoint ServerEp) { Byte[] senddata = Encoding.ASCII.GetBytes(JsonConvert.SerializeObject(rigBusDesc)); rigBusDesc.Time = DateTimeUtils.ConvertToUnixTime(DateTime.Now); udpClient.Send(senddata, senddata.Length, new IPEndPoint(IPAddress.Broadcast, 7300)); Console.WriteLine("Sending Data"); var ServerResponseData = udpClient.Receive(ref ServerEp); var ServerResponse = Encoding.ASCII.GetString(ServerResponseData); Console.WriteLine("Recived {0} from {1} port {2}", ServerResponse, ServerEp.Address.ToString(), ServerEp.Port); var dirService = DirectoryBusGreeting.ParseCommand(ServerResponse); DirGreetingList.Instance.Add(dirService); Thread.Sleep(3000); return(ServerEp); }
/// <summary> /// Scrobbles a single track /// </summary> /// <param name="artist"></param> /// <param name="track"></param> /// <param name="timestamp"></param> /// <param name="sessionKey"></param> /// <returns></returns> public static async Task <bool> TrackScrobble(string sessionKey, string artist, string trackTitle, string albumTitle, DateTime playbackStartTime) { bool isSuccess = false; string method = "track.scrobble"; var parameters = new Dictionary <string, string>(); parameters.Add("method", method); parameters.Add("artist", artist); parameters.Add("track", trackTitle); if (!string.IsNullOrEmpty(albumTitle)) { parameters.Add("album", albumTitle); } parameters.Add("timestamp", DateTimeUtils.ConvertToUnixTime(playbackStartTime).ToString()); parameters.Add("api_key", SensitiveInformation.LastfmApiKey); parameters.Add("sk", sessionKey); string apiSig = GenerateMethodSignature(parameters, method); parameters.Add("api_sig", apiSig); string result = await PerformPostRequestAsync(method, parameters, false); if (!string.IsNullOrEmpty(result)) { // http://www.last.fm/api/show/track.scrobble var resultXml = XDocument.Parse(result); // Status string lfmStatus = (from t in resultXml.Elements("lfm") select t.Attribute("status").Value).FirstOrDefault(); // If Status is ok, return true. if (lfmStatus != null && lfmStatus.ToLower() == "ok") { isSuccess = true; } } return(isSuccess); }
public void SendRigBusInfo() { //https://stackoverflow.com/questions/2281441/can-i-set-the-timeout-for-udpclient-in-c int count = 0; var timeToWait = TimeSpan.FromSeconds(10); var ServerEp = new IPEndPoint(IPAddress.Any, 0); DirGreetingList dirList = DirGreetingList.Instance; udpClient.EnableBroadcast = true; udpClient.Client.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.ReceiveTimeout, 3000); while (true) { try { dataBusDesc.Time = DateTimeUtils.ConvertToUnixTime(DateTime.Now); Byte[] senddata = Encoding.ASCII.GetBytes(JsonConvert.SerializeObject(dataBusDesc)); udpClient.Send(senddata, senddata.Length, new IPEndPoint(IPAddress.Broadcast, 7300)); Console.WriteLine("Sending Data {0}", count++); var ServerResponseData = udpClient.Receive(ref ServerEp); var ServerResponse = Encoding.ASCII.GetString(ServerResponseData); var dirService = DirectoryBusGreeting.ParseCommand(ServerResponse); DirGreetingList.Instance.Add(dirService); Thread.Sleep(3000); } catch (SocketException se) { HamBusEnv.Logger.LogInformation($"Socket Error! Maybe Directory Bus isn't running.\n {se.Message}"); } catch (Exception e) { HamBusEnv.Logger.LogInformation($"socket {e.Message}"); // Console.WriteLine("Exception: {0}", e.Message); //infoThread.Abort(); } } }
private OmniRigInterface() { OmniRig = new OmniRigX(); OmniRig.ParamsChange += ParamsChangeEvent; RigX.Add(OmniRig.Rig1); RigX.Add(OmniRig.Rig2); RigStatePacket rigState = GetRigState(1); sendRigBusState(rigState); var rigBusInfo = OmniRigInfo.Instance; rigBusInfo.Command = "update"; rigBusInfo.RigType = OmniRig.Rig1.RigType; rigBusInfo.TcpPort = netRunner.listenTcpPort; rigBusInfo.UdpPort = netRunner.listenUdpPort; rigBusInfo.Id = Guid.NewGuid().ToString(); rigBusInfo.SendSyncInfo = true; rigBusInfo.MaxVersion = 1; rigBusInfo.MinVersion = 1; rigBusInfo.SendSyncInfo = true; rigBusInfo.Name = "OmniRigBus"; rigBusInfo.Time = DateTimeUtils.ConvertToUnixTime(DateTime.Now); optState.newStateDelegate = SetRigOptState; }