void PLAY() { if (data.очередьКОПИЯ == null) { pFORM.AddText("ОШИБКА НЕ СОЗДАНА КОПИЯ"); return; } if (data.очередьКОПИЯрабочая == null) { pFORM.AddText("ОШИБКА НЕ СОЗДАНА КОПИЯрабочая"); return; } try { DateTime datanew = new DateTime(); uint id; string err; byte sz, b1, b2, b3, b4, b5, b6, b7, b8; if (!data.connOK) { pFORM.AddText("-Отмена воспр.- нет связи\n"); Thread.Sleep(2000); return; } if (data.очередьКОПИЯрабочая.Count == 0) { if (pFORM.ctviv > 2000) { pFORM.CLEAR(); } pFORM.AddText("^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\nЦикл закончен РЕСТАРТ\n"); // data.очередьКОПИЯрабочая = data.очередьКОПИЯ; data.COPY2(); lasttime = new DateTime(); Thread.Sleep(500); } //pFORM.AddText(String.Format("размер рабоч={0} + копия={1} o={2}", // data.очередьКОПИЯрабочая.Count, data.очередьКОПИЯ.Count, data.очередь.Count)); if (data.АБОТА_С_ОЧЕРЕДЬЮ_PLAY(2)) //читаем { err = data.buf_readPLAY.strERROR; datanew = data.buf_readPLAY.time; id = data.buf_readPLAY.adr; sz = data.buf_readPLAY.sz; b1 = data.buf_readPLAY.b1; b2 = data.buf_readPLAY.b2; b3 = data.buf_readPLAY.b3; b4 = data.buf_readPLAY.b4; b5 = data.buf_readPLAY.b5; b6 = data.buf_readPLAY.b6; b7 = data.buf_readPLAY.b7; b8 = data.buf_readPLAY.b8; } else { Thread.Sleep(50); return; } // data.РАБОТА_С_ОЧЕРЕДЬЮplay("write", data.buf_readPLAY); try { //пауза if (lasttime != new DateTime()) { //7:39:55.827 var a = datanew.Subtract(lasttime); int pause = (int)Math.Abs(a.TotalMilliseconds); //if (a.TotalMilliseconds>49) Thread.Sleep(a.TotalMilliseconds); //pFORM.AddTextCONT(//"delta ms=" + a.TotalMilliseconds.ToString() + ";"+ //String.Format("p={0};", pause)); if (pause > 5000) { pause = 5000; } if (pause >= 50) //иначе зависнет дисплей не будет успевать { pFORM.ctviv++; if (pFORM.ctviv < 2000) { pFORM.AddTextCONTperv(String.Format("P={0}", pause) + " playID: " + pFORM.HX(id) + " Size: " + sz + " Data: " + String.Format("{0} {1} .{2} {3} : {4} {5} .{6} {7} \n", pFORM.HX(b1), pFORM.HX(b2), pFORM.HX(b3), pFORM.HX(b4), pFORM.HX(b5), pFORM.HX(b6), pFORM.HX(b7), pFORM.HX(b8))); } } if (pause >= 70 && pause < 100000) { Thread.Sleep(pause); } } lasttime = datanew; } catch (Exception ex) { pFORM.AddText("Ошибка расчета паузы между сообщениями" + ex.Message); } //pFORM.AddTextCONTperv(data.getTIME() + " TEСТ ID: " + pFORM.HX(id) + " Size: " + sz + " Data: " + // String.Format("{0} {1} .{2} {3} : {4} {5} .{6} {7} \n", // pFORM.HX(b1), pFORM.HX(b2), pFORM.HX(b3), pFORM.HX(b4), // pFORM.HX(b5), pFORM.HX(b6), pFORM.HX(b7), pFORM.HX(b8))); data.sz = sz; data.adr = id; data.b1 = b1; data.b2 = b2; data.b3 = b3; data.b4 = b4; data.b5 = b5; data.b6 = b6; data.b7 = b7; data.b8 = b8; SEND(); } catch (Exception ex) { pFORM.AddText("ФАТАЛЬНАЯ ОШИБКА ВОСПРОИЗВЕДЕНИЯ " + ex.Message); data.PLAY = false; } //if (data.PLAYQueue.Count != 0) {pFORM.AddTextCONT("pz;"); // Thread.Sleep(50);} //if (data.PLAYQueue.Count != 0) //{ // pFORM.AddTextCONT("pz2;"); // Thread.Sleep(100); //} if (data.PLAYQueue.Count != 0) //{ // pFORM.AddTextCONT("pz3;"); // Thread.Sleep(200); //} if (data.PLAYQueue.Count != 0) //{ // pFORM.AddTextCONT("pz4;"); // Thread.Sleep(500); //} }