@Override
	public void run() 
	{
		short ret = MsgAnalyzerCmnDef.ANALYZER_SUCCESS;
		// TODO Auto-generated method stub
		while (!exit.get())
		{
			try
			{
				synchronized(this)
				{
					wait(); // Wait for the signal, the thread should be created first
// Parse each data from the serial port
					ret = MsgAnalyzerCmnDef.parse_serial_parameter(serial_data, highlight, MsgAnalyzerCmnDef.SHOW_DEVICE_CONSOLE);
					if (MsgAnalyzerCmnDef.CheckFailure(ret))
						break;
				}
			}
			catch (InterruptedException e)
			{
				MsgAnalyzerCmnDef.WriteDebugSyslog("The analyzing serial data worker thread throws a InterruptedException...");
			}
			catch(Exception e)
			{
				MsgAnalyzerCmnDef.WriteErrorSyslog("Error occur while waiting for death of analyzing serial data worker thread, due to: " + e.toString());
				ret = MsgAnalyzerCmnDef.ANALYZER_FAILURE_UNKNOWN;
				break;
			}
		}
		MsgAnalyzerCmnDef.WriteDebugSyslog("The worker thread of analyzing message is dead !!!");
	}