public Dictionary <KbMediaProperty, string> GetCurrentPropertyMap(bool isFull = false) { Dictionary <KbMediaProperty, string> valueMap = new Dictionary <KbMediaProperty, string>(); byte[] data; foreach (KbMediaProperty type in Enum.GetValues(typeof(KbMediaProperty))) { if (!isFull && !minPropertySet.Contains(type)) { continue; } int result = client.TryRequest(type.GetDdeCommand(), 4, 100, out data); // ANSI(Shift_JIS) = 1, Unicode = 4? if (result != 0) { continue; } string val = DdeEncoding.GetString(data).Trim('\0'); if (string.IsNullOrEmpty(val)) { continue; } valueMap.Add(type, val); } return(valueMap); }
public void Test_TryRequest_Variation_1() { using var server = new TestServer(ServiceName); server.Register(); server.SetData(TopicName, ItemName, 1, Encoding.ASCII.GetBytes(TestData)); using var client = new DdeClient(ServiceName, TopicName); byte[] data; var result = client.TryRequest(ItemName, 1, Timeout, out data); Assert.AreNotEqual(0, result); }
public void Test_TryRequest_Variation_2() { using (TestServer server = new TestServer(ServiceName)) { server.Register(); server.SetData(TopicName, ItemName, 1, Encoding.ASCII.GetBytes(TestData)); using (DdeClient client = new DdeClient(ServiceName, TopicName)) { client.Connect(); byte[] data; int result = client.TryRequest(ItemName, 1, Timeout, out data); Assert.AreEqual(0, result); Assert.AreEqual(TestData, Encoding.ASCII.GetString(data)); } } }
/// <summary> /// Transmits the data contained in the frame. /// </summary> /// <param name="frame">Frame with the data to be transmitted.</param> /// <returns> /// Success: /// Operation accomplished successfully /// </returns> TFrameEndSignalRes ICommunicationLayer.FrameEndSignal(UMessage frame) { //client.TryRequest(frame.GetManagedBuffer().ToString(),0,1000, //; string[] request = System.Text.ASCIIEncoding.ASCII.GetString( frame.GetManagedBuffer()).Split(new char[] { ';' }); if (m_connected == false) { return(TFrameEndSignalRes.DisInd); } if (request[0] == "REQ") { ClearBytesArray(); if (client.TryRequest(request[1], 1, 500, out bytes) == 0) { string response = System.Text.ASCIIEncoding.ASCII.GetString(bytes); ValueQueue.Enqueue(new QueueElement(response, true)); } else { ValueQueue.Enqueue(new QueueElement("", false)); } } else if (request[0] == "SND") { if (client.TryPoke(request[1], new System.Text.ASCIIEncoding().GetBytes(request[2]), 1, 500) == 0) { ValueQueue.Enqueue(new QueueElement("OK", true)); } else { ValueQueue.Enqueue(new QueueElement("BAD", false)); } } return(TFrameEndSignalRes.Success); }