|
DreamineVMS 1.0.0.0
Windows PC의 RTSP·USB 카메라 영상을 HLS로 변환해 원격 CCTV Viewer에 전달하는 데스크톱 에이전트입니다.
|


Public 멤버 함수 | |
| MainWindowViewModel (IVmsCameraRepository repository, ICameraRuntimeStateService runtimeState, ICameraStreamService streamService, IVmsDashboardStateService dashboardStateService, IHybridMessageBus messageBus, AgentSettingsViewModel agentSettings) | |
| void | Dispose () |
속성 | |
| AgentSettingsViewModel | AgentSettings [get] |
| ObservableCollection< CameraRowViewModel > | Cameras = new() [get] |
| ObservableCollection< VmsLogItem > | Logs = new() [get] |
| CameraRowViewModel? | SelectedCamera [get, set] |
| string | StatusMessage [get, private set] |
| ICommand | ConnectSelectedCameraCommand [get] |
| ICommand | DisconnectSelectedCameraCommand [get] |
| ICommand | StartAllCommand [get] |
| ICommand | StopAllCommand [get] |
| ICommand | ClearLogsCommand [get] |
이벤트 | |
| PropertyChangedEventHandler? | PropertyChanged |
| EventHandler? | OpenLiveTabRequested |
Private 멤버 함수 | |
| async Task | ConnectSelectedCameraAsync () |
| async Task | DisconnectSelectedCameraAsync () |
| async Task | ConnectCameraAsync (string? cameraId) |
| async Task | DisconnectCameraAsync (string? cameraId) |
| async Task | StartAllAsync () |
| async Task | StopAllAsync () |
| async Task | OnDashboardActionRequestedAsync (VmsDashboardActionRequestedMessage message, CancellationToken cancellationToken) |
| void | OnCameraRuntimeStateChanged (object? sender, CameraRuntimeState state) |
| void | AddLog (string message) |
| void | AddLogCore (string message) |
| void | ClearLogs () |
| void | RaiseOpenLiveTabRequested () |
| void | OnPropertyChanged ([CallerMemberName] string? propertyName=null) |
정적 Private 멤버 함수 | |
| static void | DispatchToUi (Action action) |
Private 속성 | |
| readonly IVmsCameraRepository | _repository |
| readonly ICameraRuntimeStateService | _runtimeState |
| readonly ICameraStreamService | _streamService |
| readonly IVmsDashboardStateService | _dashboardStateService |
| readonly IDisposable | _dashboardSubscription |
| readonly AgentSettingsViewModel | _agentSettings |
| CameraRowViewModel? | _selectedCamera |
| string | _statusMessage = "VMS application started." |
DreamineVMS 메인 윈도우 ViewModel입니다.
이 ViewModel은 UI 표시와 사용자 명령 라우팅만 담당합니다. 대시보드 상태(VmsDashboardState) 갱신은 IVmsDashboardStateService가 책임집니다.
MainWindowViewModel.cs 파일의 31 번째 라인에서 정의되었습니다.
|
inline |
지정한 설정으로 MainWindowViewModel 클래스의 새 인스턴스를 초기화합니다.
| repository | repository에 사용할 IVmsCameraRepository 값입니다. |
| runtimeState | runtime State에 사용할 ICameraRuntimeStateService 값입니다. |
| streamService | stream Service에 사용할 ICameraStreamService 값입니다. |
| dashboardStateService | dashboard State Service에 사용할 IVmsDashboardStateService 값입니다. |
| messageBus | message Bus에 사용할 IHybridMessageBus 값입니다. |
| agentSettings | agent Settings에 사용할 AgentSettingsViewModel 값입니다. |
| ArgumentNullException | 필수 입력 인자 중 하나가 null인 경우 발생합니다. |
MainWindowViewModel.cs 파일의 179 번째 라인에서 정의되었습니다.
다음을 참조함 : _agentSettings, _dashboardStateService, _dashboardSubscription, _repository, _runtimeState, _streamService, Cameras, ClearLogs(), ClearLogsCommand, ConnectSelectedCameraAsync(), ConnectSelectedCameraCommand, DisconnectSelectedCameraAsync(), DisconnectSelectedCameraCommand, DreamineVMS.Models.CameraDevice.Id, Logs, OnCameraRuntimeStateChanged(), OnDashboardActionRequestedAsync(), SelectedCamera, StartAllAsync(), StartAllCommand, StopAllAsync(), StopAllCommand.

