// ------------------------------------------------------------------------ // Invoked whenever the CammaController gameobject is deactivated. // It stops and destroys the thread that was reading from the camma device. // ------------------------------------------------------------------------ void OnDisable() { // If there is a user-defined tear-down function, execute it before // closing the underlying COM port. if (userDefinedTearDownFunction != null) { userDefinedTearDownFunction(); } // The cammaThread reference should never be null at this point, // unless an Exception happened in the OnEnable(), in which case I've // no idea what face Unity will make. if (cammaThread != null) { cammaThread.RequestStop(); cammaThread = null; } // This reference shouldn't be null at this point anyway. if (thread != null) { thread.Join(); thread = null; } }
// ------------------------------------------------------------------------ // Invoked whenever the CammaController gameobject is activated. // It creates a new thread that tries to connect to the camma device // and start reading from it. // ------------------------------------------------------------------------ void OnEnable() { cammaThread = new CammaThreadBinaryDelimited(portName, baudRate, reconnectionDelay, maxUnreadMessages, separator); thread = new Thread(new ThreadStart(cammaThread.RunForever)); thread.Start(); }