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);
                }
            });
        }