public SettingCameraViewModel(CFun_GrabService CFun_grabService, CCoreConfig CCoreconfig, CStateStore CStatestore) { m_CStateStore = CStatestore; m_CCoreConfig = CCoreconfig; m_IEAutoValue = Enum.GetValues(typeof(ECAM_AUTO_VALUE)).Cast <ECAM_AUTO_VALUE>(); m_ICCameraInfos = CFun_grabService.Sub_GetDeviceInfos(); if (CFun_grabService.Sub_IsConnected()) { m_CInfo_Camera_Para = CFun_grabService.Sub_GetParameterInfo(); } CFun_grabService.m_dlParameterChanged += (paramterInfo => { m_CInfo_Camera_Para = paramterInfo; }); m_dlRefreshCMD = new DelegateCommand(() => { m_ICCameraInfos = CFun_grabService.Sub_GetDeviceInfos(); }); m_dlConnectCMD = new DelegateCommand(() => { if (CCoreconfig.CInfoCamera != null) { if (CFun_grabService.Sub_Connect(CCoreconfig.CInfoCamera)) { m_CInfo_Camera_Para = CFun_grabService.Sub_GetParameterInfo(); } } }); m_dlDisconnectCMD = new DelegateCommand(() => { CFun_grabService.Sub_Disconnect(); m_CInfo_Camera_Para = null; }); m_dlAutoCMD = new DelegateCommand <ECAM_AUTO_TYPE?>(type => { if (type == null) { return; } CFun_grabService.Set_Auto(type.Value, m_CInfo_Camera_Para.m_Idictautovalues[type.Value]); m_CInfo_Camera_Para = CFun_grabService.Sub_GetParameterInfo(); }); m_dlTriggerModeCMD = new DelegateCommand(() => { CFun_grabService.Set_TriggerMode(m_CInfo_Camera_Para.m_btrigger); }); }
} //StateStore public CommunicationViewModel(CFun_GrabService CFun_Grab, CStateStore CStatestore, CancellationToken token) { _CStateStore = CStatestore; Task.Run(async() => { while (token.IsCancellationRequested == false) { _CStateStore.m_tsconnect_cam = GetConnectionInfo(CFun_Grab.Sub_IsConnected()); await Task.Delay(1000).ConfigureAwait(false); } }); }