您的位置:首页 > 科技 > 能源 > 洛阳响应式建站_怎么搭建局域网网站_产品策划推广方案_找精准客户的app

洛阳响应式建站_怎么搭建局域网网站_产品策划推广方案_找精准客户的app

2025/1/12 18:59:45 来源:https://blog.csdn.net/hzether/article/details/145020040  浏览:    关键词:洛阳响应式建站_怎么搭建局域网网站_产品策划推广方案_找精准客户的app
洛阳响应式建站_怎么搭建局域网网站_产品策划推广方案_找精准客户的app

雷电接口检测工具说明文档

功能概述

这个Python脚本用于检测系统的雷电(Thunderbolt)接口支持情况,包括:

  • 检测系统是否有雷电控制器
  • 检测Type-C/雷电端口
  • 识别雷电接口版本(Thunderbolt 1-5)
  • 显示理论传输速度
  • 列出已连接的雷电设备

代码结构

1. 基础支持检测函数

def check_thunderbolt_support() -> Dict[str, bool]

这个函数通过Windows Management Instrumentation (WMI)命令检查系统的雷电支持情况,返回一个包含以下信息的字典:

  • has_controller: 是否存在雷电控制器
  • has_port: 是否有Type-C/雷电端口
  • is_active: 雷电接口是否处于激活状态

2. 版本检测函数

def get_thunderbolt_version() -> Dict[str, str]

识别系统支持的雷电版本,返回版本号和对应的理论速度:

  • Thunderbolt 5: 80 Gbps (双向), 最高120 Gbps (单向)
  • Thunderbolt 4: 40 Gbps
  • Thunderbolt 3: 40 Gbps
  • Thunderbolt 2: 20 Gbps
  • Thunderbolt 1: 10 Gbps

3. 详细信息获取函数

def get_detailed_thunderbolt_info() -> List[Dict[str, str]]

获取所有已连接雷电设备的详细信息,包括:

  • 设备名称
  • 制造商信息
  • 设备状态

4. 状态报告函数

def print_thunderbolt_status()

生成完整的雷电接口支持状态报告,包括:

  • 主机雷电支持情况
  • 主机雷电版本信息
  • 已连接设备列表
  • 使用注意事项

使用方法

  1. 直接运行脚本:
python thunderbolt_check.py
  1. 作为模块导入:
from thunderbolt_check import check_thunderbolt_support, get_thunderbolt_version# 检查基本支持
support_info = check_thunderbolt_support()# 获取版本信息
version_info = get_thunderbolt_version()

注意事项

  1. 实际传输速度取决于:

    • 主机支持的雷电版本
    • 连接设备支持的雷电版本
    • 实际会以两者中较低的速度运行
  2. 如果检测结果显示有雷电端口但未激活:

    • 检查BIOS设置中的雷电支持选项
    • 确保已安装最新的雷电驱动程序
  3. 版本速度对照表:

    版本理论速度备注
    Thunderbolt 580/120 Gbps预计2024年底推出
    Thunderbolt 440 Gbps要求更严格的认证
    Thunderbolt 340 Gbps最广泛使用的版本
    Thunderbolt 220 Gbps较老的版本
    Thunderbolt 110 Gbps最早的版本

技术实现细节

  1. 使用subprocess模块执行WMI命令
  2. 通过正则表达式解析设备信息
  3. 支持中英文设备描述识别
  4. 异常处理确保程序稳定运行

可能的错误和解决方案

  1. “获取雷电版本信息时出错”

    • 确保以管理员权限运行
    • 检查WMI服务是否正常运行
  2. “未检测到已连接的雷电设备”

    • 确认设备是否正确连接
    • 检查设备驱动是否正确安装

代码:

