Пример #1
0
        static public bool SetupControlObjects()
        {
            bool retValue = false;

            try
            {
                if (!projectInfo.fileLoaded)
                {
                    retValue = false;
                    return(retValue);
                }
                for (int i = 0; i < projectInfo.deviceUsedCount; i++)
                {
                    int objectID = projectInfo.controlObjectID[i];
                    if (projectInfo.controlObjectPara[i] is string)
                    {
                        ControlObjects.ArrangeControlObject(objectID, projectInfo.controlObjectPara[i].ToString(), projectInfo.controlObjectSerialBaudRate[i]);
                    }
                    else
                    {
                        ControlObjects.ArrangeControlObject(objectID, (List <object>)projectInfo.controlObjectPara[i]);
                    }
                }
            }
            catch (Exception) { };
            return(retValue);
        }
Пример #2
0
 static public void BoardStreamToDevicesApply()
 {
     try
     {
         ControlObjects.ControlObjectDoEvents();
         DataManager.ApplyTrainData();
     }
     catch (Exception) { };
 }
Пример #3
0
 static public void UpdateDevicesInitMode()
 {
     try
     {
         for (int i = 0; i < BoardsManager.boardInfo.boardIOCount; i++)
         {
             devicesInitMode[i] = ControlObjects.GetBoardDeviceIOMode(i);
             deviceValue[i]     = 0;
         }
     }
     catch (Exception) { };
 }
Пример #4
0
        static public string GetDevicesDataStream()
        {
            string retValue = string.Empty;

            try
            {
                ControlObjects.ControlObjectDoEvents();
                for (int i = 0; i < BoardsManager.boardInfo.boardIOCount; i++)
                {
                    DevicesIOMode initMode = devicesInitMode[i];
                    if (initMode == DevicesIOMode.DEVICE_ANALOG_OUTPUT || initMode == DevicesIOMode.DEVICE_DIGITAL_OUTPUT)
                    {
                        retValue += (char)i;
                        retValue += (char)deviceValue[i];
                    }
                }
            }
            catch (Exception) { };
            return(retValue);
        }
Пример #5
0
        static public void ProjectLoaderProcess(LoadingState processValue)
        {
            try
            {
                switch (processValue)
                {
                case LoadingState.WAIT_FOR_START:
                {
                    ProcessEvent(LoadingState.READY);
                    break;
                }

                case LoadingState.READY:
                {
                    //reset data
                    BoardsManager.ResetBoardManager();
                    ControlObjects.ResetControlObjects();
                    CommunicationSerial.ResetSerial();
                    DataManager.ResetTrainData();
                    PackagesManager.ResetPackageManager();
                    GraphicOptionsManager.ResetGraphicOptionsManager();
                    UserInterfaceSwap.errorContent.Clear();
                    RProxy.SimWorldTrigger.ResetTrigger();
                    ProcessEvent(LoadingState.DATA_RESET);
                    break;
                }

                case LoadingState.DATA_RESET:
                {
                    //update list
                    SettingsContent.UpdateSettingsPath();
                    BoardsManager.UpdateBoardItems();
                    ControlObjects.UpdateControlObjectsItem();
                    ProjectsManager.UpdateProjectItem();
                    PackagesManager.UpdatePackageList();
                    ProcessEvent(LoadingState.DATA_UPDATED);
                    break;
                }

                case LoadingState.DATA_UPDATED:
                {
                    //get project define file path
                    int fileIndex = ProjectsManager.projectList.projectID.IndexOf(projectGUIDValue);
                    projectFilePath = ProjectsManager.projectList.projectFilePath[fileIndex];
                    projectDirPath  = Path.GetDirectoryName(projectFilePath);
                    //load project define file
                    ProjectsManager.LoadProjectFile(projectFilePath);
                    ProjectsManager.SetupBoard();
                    ProjectsManager.SetupControlObjects();
                    DevicesManager.UpdateDevicesInitMode();
                    CommunicationSerial.InitializeSerial();
                    ProcessEvent(LoadingState.PROJECT_DEFINE_LOADED);
                    break;
                }

                case LoadingState.PROJECT_DEFINE_LOADED:
                {
                    //load package
                    PackagesManager.LoadPackageFile(ProjectsManager.projectInfo.packageGUID);
                    ProcessEvent(LoadingState.PACKAGE_DEFINE_LOADED);
                    break;
                }

                case LoadingState.PACKAGE_DEFINE_LOADED:
                {
                    //load train
                    PackagesManager.packageInfo.trainDetailInfoLoaded = false;
                    LoadTrainData(PackagesManager.packageInfo.packageTrainDir);
                    ProcessEvent(LoadingState.TRAIN_LOADED);
                    break;
                }

                case LoadingState.TRAIN_LOADED:
                {
                    //load route
                    PackagesManager.packageInfo.routeDetailInfoLoaded = false;
                    routeLoadingStateMonitor.AttachMainTimerInterrupt();
                    routeLoadingStateMonitor.MainTimerEnable = true;
                    LoadRouteData(PackagesManager.packageInfo.packageRouteDir);
                    break;
                }

                case LoadingState.ROUTE_LOADED:
                {
                    //load options
                    GraphicOptionsManager.LoadGraphicOptionsFile(ProjectsManager.projectInfo.simulatorOptionsFilePath);
                    GraphicOptionsLoaderEvent(GraphicOptionsManager.graphicOptionsValue);
                    ProcessEvent(LoadingState.SIM_OPTIONS_LOADED);
                    break;
                }

                case LoadingState.SIM_OPTIONS_LOADED:
                {
                    //check error
                    UserInterfaceSwap.errorContent = ProjectsManager.CheckProjectContent();
                    ProcessEvent(LoadingState.DATA_SERVER_START);
                    break;
                }

                case LoadingState.DATA_SERVER_START:
                {
                    //starting server
                    ProjectsManager.SetupDataServer();
                    ProcessEvent(LoadingState.DONE);
                    break;
                }

                case LoadingState.DONE:
                {
                    CommunicationNetwork.StartWebSocketServer();
                    StartSimulatorEvent();
                    break;
                }
                }
            }
            catch (Exception)
            {
                ProcessEvent(LoadingState.ERROR);
            };
        }