예제 #1
0
 public void Test_TryPoke_Variation_1()
 {
     using var server = new TestServer(ServiceName);
     server.Register();
     using var client = new DdeClient(ServiceName, TopicName);
     var result = client.TryPoke(ItemName, Encoding.ASCII.GetBytes(TestData), 1, Timeout);
     Assert.AreNotEqual(0, result);
 }
예제 #2
0
 public void Test_TryPoke_Variation_2()
 {
     using (TestServer server = new TestServer(ServiceName))
     {
         server.Register();
         using (DdeClient client = new DdeClient(ServiceName, TopicName))
         {
             client.Connect();
             int result = client.TryPoke(ItemName, Encoding.ASCII.GetBytes(TestData), 1, Timeout);
             Assert.AreEqual(0, result);
             Assert.AreEqual(TestData, Encoding.ASCII.GetString(server.GetData(TopicName, ItemName, 1)));
         }
     }
 }
 /// <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);
 }