|
inlineprivate |
Log 항목을 추가합니다.
| message | 처리할 메시지입니다. |
MainWindowViewModel.cs 파일의 677 번째 라인에서 정의되었습니다.
다음을 참조함 : AddLogCore(), DispatchToUi().
다음에 의해서 참조됨 : ClearLogs(), ConnectCameraAsync(), ConnectSelectedCameraAsync(), DisconnectCameraAsync(), DisconnectSelectedCameraAsync(), OnDashboardActionRequestedAsync(), StartAllAsync(), StopAllAsync().


|
inlineprivate |
Log Core 항목을 추가합니다.
| message | 처리할 메시지입니다. |
MainWindowViewModel.cs 파일의 698 번째 라인에서 정의되었습니다.
다음을 참조함 : Logs, StatusMessage.
다음에 의해서 참조됨 : AddLog(), OnCameraRuntimeStateChanged().

|
inlineprivate |
Clear Logs 작업을 수행합니다.
MainWindowViewModel.cs 파일의 716 번째 라인에서 정의되었습니다.
다음에 의해서 참조됨 : MainWindowViewModel(), OnDashboardActionRequestedAsync().


|
inlineprivate |
Connect Camera Async 작업을 수행합니다.
| cameraId | camera Id에 사용할 string? 값입니다. |
Task 결과입니다.MainWindowViewModel.cs 파일의 451 번째 라인에서 정의되었습니다.
다음을 참조함 : _streamService, AddLog(), Cameras, DreamineVMS.ViewModels.CameraRowViewModel.Id.
다음에 의해서 참조됨 : OnDashboardActionRequestedAsync().


|
inlineprivate |
Connect Selected Camera Async 작업을 수행합니다.
Task 결과입니다.MainWindowViewModel.cs 파일의 387 번째 라인에서 정의되었습니다.
다음을 참조함 : _streamService, AddLog(), DreamineVMS.ViewModels.CameraRowViewModel.Id, SelectedCamera.
다음에 의해서 참조됨 : MainWindowViewModel().


|
inlineprivate |
Disconnect Camera Async 작업을 수행합니다.
| cameraId | camera Id에 사용할 string? 값입니다. |
Task 결과입니다.MainWindowViewModel.cs 파일의 494 번째 라인에서 정의되었습니다.
다음을 참조함 : _streamService, AddLog(), Cameras, DreamineVMS.ViewModels.CameraRowViewModel.Id.
다음에 의해서 참조됨 : OnDashboardActionRequestedAsync().


|
inlineprivate |
Disconnect Selected Camera Async 작업을 수행합니다.
Task 결과입니다.MainWindowViewModel.cs 파일의 415 번째 라인에서 정의되었습니다.
다음을 참조함 : _streamService, AddLog(), DreamineVMS.ViewModels.CameraRowViewModel.Id, SelectedCamera.
다음에 의해서 참조됨 : MainWindowViewModel().


|
inlinestaticprivate |
Dispatch To Ui 작업을 수행합니다.
| action | action에 사용할 Action 값입니다. |
MainWindowViewModel.cs 파일의 751 번째 라인에서 정의되었습니다.
다음에 의해서 참조됨 : AddLog(), OnCameraRuntimeStateChanged(), RaiseOpenLiveTabRequested().

