Beispiel #1
0
 public FileDownloadViewModel(IUnityContainer container, IServiceLocator serviceLocator, CcdRecordModel model)
 {
     _container      = container;
     _serviceLocator = serviceLocator;
     CloseWindow     = new    DelegateCommand <object>(OnCloseWindow);
     ScanDataCmd     = new DelegateCommand(OnScanData);
     _ccdModel       = model;
     dispatcherTimer = new DispatcherTimer(DispatcherPriority.Background);
     dispatcherTimer = new DispatcherTimer(DispatcherPriority.Background)
     {
         Interval = TimeSpan.FromSeconds(1)
     };
     dispatcherTimer.Tick += DispatcherTimer_Tick;
     LoadCmd = new DelegateCommand(OnLoad);
     if (_ccdModel.frame_number < 2)
     {
         EndIndex = 0;
         MaxIndex = 0;
     }
     else
     {
         EndIndex = (int)_ccdModel.frame_number + 1;
         MaxIndex = (int)_ccdModel.frame_number + 1;
     }
 }
Beispiel #2
0
        private void InitMenu(CcdRecordModel model)
        {
            //MenuItem mi0 = new MenuItem()
            //{
            //    Header = "下载",
            //    Command = FileDownloadCmd,
            //    CommandParameter = model
            //};
            //Menu.Add(mi0);
            MenuItem mi = new MenuItem()
            {
                Header           = "导出",
                Command          = FileReportCmd,
                CommandParameter = model
            };

            Menu.Add(mi);

            mi = new MenuItem()
            {
                Header           = "删除",
                Command          = DeleteCmd,
                CommandParameter = model
            };
            Menu.Add(mi);
            mi = new MenuItem()
            {
                Header           = "刷新",
                Command          = RefreshCmd,
                CommandParameter = model
            };
            Menu.Add(mi);
        }
Beispiel #3
0
        private void OnFileReort(CcdRecordModel model)
        {
            if (model == null)
            {
                return;
            }
            var notification = new MessageNotification()
            {
                Title   = "存储记录导出",
                Content = _container.Resolve <FileDownloadView>(new ParameterOverride("model", model)),
            };

            PopupWindows.NormalNotificationRequest.Raise(notification, (callback) => {
            });

            string selectDir = string.Empty;
            // var openFileDialog = new Microsoft.Win32.OpenDiDialog();
            //System.Windows.Forms.FolderBrowserDialog folder = new System.Windows.Forms.FolderBrowserDialog();
            //var result = folder.ShowDialog();
            //if (result == System.Windows.Forms.DialogResult.OK)
            //{
            //    string folderName = folder.SelectedPath;
            //    selectDir = folderName;
            //}
            //if (string.IsNullOrEmpty(selectDir))
            //    return;
        }
Beispiel #4
0
        /// <summary>
        /// 获取记录列表
        /// </summary>
        public void Get_Record_List()
        {
            CcdRecordModels.Clear();
            SDKApi.EagleData_RefetchRecList();
            int record_num = SDKApi.EagleData_GetRecordNumber();

            if (record_num > 0)
            {
                IntPtr intPtr        = Marshal.AllocHGlobal(Marshal.SizeOf(typeof(EagleData_Record_Id)) * record_num);
                int    nStructLength = Marshal.SizeOf(typeof(EagleData_Record));

                int actual_num = SDKApi.EagleData_GetRecordList(intPtr, record_num);

                _recordIds = new EagleData_Record_Id[actual_num];

                for (int i = 0; i < actual_num; i++)
                {
                    _recordIds[i] = (EagleData_Record_Id)Marshal.PtrToStructure(intPtr + Marshal.SizeOf(typeof(EagleData_Record_Id)) * i, typeof(EagleData_Record_Id));
                    // EagleData_Record ccd = new EagleData_Record();
                    var record = SDKApi.EagleData_GetRecordAndAllocMemory(_recordIds[i]);
                    var ccd    = (EagleData_Record)Marshal.PtrToStructure(record, typeof(EagleData_Record));

                    //得到数据项
                    var item  = (EagleData_CcdRecord)Marshal.PtrToStructure(ccd.ccd_record_list, typeof(EagleData_CcdRecord));
                    var model = new CcdRecordModel()
                    {
                        data_size        = item.data_size,
                        data_source_type = item.data_source_type,
                        disk_bitmap      = item.disk_bitmap,
                        end_time         = item.end_time,
                        frame_number     = item.frame_number,//镇数
                        head_size        = item.head_size,
                        id = item.id,
                        pixel_sampling_type = item.pixel_sampling_type,
                        record_id           = item.record_id,
                        record_index        = item.record_index,
                        start_time          = item.start_time,
                        task_index          = item.task_index,
                        TaskName            = item.record_id.task_name,
                        RecordName          = item.record_id.task_name + item.record_id.start_time,
                    };
                    long totalsize = 0;
                    if (item.frame_number < 2)
                    {
                        totalsize = 0;
                    }
                    else
                    {
                        totalsize = (long)(item.frame_number + 1) * item.data_size;
                    }
                    model.TotalSize = String.Format("{0:F2}GB", totalsize / (1024.0 * 1024.0 * 1024.0));
                    CcdRecordModels.Add(model);
                    SDKApi.EagleData_FreeRecordMemory(record);
                    //  var r1 = SDKApi.EagleData_DeleteRecord(list.record_id, list.id);
                }
                Marshal.FreeHGlobal(intPtr);
            }
        }
Beispiel #5
0
        private void OnDeleteFile(CcdRecordModel model)
        {
            var result = MessageBox.Show("你确定要删除当前记录吗?", "删除提醒", MessageBoxButton.OKCancel, MessageBoxImage.Warning);

            if (result == MessageBoxResult.OK)
            {
                int ret = SDKApi.EagleData_DeleteRecord(model.record_id, model.id);
                if (ret != 0)
                {
                    _eventAggregator.GetEvent <InfoEventArgs>().Publish("删除存储记录失败!\n");
                    MessageBox.Show("删除记录失败!");
                }
                else
                {
                    Get_Record_List();
                }
            }
        }