Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
 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);
 }
Exemplo n.º 3
0
 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);
 }