|
inline |
이 인스턴스가 소유한 리소스를 해제합니다.
MainWindowViewModel.cs 파일의 359 번째 라인에서 정의되었습니다.
다음을 참조함 : _dashboardSubscription, Cameras, DreamineVMS.ViewModels.CameraRowViewModel.Dispose(), OnCameraRuntimeStateChanged().

|
inlineprivate |
Camera Runtime State Changed 이벤트 또는 상태 변경을 처리합니다.
| sender | 이벤트를 발생시킨 객체입니다. |
| state | state에 사용할 CameraRuntimeState 값입니다. |
MainWindowViewModel.cs 파일의 654 번째 라인에서 정의되었습니다.
다음을 참조함 : AddLogCore(), DispatchToUi(), DreamineVMS.Models.CameraRuntimeState.LastMessage.
다음에 의해서 참조됨 : Dispose(), MainWindowViewModel().


|
inlineprivate |
Dashboard Action Requested Async 이벤트 또는 상태 변경을 처리합니다.
| message | 처리할 메시지입니다. |
| cancellationToken | 취소 요청을 감시하는 토큰입니다. |
Task 결과입니다.MainWindowViewModel.cs 파일의 589 번째 라인에서 정의되었습니다.
다음을 참조함 : _dashboardStateService, DreamineVMS.Messages.VmsDashboardActionRequestedMessage.Action, AddLog(), DreamineVMS.Messages.VmsDashboardActions.CameraConnect, DreamineVMS.Messages.VmsDashboardActions.CameraDisconnect, DreamineVMS.Messages.VmsDashboardActionRequestedMessage.CameraId, DreamineVMS.Messages.VmsDashboardActions.CameraStartAll, DreamineVMS.Messages.VmsDashboardActions.CameraStopAll, DreamineVMS.Messages.VmsDashboardActions.ClearLogs, ClearLogs(), ConnectCameraAsync(), DisconnectCameraAsync(), DreamineVMS.Messages.VmsDashboardActions.EmbeddedRefresh, DreamineVMS.Messages.VmsDashboardActions.ServerOpenLive, StartAllAsync(), StopAllAsync().
다음에 의해서 참조됨 : MainWindowViewModel().


|
inlineprivate |
Property Changed 이벤트 또는 상태 변경을 처리합니다.
| propertyName | property Name에 사용할 string? 값입니다. |
MainWindowViewModel.cs 파일의 797 번째 라인에서 정의되었습니다.
다음을 참조함 : PropertyChanged.
|
inlineprivate |
Raise Open Live Tab Requested 작업을 수행합니다.
MainWindowViewModel.cs 파일의 730 번째 라인에서 정의되었습니다.
다음을 참조함 : DispatchToUi(), OpenLiveTabRequested.

|
inlineprivate |
Start All Async 작업을 수행합니다.
Task 결과입니다.MainWindowViewModel.cs 파일의 529 번째 라인에서 정의되었습니다.
다음을 참조함 : _streamService, AddLog().
다음에 의해서 참조됨 : MainWindowViewModel(), OnDashboardActionRequestedAsync().


|
inlineprivate |
Stop All Async 작업을 수행합니다.
Task 결과입니다.MainWindowViewModel.cs 파일의 551 번째 라인에서 정의되었습니다.
다음을 참조함 : _streamService, AddLog().
다음에 의해서 참조됨 : MainWindowViewModel(), OnDashboardActionRequestedAsync().


