MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    new VersionSender("SystemController",1,1,12,ZTools::getCarID());
   ioDevice = new IODeviceListener;
    trainLinePanel = new TrainLinePanel;
    connect(trainLinePanel,SIGNAL(changeCurrentLine(int)),this,SLOT(loadLineInfo(int)));
    espeakPanel = new ESpeakEdit;
    int trainId = GlobalInfo_t::getCurrentTrainIdFromLocalFile();
    loadLineInfo( trainId);
    GlobalInfo::getInstance()->mainWin = this;
    setWindowFlags(Qt::FramelessWindowHint|(windowFlags() & (~Qt::WindowCloseButtonHint)));
    ui->setupUi(this);
    workThread = new WorkThread;
    workThread->start();

    CarInfo::init();

}
bool ManageConfig::loadConfig(const string & config_file)
{
	bool result = false;
	std::auto_ptr<Document> auto_doc(XMLFactory::create_document());
	if (NULL == auto_doc.get())
	{
		std::cout << ("Failed to call XMLFactory::create_document()\n");
		return false;
	}

	try
	{
		if (auto_doc->load_file(config_file))
		{
			result = true;
			Element * root_ele = auto_doc->get_root();

			result = loadAccountSQLCfg(root_ele) && result;
			result = loadGateCfg(root_ele) && result;
			result = loadCacheConfig(root_ele) && result;
			result = loadGUIDAddr(root_ele) && result;
			result = loadUnlawfulInfo(root_ele) && result;
			//result = loadProfession(root_ele) && result;
			result = loadLogsysInfo(root_ele) && result;
			result = loadInitialization(root_ele) && result;
			result = loadLineInfo(root_ele) && result;
		}
		else
		{
			result = false;
			std::cout << "Failed to parse file : " << config_file.c_str() << std::endl;
		}
	}
	catch (...)
	{
		std::cout << "Raise unknown exception in ManageConfig::loadConfig, the last error is " << ACE_OS::last_error();
		result = false;
	}
	auto_doc->clear();
	return result;
}