예제 #1
0
파일: WDSApplication.cs 프로젝트: x893/WDS
 public WDSApplication(WDSApplicationType appType)
 {
     this._appType = appType;
     this._appWinReadyToClose = new Dictionary<IAppWindow, bool>();
 }
예제 #2
0
파일: WDSFrameWindow.cs 프로젝트: x893/WDS
 public int closeApplication(WDSApplicationType appType, ADTRecord[] adtRec)
 {
     WDSApplication application = WDSApplicationManager.instance().findApplication(appType, adtRec[0]);
     if (application != null)
         application.startClosing();
     return 0;
 }
예제 #3
0
파일: WDSFrameWindow.cs 프로젝트: x893/WDS
        public int startPlugAndPlayApplication(WDSApplicationType appType, List<ADTRecord> adtRecList, ADCRRecord a_selectedADCRRecord)
        {
            ADTRecord[] adtRecs = new ADTRecord[adtRecList.Count];
            for (int i = 0; i < adtRecList.Count; i++)
                adtRecs[i] = adtRecList[i];

            if (!ADCRManager.instance().canAppAcceptSelDevs(appType, adtRecs))
            {
                GlobalServices.ErrMsg("WDSFrameWindow.startPlugAndPlayApplication()", "Application cannot accept selected devices!");
                return -1;
            }
            WDSApplication app = new WDSApplication(appType);
            IAppMainWindow mainWin = _lastCreatedMainWin = ADCRManager.instance().createAppMainWin(appType);
            if (mainWin == null)
            {
                GlobalServices.ErrMsg("startPlugAndPlayApplication()", "createAppMainWin() failed to create application's main window");
                return -1;
            }
            adtRecList[0].addAssociatedApp(a_selectedADCRRecord);
            _lastCreatedMainWin.associatedADCRRecord = a_selectedADCRRecord;
            IAppWindow[] helperWins = mainWin.createHelperWindows();
            if (helperWins != null)
                foreach (IAppWindow window2 in helperWins)
                    window2.createCloseWindowController();

            IIOPortHandler[] portHandlers = mainWin.createPortHandlers(adtRecs);
            mainWin.createCloseWindowController();
            app.setWindows(mainWin, helperWins);
            app.setPortHandlers(portHandlers);
            try
            {
                if (mainWin.initialize() == -1)
                {
                    GlobalServices.ErrMsg("startPlugAndPlayApplication()", "Application's main window initialization failed!");
                    return -1;
                }
                ((Form) mainWin).MdiParent = this;
                ((Form) mainWin).Show();
                if (helperWins != null)
                {
                    foreach (IAppWindow window3 in helperWins)
                    {
                        ((Form) window3).MdiParent = this;
                        ((Form) window3).Show();
                    }
                }
                WDSApplicationManager.instance().addApplication(app);
                return 0;
            }
            catch
            {
                return -1;
            }
        }
예제 #4
0
파일: GlobalServices.cs 프로젝트: x893/WDS
 public static string uniqApplicationId(WDSApplicationType appType)
 {
     return (appType.ToString() + "[" + Interlocked.Increment(ref _uniqAppId).ToString() + "]");
 }
예제 #5
0
 public WDSApplication findApplication(WDSApplicationType AppType, ADTRecord adtRec)
 {
     foreach (WDSApplication application in this._apps)
     {
         if (application.hasDevice(adtRec) && (application.AppType == AppType))
         {
             return application;
         }
     }
     return null;
 }
예제 #6
0
파일: ADCRManager.cs 프로젝트: x893/WDS
        public IAppMainWindow createAppMainWin(WDSApplicationType appType)
        {
            switch (appType)
            {
                case WDSApplicationType.Si4012_CP:
                    return new AppWin_Si4012_CP();

                case WDSApplicationType.Si4012_RC:
                    return new AppWin_Si4012_RC();

                case WDSApplicationType.Si4020_CP:
                    return new AppWin_Si4020_CP();

                case WDSApplicationType.Si4021_CP:
                    return new AppWin_Si4021_CP();

                case WDSApplicationType.Si4022_CP:
                    return new AppWin_Si4022_CP();

                case WDSApplicationType.Si4320_CP:
                    return new AppWin_Si4320_CP();

                case WDSApplicationType.Si4322_CP:
                    return new AppWin_Si4322_CP();

                case WDSApplicationType.Si4420_CP:
                    return new AppWin_Si4420_CP();

                case WDSApplicationType.Si4421_CP:
                    return new AppWin_Si4421_CP();

                case WDSApplicationType.Si4432_CP:
                    return new AppWin_Si4432_CP();

                case WDSApplicationType.Si4455_CP:
                    return new AppWin_Si4455_CP();

                case WDSApplicationType.Si4455_RC:
                    return new AppWin_Si4455_RC();

                case WDSApplicationType.Si4460_CP:
                    return new AppWin_Si4460_CP();

                case WDSApplicationType.Si4460_RC:
                    return new AppWin_Si4460_RC();

                case WDSApplicationType.Si4520_CP:
                    return new AppWin_Si4520_CP();

                case WDSApplicationType.SPITool:
                    return new AppWin_SPITool();

                case WDSApplicationType.SPITool_PRO:
                    return new AppWin_SPITool_PRO();

                case WDSApplicationType.SPITool_PRO2:
                    return new AppWin_SPITool_PRO2();

                case WDSApplicationType.Network_Wizard_CP:
                    return new Network_Wizard_CP();

                case WDSApplicationType.Basic_Network_Demo_CP:
                    return new Basic_Network_Demo_CP();

                case WDSApplicationType.RKE_Demo_CP:
                    return new RKE_Demo_CP();

                case WDSApplicationType.Security_Demo_CP:
                    return new Security_Demo_CP();

                case WDSApplicationType.EnergyHarvesting_Demo_CP:
                    return new EnergyHarvesting_Demo_CP();

                case WDSApplicationType.RF_To_USB_Network_Demo_CP:
                    return new RF_To_USB_Network_Demo_CP();

                case WDSApplicationType.ShelfLabelDemo_CP:
                    return new ShelfLabelDemo_CP();

                case WDSApplicationType.EzMacNetwork_Demo_CP:
                    return new EzMacNetwork_Demo_CP();

                case WDSApplicationType.IOPHTest:
                    return new AppWin_IOPHTest();

                case WDSApplicationType.FTDITest:
                    return new AppWin_FTDITest();

                case WDSApplicationType.EZLinkDongleTest:
                    return new AppWin_EZLinkTest();

                case WDSApplicationType.EZLinkChat:
                    return new AppWin_EZLinkChat();

                case WDSApplicationType.EZLinkTempDemo:
                    return new AppWin_EZLinkTempDemo();
            }
            GlobalServices.ErrMsg("createAppMainWin()", "Unexpected application type: " + appType.ToString());
            return null;
        }
예제 #7
0
파일: ADCRManager.cs 프로젝트: x893/WDS
 public bool canAppAcceptSelDevs(WDSApplicationType appType, ADTRecord[] adtRecs)
 {
     return true;
 }
예제 #8
0
파일: ADCRManager.cs 프로젝트: x893/WDS
 public ADCRRecord getADCRRecord(WDSApplicationType appType)
 {
     return this._adcrRecordSet[(int) appType];
 }