|
private |
agent Settings 값을 보관합니다.
MainWindowViewModel.cs 파일의 86 번째 라인에서 정의되었습니다.
다음에 의해서 참조됨 : MainWindowViewModel().
|
private |
dashboard State Service 값을 보관합니다.
MainWindowViewModel.cs 파일의 68 번째 라인에서 정의되었습니다.
다음에 의해서 참조됨 : MainWindowViewModel(), OnDashboardActionRequestedAsync().
|
private |
dashboard Subscription 값을 보관합니다.
MainWindowViewModel.cs 파일의 77 번째 라인에서 정의되었습니다.
다음에 의해서 참조됨 : Dispose(), MainWindowViewModel().
|
private |
repository 값을 보관합니다.
MainWindowViewModel.cs 파일의 41 번째 라인에서 정의되었습니다.
다음에 의해서 참조됨 : MainWindowViewModel().
|
private |
runtime State 값을 보관합니다.
MainWindowViewModel.cs 파일의 50 번째 라인에서 정의되었습니다.
다음에 의해서 참조됨 : MainWindowViewModel().
|
private |
selected Camera 값을 보관합니다.
MainWindowViewModel.cs 파일의 95 번째 라인에서 정의되었습니다.
|
private |
status Message 값을 보관합니다.
MainWindowViewModel.cs 파일의 104 번째 라인에서 정의되었습니다.
|
private |
stream Service 값을 보관합니다.
MainWindowViewModel.cs 파일의 59 번째 라인에서 정의되었습니다.
다음에 의해서 참조됨 : ConnectCameraAsync(), ConnectSelectedCameraAsync(), DisconnectCameraAsync(), DisconnectSelectedCameraAsync(), MainWindowViewModel(), StartAllAsync(), StopAllAsync().
|
get |
MainWindowViewModel 클래스의 새 인스턴스를 초기화합니다.
MainWindowViewModel.cs 파일의 113 번째 라인에서 정의되었습니다.
|
get |
카메라 목록(행 ViewModel)입니다.
MainWindowViewModel.cs 파일의 241 번째 라인에서 정의되었습니다.
다음에 의해서 참조됨 : ConnectCameraAsync(), DisconnectCameraAsync(), Dispose(), MainWindowViewModel().
|
get |
로그 삭제 명령입니다.
MainWindowViewModel.cs 파일의 349 번째 라인에서 정의되었습니다.
다음에 의해서 참조됨 : MainWindowViewModel().
|
get |
선택 카메라 연결 명령입니다.
MainWindowViewModel.cs 파일의 309 번째 라인에서 정의되었습니다.
다음에 의해서 참조됨 : MainWindowViewModel().
|
get |
선택 카메라 연결 해제 명령입니다.
MainWindowViewModel.cs 파일의 319 번째 라인에서 정의되었습니다.
다음에 의해서 참조됨 : MainWindowViewModel().
|
get |
로그 목록입니다.
MainWindowViewModel.cs 파일의 251 번째 라인에서 정의되었습니다.
다음에 의해서 참조됨 : AddLogCore(), ClearLogs(), MainWindowViewModel().
|
getset |
선택된 카메라입니다.
MainWindowViewModel.cs 파일의 261 번째 라인에서 정의되었습니다.
다음에 의해서 참조됨 : ConnectSelectedCameraAsync(), DisconnectSelectedCameraAsync(), MainWindowViewModel().
|
get |
전체 카메라 연결 명령입니다.
MainWindowViewModel.cs 파일의 329 번째 라인에서 정의되었습니다.
다음에 의해서 참조됨 : MainWindowViewModel().
|
getprivate set |
상태 메시지입니다.
MainWindowViewModel.cs 파일의 286 번째 라인에서 정의되었습니다.
다음에 의해서 참조됨 : AddLogCore().
|
get |
전체 카메라 연결 해제 명령입니다.
MainWindowViewModel.cs 파일의 339 번째 라인에서 정의되었습니다.
다음에 의해서 참조됨 : MainWindowViewModel().
| EventHandler? DreamineVMS.ViewModels.MainWindowViewModel.OpenLiveTabRequested |
Server Dashboard에서 Live 탭으로 이동 요청이 들어왔을 때 발생합니다.
MainWindowViewModel.cs 파일의 231 번째 라인에서 정의되었습니다.
다음에 의해서 참조됨 : RaiseOpenLiveTabRequested().
| PropertyChangedEventHandler? DreamineVMS.ViewModels.MainWindowViewModel.PropertyChanged |