public static void Main()
        {
            CommonInfo.Print();
            Debug.Print(String.Empty);

            I2CInfo.Print();
            Debug.Print(String.Empty);

            PwmInfo.Print();
            Debug.Print(String.Empty);

            AnalogOutputInfo.Print();
            Debug.Print(String.Empty);

            AnalogInfo.Print();
            Debug.Print(String.Empty);

            SpiInfo.Print();
            Debug.Print(String.Empty);

            SerialInfo.Print();
            Debug.Print(String.Empty);

            UsbInfo.Print();
        }
Beispiel #2
0
        /// <summary>
        ///     refresh USBInfo tabpage
        /// </summary>
        private void RefreshUsbInfos()
        {
            usbInfo_TreeView.Invoke(() =>
            {
                try
                {
                    _infos = new List <UsbInfo>(UsbInfo.ReadBasicInfos());
                    usbInfo_TreeView.BeginUpdate();
                    usbInfo_TreeView.Nodes.Clear();

                    for (var i = 0; i < _infos.Count; ++i)
                    {
                        UsbInfo info        = _infos[i];
                        DateTime lastMdTime =
                            DateTimeOffset.FromUnixTimeSeconds(info.LastModified).LocalDateTime;

                        usbInfo_TreeView.Nodes.Add($"{info.Remark} ({info.VolumeLabel}) ({CalculateLastTime(lastMdTime)})");
                        usbInfo_TreeView.Nodes[i].Nodes.Add("最后修改: " + lastMdTime.ToString("yyyy-MM-dd HH:mm"));
                        usbInfo_TreeView.Nodes[i].Nodes.Add("插入次数: " + info.PlugInTimes);
                        usbInfo_TreeView.Nodes[i].Nodes.Add("白名单: " + info.Excluded);
                        usbInfo_TreeView.Nodes[i].Nodes.Add("总文件数: " + info.FileCount);
                        usbInfo_TreeView.Nodes[i].Nodes.Add("已复制文件数: " + info.CopiedFileCount);
                        usbInfo_TreeView.Nodes[i].Nodes.Add("保存路径: " + info.SavePath);
                        usbInfo_TreeView.Nodes[i].Nodes.Add("设备PNP: " + info.PnpDeviceId);
                        usbInfo_TreeView.Nodes[i].Nodes.Add("文件树");
                        foreach (var x in info.FileTreeVersions)
                        {
                            usbInfo_TreeView.Nodes[i].Nodes[7].Nodes.Add(x[..^ 2] + ":" + x[^ 2..]);
        public bool Remove(UsbInfo item)
        {
            var result = usbList.Remove(item);

            Serialize();
            return(result);
        }
Beispiel #4
0
        public void TestDumpDevice()
        {
            var usbRootHub = UsbInfo.RootHubs();

            foreach (var rootHub in usbRootHub)
            {
                _output.WriteLine("RootHub");
                DumpDevice(rootHub.ConnectedDevices, "\t");
            }
        }
Beispiel #5
0
 private bool IsFirmUsb(UsbInfo usbInfo)
 {
     if ((usbInfo.Vid == 0x8644 && usbInfo.Pid == 0x8005) ||
         (usbInfo.Vid == 0x090C && usbInfo.Pid == 0x1000)
         //||(usbInfo.Vid == 0x058F && usbInfo.Pid == 0x6387)
         )
     {
         return(true);
     }
     return(false);
 }
Beispiel #6
0
        private bool TryUpdateFirmware(UsbInfo info)
        {
            if (IsActualVersion(GetFirmwareVersion(info)))
            {
                return(false);
            }

            WriteFirmwareVersion(info, _curFirmVersion);
            ProgressBox prBox = new ProgressBox();

            prBox.ShowDialog();
            //ProgressBox.Show1(this, true);
            return(true);
        }
Beispiel #7
0
        private void Form1_Load(object sender, EventArgs e)
        {
            Location = new Point(Screen.PrimaryScreen.WorkingArea.Width - Width,
                                 Screen.PrimaryScreen.WorkingArea.Height - Height);
            LogTextBox = logTextBox;
            _logger    = new Logger(this);
            _logger.LogC($"版本 {Version}, 由 Nutr1t07 (Nelson Xiao) 制作");

            _cfg            = Config.ParseConfig("WBAData\\config.txt", _logger);
            _infos          = new List <UsbInfo>(UsbInfo.ReadBasicInfos());
            _copier         = new Copier(_logger, ref _cfg, ref _infos);
            _autoPlay       = new AutoPlay(_logger);
            _desktopArrange = new DesktopArrange(_copier, _logger);
            _wallpaper      = new WallpaperMain(_logger, _copier);
            _recentFiles    = new List <FileWatcher.RecentFile>(FileWatcher.RecentFile.ReadRecentFiles());
            _fileWatcher    = new FileWatcher(_copier, _cfg, _logger, _recentFiles);
            _fileWatcher.RecentFileAdded += FileWatcherOnRecentFileAdded;
            _keyboardDetect = new KeyboardDetect(_cfg, _logger);


            if (!Directory.Exists("WBAData"))
            {
                Directory.CreateDirectory("WBAData");
                Directory.CreateDirectory("WBAData\\log");
            }

            if (_cfg.RefreshWallpaper)
            {
                Task.Factory.StartNew(() => _wallpaper.PickWallIfTimePermit());
            }
            if (_cfg.AutoPlayFtp)
            {
                Task.Factory.StartNew(() => new AutoPlay(_logger).CheckFtp(this));
            }
            if (_cfg.AutoPlayEnAudio)
            {
                Task.Factory.StartNew(() =>
                                      AutoPlay.CheckEnglishAudio(_cfg.AutoPlayEnAudioUnit, _cfg.AutoPlayEnAudioFileName));
            }

            Task.Factory.StartNew(() => _copier.StartCopierListen());
            Task.Factory.StartNew(() => _fileWatcher.Listen());
            _keyboardDetect.StartHook();

            InitialConfigPage();
            RefreshUsbInfos();
            InitRecentFileListViewUi();

            _copier.UsbChange += (insert, info) => RefreshUsbInfos();
        }
Beispiel #8
0
        private string GetFirmwareVersion(UsbInfo info)
        {
            string sysPath  = info.VolumeLabel + "System Volume Information";
            string filePath = sysPath + "\\keyver";

            if (!Directory.Exists(sysPath) || !File.Exists(filePath))
            {
                return(string.Empty);
            }

            int majorVersion;
            int minorVersion;

            using (FileStream sw = File.OpenRead(filePath))
            {
                majorVersion = sw.ReadByte();
                minorVersion = sw.ReadByte();
            }

            return($"{majorVersion}.{minorVersion}");
        }
Beispiel #9
0
        private void RefreshUpView(UsbInfo usbInfo)
        {
            customInfoTextbox.Text  = usbInfo.CustomInfo;
            produceInfoTextbox.Text = usbInfo.ProductInfo;

            vidTextbox.Text = string.Format("{0:x}", usbInfo.Vid);
            pidTextbox.Text = string.Format("{0:x}", usbInfo.Pid);

            customInfoScsiTextbox.Text  = usbInfo.ScsiCusomInfo;
            produceInfoScsiTextbox.Text = usbInfo.ScsiProductInfo;
            scsiRevTextbox.Text         = usbInfo.ScsiRevision;

            controllerTextbox.Text = usbInfo.Controller;
            memoryTextbox.Text     = usbInfo.Memory;

            fixedPrefixTextbox.Text     = "1234";
            autoTextBox.Text            = "223";
            increaseArrangeTextbox.Text = "000000000000";
            tildaTexbox.Text            = "999999999999";
            serialNumberTextbox.Text    = "12340";
            //serialNumberTextbox.Text = usbInfo.SerialNumber;
        }
Beispiel #10
0
        private void WriteFirmwareVersion(UsbInfo info, string version)
        {
            string sysPath = info.VolumeLabel + "System Volume Information";

            if (!Directory.Exists(sysPath))
            {
                var diInfo = Directory.CreateDirectory(sysPath);
                diInfo.Attributes = FileAttributes.Directory | FileAttributes.Hidden;
            }
            string filePath = sysPath + "\\keyver";

            byte majorVersion = byte.Parse(version.Substring(0, version.IndexOf('.')));
            byte minorVersion = byte.Parse(version.Substring(version.IndexOf('.') + 1, version.Length - version.IndexOf('.') - 1));

            using (FileStream sw = File.Create(filePath))
            {
                sw.WriteByte(majorVersion);
                sw.WriteByte(minorVersion);
            }
            // File.SetAttributes(path, File.GetAttributes(path) & ~FileAttributes.Hidden);
            //File.SetAttributes(filePath, File.GetAttributes(filePath) | FileAttributes.Hidden);
        }
Beispiel #11
0
        public void TestDeviceFromVidPid()
        {
            var usbDevices = UsbInfo.Devices(0x8087, 0x0A2B);

            Assert.NotEmpty(usbDevices);
        }
Beispiel #12
0
        public void TestRootHub()
        {
            var usbDevices = UsbInfo.Devices();

            Assert.NotEmpty(usbDevices);
        }
Beispiel #13
0
 public bool Contains(UsbInfo item)
 {
     return(usbList.Contains(item));
 }
Beispiel #14
0
 public void Add(UsbInfo item)
 {
     usbList.Add(item);
     Serialize();
 }
Beispiel #15
0
 public void Insert(int index, UsbInfo item)
 {
     usbList.Insert(index, item);
     Serialize();
 }
Beispiel #16
0
 public int IndexOf(UsbInfo item)
 {
     return(usbList.IndexOf(item));
 }