/// <summary> /// Event when order list is started /// </summary> /// <param name="StartOrderSeqEventData"></param> private void Q_StartOrderSeq(List <string[]> StartOrderSeqEventData) { int count = 0; string datetime = " "; string timeNextOrder = ""; TimeSpan StartTime = DateTime.Now.TimeOfDay; TimeSpan TOffset; TimeSpan TimeNextOrder; bool sendData = false; string[] dataToBeSent = null; List <string[]> orderDataList = StartOrderSeqEventData.Select(item => (string[])item.Clone()).ToList(); while (orderDataList.Count > 0) { foreach (string[] item in orderDataList) { count++; TOffset = TimeSpan.Parse(item[0]); TimeNextOrder = TOffset + StartTime; timeNextOrder = string.Concat(TimeNextOrder.ToString().TakeWhile((c) => c != '.')); datetime = string.Concat(DateTime.Now.TimeOfDay.ToString().TakeWhile((c) => c != '.')); if (datetime == timeNextOrder || count == 1) { dataToBeSent = item; sendData = true; break; } } if (orderDataList.Count == 0) { return; } if (sendData) { int Prio = Convert.ToInt32(dataToBeSent[1]);; int Ikey = Convert.ToInt32(dataToBeSent[2]); int Fetch = Convert.ToInt32(dataToBeSent[3]); int Drop = Convert.ToInt32(dataToBeSent[4]); Message_q q = new Message_q(1, Prio + 128, 1, Ikey, new List <int>() { Ikey, Fetch, Drop }); VCP9412.Instance.SendMessage(q); sendData = false; orderDataList.Remove(dataToBeSent); } Thread.Sleep(1); } }
static void Main(string[] args) { VCP9412 test = VCP9412.Instance; test.Open("192.168.1.100", 30001); List <int> intList = new List <int>(); intList.Add(1); intList.Add(2); Message_q msg = new Message_q(1, 128, 1, 1, intList); test.SendMessage(msg); Console.ReadKey(true); }
public void Message_qTest() { //Arrange byte[] bytearray = new byte[] { 250, 0x01, 0, 1, 0xF, 0xA1, 1, 0x4D, 0, 4, 0, 5, 0, 6, 0, 7, 0, 8, 0, 9 }; List <int> parlist = new List <int>(new int[] { 1, 4001, 333, 4, 5, 6, 7, 8, 9 }); Message_q msg = new Message_q(250, 0x01, parlist); //act MsgBuffer msgBuffer = msg.ToAciMsgBuffer(); int i = 0; foreach (var bytes in msgBuffer.Buffer) { Assert.AreEqual(bytes, bytearray[i]); i++; } }
/// <summary> /// Single order start event /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void Q_StartOrder(List <string> orderList) { List <int> StartOrderList = new List <int>(); //byte[] data = new byte[1024 * 1024]; //The "real" parse function is already done, so only numbers as strings in the list int Prio = int.Parse(orderList[0]); int Ikey = int.Parse(orderList[1]); int DropStn = int.Parse(orderList[2]); int PickStn = int.Parse(orderList[3]); StartOrderList.Add(Ikey); StartOrderList.Add(PickStn); StartOrderList.Add(DropStn); Message_q q = new Message_q(1, Prio + 128, 1, Ikey, StartOrderList); VCP9412.Instance.SendMessage(q); }