private void resetAll() { mKommunikatorState = kommunikatorStateTyp.disconnected; allrecData = new ConcurrentQueue<byte[]>(); allDataForTB = new Queue<string>(); recData = new Queue<armRecVal>(); toRequest = new List<armRequestValue>(); toSet = new Queue<armSetting>(); cntPing = 0; cntRec = 0; cntSend = 0; waitedForConfirm = 0; waitedForPing = 0; remainToRead = 0; currentTime = 0; reading = false; readingFirst = false; readingCurrentRead = 0; }
public void open(String pportName, int pbaudRate) { try { mSerialPort = new SerialPort(pportName, pbaudRate); mSerialPort.Open(); mSerialPort.DataReceived += new SerialDataReceivedEventHandler(workReviced); mSerialPort.Encoding = Encoding.ASCII; Debug.WriteLine("Opened Com Port"); } catch { Debug.WriteLine("Failed to Open Port on Kom Konstructor, portname:" + pportName); this.mKommunikatorState = kommunikatorStateTyp.error; } requestConnect = true; stopRequestValue(0); // RESET REQUEST VEKTOR }
public void zyklischMain() { switch (mKommunikatorState) { case kommunikatorStateTyp.connected: waitedForPing++; directSend("a"); while (allrecData.Count > 0) { byte[] toAnalyse; if (allrecData.TryDequeue(out toAnalyse)) { analyseRec(toAnalyse); } } workRequestValueQue(); workToSet(); if (waitedForPing > sMaxWaitPing) { mKommunikatorState = kommunikatorStateTyp.disconnected; Debug.WriteLine("Disconnected because didnt get ping"); } break; case kommunikatorStateTyp.connecting: while (allrecData.Count > 0) { byte[] toAnalyse; if (allrecData.TryDequeue(out toAnalyse)) { analyseRec(toAnalyse); } } if (waitedForConfirm > sMaxWaitConfirm) { //mKommunikatorState = kommunikatorStateTyp.disconnected; //Debug.WriteLine("Didnt connect because didnt get confirm"); } else if (waitedForConfirm == 0) { mKommunikatorState = kommunikatorStateTyp.connected; Debug.WriteLine("Connected!"); directSend("q"); } waitedForConfirm++; break; case kommunikatorStateTyp.disconnected: if (requestConnect) { int res = startConnect(); if (res == 0) { mKommunikatorState = kommunikatorStateTyp.connecting; waitedForConfirm = 0; } else { mKommunikatorState = kommunikatorStateTyp.error; Debug.WriteLine("Failed to Start Connecting!: error: " + res); } requestConnect = false; } break; case kommunikatorStateTyp.error: break; default: Debug.WriteLine("Fehler Zyklisch unbekannter Zustand"); break; } }