import subprocess
import re
from typing import Dict, List, Tupledef check_thunderbolt_support() -> Dict[str, bool]:"""检查系统是否支持雷电接口Returns:Dict[str, bool]: 包含雷电接口支持信息的字典{'has_controller': bool,  # 是否有雷电控制器'has_port': bool,        # 是否有雷电端口'is_active': bool        # 雷电接口是否激活}"""result = {'has_controller': False,'has_port': False,'is_active': False}try:# 检查 USB 控制器中的 Type-C 和雷电支持usb_controllers = subprocess.check_output(["wmic", "path", "Win32_USBController", "get", "name,manufacturer"], encoding='gbk').strip()if "Type-C" in usb_controllers:result['has_port'] = True# 检查设备管理器中的雷电设备tb_devices = subprocess.check_output(["wmic", "path", "Win32_PnPEntity", "where", "caption like '%Thunderbolt%' OR caption like '%雷电%'", "get", "caption,status"], encoding='gbk').strip()if tb_devices and len(tb_devices.split('\n')) > 1:result['has_controller'] = True# 检查是否有正在工作的雷电设备if "OK" in tb_devices or "正常" in tb_devices:result['is_active'] = True# 额外检查 PCI 设备中的雷电控制器pci_devices = subprocess.check_output(["wmic", "path", "Win32_PnPEntity", "where", "deviceid like '%PCI%'", "get", "caption"],encoding='gbk').strip()if any(x in pci_devices.lower() for x in ['thunderbolt', '雷电']):result['has_controller'] = Trueexcept Exception as e:print(f"检查雷电支持时出错: {e}")return resultdef get_detailed_thunderbolt_info() -> List[Dict[str, str]]:"""获取详细的雷电接口信息Returns:List[Dict[str, str]]: 包含所有雷电设备信息的列表"""devices = []try:# 获取所有可能的雷电相关设备cmd_output = subprocess.check_output(["wmic", "path", "Win32_PnPEntity", "where","caption like '%Thunderbolt%' OR caption like '%雷电%' OR caption like '%Type-C%'","get", "caption,manufacturer,status,deviceid"],encoding='gbk').strip()# 解析输出lines = cmd_output.split('\n')if len(lines) > 1:  # 跳过标题行headers = [h.strip().lower() for h in lines[0].split('  ') if h.strip()]for line in lines[1:]:if line.strip():# 使用多个空格分割并过滤空字符串values = [v.strip() for v in re.split(r'\s{2,}', line) if v.strip()]if len(values) >= len(headers):device = dict(zip(headers, values))devices.append(device)except Exception as e:print(f"获取详细雷电信息时出错: {e}")return devicesdef get_thunderbolt_version() -> Dict[str, str]:"""获取雷电接口版本和速度信息Returns:Dict[str, str]: 包含雷电版本和速度信息的字典"""version_info = {'version': 'Unknown','speed': 'Unknown'}try:# 检查设备管理器中的雷电设备描述tb_devices = subprocess.check_output(["wmic", "path", "Win32_PnPEntity", "where","caption like '%Thunderbolt%' or caption like '%雷电%'","get", "caption,description"],encoding='gbk').strip()# 根据描述判断版本if 'Thunderbolt 5' in tb_devices or '雷电 5' in tb_devices:version_info['version'] = 'Thunderbolt 5'version_info['speed'] = '80 Gbps (双向), 最高120 Gbps (单向)'elif 'Thunderbolt 4' in tb_devices or '雷电 4' in tb_devices:version_info['version'] = 'Thunderbolt 4'version_info['speed'] = '40 Gbps'elif 'Thunderbolt 3' in tb_devices or '雷电 3' in tb_devices:version_info['version'] = 'Thunderbolt 3'version_info['speed'] = '40 Gbps'elif 'Thunderbolt 2' in tb_devices or '雷电 2' in tb_devices:version_info['version'] = 'Thunderbolt 2'version_info['speed'] = '20 Gbps'elif 'Thunderbolt' in tb_devices or '雷电' in tb_devices:version_info['version'] = 'Thunderbolt 1'version_info['speed'] = '10 Gbps'except Exception as e:print(f"获取雷电版本信息时出错: {e}")return version_infodef print_thunderbolt_status():"""打印雷电接口支持状态报告"""print("=" * 50)print("雷电接口支持状态检查报告")print("=" * 50)# 检查基本支持情况support_info = check_thunderbolt_support()print("\n主机雷电支持情况:")print(f"- 雷电控制器: {'✓ 已找到' if support_info['has_controller'] else '✗ 未找到'}")print(f"- Type-C/雷电端口: {'✓ 存在' if support_info['has_port'] else '✗ 不存在'}")print(f"- 雷电接口状态: {'✓ 已激活' if support_info['is_active'] else '✗ 未激活'}")# 获取并显示版本信息version_info = get_thunderbolt_version()print(f"\n主机雷电版本信息:")print(f"- 版本: {version_info['version']}")print(f"- 理论速度: {version_info['speed']}")# 获取详细信息detailed_info = get_detailed_thunderbolt_info()if detailed_info:print("\n已连接的雷电设备:")for idx, device in enumerate(detailed_info, 1):print(f"\n设备 {idx}:")if 'caption' in device:print(f"- 设备名称: {device['caption']}")if 'manufacturer' in device:print(f"- 制造商: {device['manufacturer']}")if 'status' in device:print(f"- 状态: {device['status']}")else:print("\n未检测到已连接的雷电设备")print("\n注意事项:")if not support_info['has_controller']:print("- 系统可能不支持雷电接口")if support_info['has_port'] and not support_info['is_active']:print("- 雷电接口存在但未激活,请检查BIOS设置")if support_info['has_controller'] and support_info['has_port']:print("- 系统支持雷电接口,如遇问题请更新驱动")print("- 实际传输速度取决于主机和设备支持的最低雷电版本")if __name__ == "__main__":print_thunderbolt_status()

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com