博客 (48)

在 Linux 上运行 .NET 网站,通过

HttpContext.Connection.RemoteIpAddress

获取客户端的 IP 地址,结果是

::ffff:127.0.0.1

解决方法:

打开 Program.cs 文件,在 var app = builder.Build(); 之前(尽量往前)添加以下代码:

if (OperatingSystem.IsLinux())
{
    builder.Services.Configure<ForwardedHeadersOptions>(options =>
    {
        options.ForwardedHeaders = ForwardedHeaders.XForwardedFor
                                    | ForwardedHeaders.XForwardedProto
                                    | ForwardedHeaders.XForwardedHost;

        // 清除 KnownNetworks 和 KnownProxies,表示信任来自本机的代理(如 Nginx)
        options.KnownNetworks.Clear();
        options.KnownProxies.Clear();
    });

    Console.WriteLine("ForwardedHeaders enabled (Running on Linux)");
}

然后在 app.UseRouting(); 之前添加以下代码:

if (OperatingSystem.IsLinux())
{
    app.UseForwardedHeaders();
    Console.WriteLine("UseForwardedHeaders() applied.");
}

其中,OperatingSystem.IsLinux() 用于判断只在 Linux 环境中生效,你可以视自身情况作判断。

xoyozo 7 天前
713

一、安装 Ollama

官网下载安装 Ollama。

你可以更改大模型存放目录,也可以开放远程访问

查看版本号:

ollama --version


二、在 shell 中安装和运行模型

Models 中选择一个你想部署的模型,复制安装命令,并在终端中执行。

官方建议:应该至少有 8 GB 的 RAM 来运行 7b 版本,16 GB 的 RAM 来运行 13b 版本,32 GB 的 RAM 来运行 33b 版本

本文以 deepseek-r1:7b 为例。

下载模型

ollama pull deepseek-r1:7b

Tip: 下载即将完成时速度可能会变得非常慢,只要按 Ctrl+C,再重新执行一次命令,就会继续正常下载。

显示模型信息

ollama show deepseek-r1:7b

运行模型(一次性响应)

ollama run deepseek-r1:7b "写一首诗"

运行模型(进入聊天模式)

ollama run deepseek-r1:7b

结束当前会话

/bye

列出所有模型

ollama list

列出当前加载的模型

ollama ps

停止当前正在运行的模型

ollama stop deepseek-r1:7b


三、使用 REST API 调用模型

修改端口

ollama serve --port 11434

/api/generate 接口:生成一次性响应

curl http://localhost:11434/api/generate -d '{
  "model": "deepseek-r1:7b",
  "prompt":"为什么天空是蓝色的?"
}'

/api/chat 接口:与模型聊天

curl http://localhost:11434/api/chat -d '{
  "model": "deepseek-r1:7b",
  "messages": [
    { "role": "user", "content": "你好呀!" }
  ]
}'


四、在 .NET 中调用

1、直接 HTTP 调用(基础方案)

    创建 HttpClient,使用 PostAsJsonAsync 请求,使用 ReadFromJsonAsync 读取结果。

2、使用 OllamaSharp 库(推荐方案)

    创建 OllamaApiClient,使用 SelectedModel 设置模型,使用 GenerateAsync 获得结果。或创建对话 ollama.Chat(),并 Send 内容。

3、.NET Aspire 集成(企业级方案)

    适合微服务架构,结合容器化部署。


OllamaSharp 库”和“.NET Aspire 集成”两种方案怎么选?

OllamaSharp 库:定位轻量级模型交互 SDK,适用于独立应用、微服务中的 AI 组件等场景,技术复度低,支持模型对话/生成/管理、流式响应、多模态支持,需自行实现监控、熔断。

.NET Aspire 集成:定位企业级云原生 AI 服务编排框架,适用于多服务协同的分布式系统,技术复度高,支持服务编排、健康检查、弹性伸缩、混合云部署,内置可观测性仪表盘、自动故障转移。

决策建议:初创项目用 OllamaSharp 快速试错,用户量破千后通过 Aspire 重构。两者并非互斥,可在 Aspire 中封装 OllamaSharp 客户端,兼顾灵活性与运维能力。

xoyozo 2 个月前
3,080

目标: 在运行 HarmonyOS Next 的华为 MateBook Pro 上侧载安装第三方应用程序。

注:本教程同样适用于在运行 HarmonyOS Next 的华为手机上侧载安装第三方应用程序。

所需准备

  1. 一台运行 HarmonyOS Next 的华为 MateBook Pro

  2. 一台 Windows 电脑

  3. 一根数据线

    • USB-A to Type-C

    • 或 Type-C to Type-C (确保能将两台电脑连接)。

  4. 网络连接:两台电脑需在同一局域网下(用于无线调试连接)。

步骤详解

第一步:鸿蒙 PC (MateBook Pro) 端设置 (启用开发者模式与调试)

  1. 连接设备: 使用数据线将鸿蒙 MateBook Pro 连接到 Windows 电脑。

  2. 打开设置: 在鸿蒙 PC 上,进入 设置

  3. 进入关于本机: 在设置中,找到并点击 关于本机 或您的 电脑型号

  4. 启用开发者模式

    • 在“关于本机”界面,找到 软件版本 或 HarmonyOS 版本

    • 连续点击 软件版本/HarmonyOS 版本 文字 5 次以上

    • 系统会提示“您已处于开发者模式”或提示重启进入开发者模式。按提示重启电脑(如果需要)。

  5. 打开开发者选项

    • 重启后,回到 设置 -> 系统 -> 开发者选项 (路径可能略有不同,在“系统和更新”或“隐私与安全”下查找)。

  6. 启用 USB 调试

    • 在开发者选项中,找到 USB 调试,将其开启

    • 首次开启时,可能会弹出提示(连接线后或稍后操作时),点击 允许

    • 注意提示:系统可能提示“Matebook Pro 上的右上角的 Type-C 口可以进行调试”,确保使用正确的接口连接调试线。如果弹出“始终允许本机调试”选项,勾选并允许

  7. 启用并记录无线调试信息

    • 在开发者选项中,找到 无线调试,将其开启

    • 开启后,系统会显示一个 IP 地址和端口号(例如 192.168.x.x:xxxxx)。务必准确记下这个 IP 地址和端口号,后续在 Windows 端连接时必须用到。

    • 至此,鸿蒙 PC 端的准备工作完成。

第二步:Windows 电脑端操作 (使用小白调试助手)

  1. 获取工具和 HAP 包

    • 访问包含 HarmonyOS Next 可用 HAP 包的资源(如 GitHub 上的相关仓库,搜索 “HarmonyOS Next HAP”)。

    • 下载小白调试助手

      • 在工具仓库中找到 小白调试助手 或类似名称。

      • 点击 Latest (最新版本)。

      • 点击 Download 下载其 Windows 版压缩包(.zip 文件)。

    • 下载目标应用的 HAP 包(以 ClashBox 为例,你也可以使用自己已有的 .hap 文件):

      • 在应用仓库中找到 ClashBox

      • 同样点击 Latest -> Download 下载其 HAP 包(.hap 文件)。

  2. 准备小白调试助手

    • 将下载的小白调试助手压缩包解压到一个非中文且无空格路径的文件夹。

    • 进入解压后的文件夹,找到可执行文件。双击运行。根据 Windows SmartScreen 或安全软件提示(若有),选择 更多信息 -> 仍要运行

  3. 登录华为开发者账号 (强烈推荐)

    • 在小白调试助手界面,找到登录入口(通常在界面顶部或设置中),点击 登录

    • 使用您的华为开发者账号登录(登录时,您的华为手机可能会收到验证码,或在鸿蒙PC上验证)。

    • 输入验证码,并在授权请求页面点击 允许。登录成功后,界面通常会显示您的账号昵称或ID。

    • 重要: 开发者账号签发的应用证书有效期通常为 6 个月普通账号14 天。为方便使用,建议申请华为开发者账号。

  4. 连接鸿蒙设备

    • 在小白调试助手主界面,找到 连接设备添加设备 或类似功能的按钮并点击。

    • 在弹出的连接窗口(通常是输入IP和端口的对话框)中:

      • 输入您在鸿蒙 PC 上 无线调试 功能中记录的 IP 地址

      • 输入记录的 端口号

    • 点击 确定连接 或 OK

    • 连接成功:如果地址和端口输入正确,且鸿蒙 PC 的开发者选项已开启无线调试:

      • 鸿蒙 PC 可能弹出调试请求(“允许调试?”),勾选“始终允许”并点击 允许

      • 小白调试助手界面会显示“连接成功”或目标设备信息。

      • (若未弹出提示框但连接成功,也属正常)

第三步:安装第三方 HAP 包

  1. 选择 HAP 包

    • 确保设备已连接成功。

    • 在小白调试助手界面,找到 选择 HAP加载 HAP安装应用 或类似按钮(通常在文件菜单或主功能区)。

    • 点击该按钮,浏览文件系统,找到您下载好的目标 HAP 文件(如 ClashBox-xxx.hap),选中并点击 打开

  2. 开始安装

    • 选择好 HAP 文件后,小白调试助手界面通常会激活 开始调试安装 或 运行 按钮。

    • 点击 开始调试 或 安装

  3. 等待安装完成

    • 小白调试助手会开始处理 HAP 包:进行签名、推送到设备并安装。

    • 观察进度条或日志输出,耐心等待直至提示“安装成功”

第四步:在鸿蒙 PC 上使用安装的应用

  • 安装完成后,返回您的鸿蒙 MateBook Pro。

  • 在桌面或 开始菜单 中,查找您刚刚安装的应用图标(如 ClashBox)。

  • 点击图标即可启动使用该应用。

常见问题处理

  • 签名错误/证书问题:在小白调试助手内寻找 **清理缓存重置证书重新登录** 或类似选项。执行后,重新登录开发者账号,再尝试安装。确保登录的是开发者账号。

  • Java 环境报错:如果小白调试助手提示需要 Java 环境(如 java 命令未找到),按照其提示点击安装,它会引导下载并安装所需的 Java Runtime Environment (JRE)。

  • 连接失败

    • 检查鸿蒙 PC 的 无线调试 IP 和端口号是否变化(息屏、重启、网络切换可能导致变化),在开发者选项里重新确认并输入。

    • 确保两台电脑在同一局域网

    • 检查鸿蒙 PC 的 **USB 调试 和 无线调试 是否已开启**。

    • 尝试在鸿蒙 PC 的开发者选项中关闭再重新开启 无线调试,获取新的端口号。

  • 其他报错:查阅小白调试助手官方的使用说明或 GitHub 仓库的 Issue 区寻求解决方案。


xoyozo 3 个月前
4,110

Ollama 默认是仅本地访问,接口地址是:http://localhost:11434

开放外部访问需要设置两个环境变量:

OLLAMA_HOST=0.0.0.0
OLLAMA_ORIGINS=*


第一步,设置环境变量


macOS:

在终端中运行命令

launchctl setenv OLLAMA_HOST "0.0.0.0"
launchctl setenv OLLAMA_ORIGINS "*"


Windows:

打开“环境变量”配置框

添加两个用户变量:

image.png


Linux:

使用 systemctl 设置环境变量

调用 systemctl edit ollama.service 编辑 systemd 服务配置

在 [Service] 下方添加:

[Service]
Environment="OLLAMA_HOST=0.0.0.0"
Environment="OLLAMA_ORIGINS=*"


第二步,重启 Ollama


环境变量配置完成后,重启 Ollama。


第三步,开放防火墙端口


Windows:

进入“高级安全 Windows Defender 防火墙” → “入站规则” → 新建规则 → 允许 TCP 端口 11434。


第四步,验证


获取本机局域网 IP。

Windows:ipconfig

Linux/macOS:ifconfig


访问网址:http://<ip>:11434

若返回 Ollama is running 则表示连接正常。

xoyozo 8 个月前
3,004
  1. 国家智慧教育公共服务平台 https://gjzwfw.www.gov.cn/

  2. 中国裁判文书网 https://wenshu.court.gov.cn/

  3. 国家企业信用信息公示系统 https://gs.gsxt.gov.cn/

  4. 国家社会保险服务平台 https://si.12333.gov.cn/

  5. 天地图 https://www.tianditu.gov.cn/

  6. 国家统计局 https://www.stats.gov.cn/

  7. 中国商标网 https://sbj.cnipa.gov.cn/sbj/

  8. 国家法律法规数据库 https://flk.npc.gov.cn/

  9. 中国专利公布公告网 http://epub.cnipa.gov.cn/

  10. 国家标准全文公开系统 https://openstd.samr.gov.cn/bzgk/gb/

  11. 国家药品监督管理局 https://www.nmpa.gov.cn/datasearch/

  12. 食品安全抽检公布结果查询系统 https://spcjsac.gsxt.gov.cn/

  13. 发票查验平台 http://inv-veri.chinatax.gov.cn/

  14. 中国关键词 http://keywords.china.org.cn/

  15. 工信部申诉受理中心 https://ythzxfw.miit.gov.cn/

  16. 合同示范文本库 https://htsfwb.samr.gov.cn/

  17. 中国法律服务网 https://www.12348.gov.cn/

  18. 中国庭审公开网 https://tingshen.court.gov.cn/

非 gov 网站

  1. 终身教育平台 https://le.ouchn.cn/

  2. 国家数字图书馆 https://www.nlc.cn/

  3. 国家哲学社会科学文献 https://www.ncpssd.cn/

  4. 国家高等教育智慧教育平台 https://www.chinaooc.com.cn/

  5. 职业教育专业教学资源库 https://zyk.icve.com.cn/


转自 一网一匠 9 个月前
1,024

前几天实现了在 nginx 中使用 lua 实现远程鉴权,今天想试试在 IIS 中能不能实现相同的功能。查询资料发现需要使用 URL 重写和 HTTP 请求模块,没有深究。干脆使用 ASP.NET 中间件来实现吧。

在 StratUp.cs 的 Configure 方法中,或 Program.cs 文件中添加以下代码:

// 远程鉴权
app.Use(async (context, next) =>
{
    var ip = context.Connection.RemoteIpAddress!.ToString();
    var ua = context.Request.Headers.UserAgent.ToString();
    var host = context.Request.Host.Host;
    var uri = new Uri(context.Request.GetDisplayUrl()).PathAndQuery;

    var client = new HttpClient();
    client.Timeout = TimeSpan.FromSeconds(1); // 设置超时时间

    try
    {
        var requestUrl = "https://鉴权地址/";

        var requestMessage = new HttpRequestMessage(HttpMethod.Get, requestUrl);
        requestMessage.Headers.Add("X-Real-IP", ip);
        requestMessage.Headers.Add("User-Agent", ua);
        requestMessage.Headers.Add("X-Forwarded-Host", host);
        requestMessage.Headers.Add("X-Forwarded-Uri", uri);

        // 发送请求
        var response = await client.SendAsync(requestMessage);

        // 检查响应状态码
        if (response.StatusCode == HttpStatusCode.Forbidden)
        {
            // 如果返回403,则拒绝访问
            context.Response.StatusCode = (int)HttpStatusCode.Forbidden;
            await context.Response.WriteAsync("Access Denied");
        }
        else
        {
            // 如果返回其他状态码,则继续执行管道中的下一个中间件
            await next();
        }
    }
    catch (TaskCanceledException ex) when (ex.CancellationToken.IsCancellationRequested)
    {
        // 如果请求超时(任务被取消),则继续执行管道中的下一个中间件
        await next();
    }
    catch
    {
        // 如果遇到错误,则继续执行管道中的下一个中间件
        await next();
    }
});

代码很简单,使用 HttpClient 发送请求,若返回 403 则拒绝访问,其它情况继续执行业务逻辑,超时或报错的情况按需修改即可。

若鉴权接口在私网中,建议将鉴权接口域名和私网 IP 添加到 hosts 文件中。

xoyozo 9 个月前
973
  1. 使 lua 支持 resty.http

  2. 在 access_by_lua_block 代码块中实现远程鉴权:

    #鉴权-START
    #resolver 223.5.5.5; # cat /etc/resolv.conf
    access_by_lua_block {
        local http = require("resty.http")
        local httpc = http.new()
        httpc:set_timeout(500)  -- 连接超时
        local res, err = httpc:request_uri("https://鉴权地址/", {
            method = "GET",
            headers = {
                ["X-Real-IP"] = ngx.var.remote_addr,
                ["User-Agent"] = ngx.var.http_user_agent,
                ["X-Forwarded-Host"] = ngx.var.host,
                ["X-Forwarded-Uri"] = ngx.var.request_uri,
            },
            ssl_verify = false, -- 禁用 SSL 验证
            timeout = 500,     -- 读取超时
        })
    
        if not res then
            ngx.log(ngx.ERR, "Failed to request: " .. err)
        end
            
        if res and res.status == 403 then
            ngx.exit(ngx.HTTP_FORBIDDEN)
            -- return ngx.redirect("https://一个显示403友好信息的页面.html")
        end
    }
    #鉴权-END

    注意更改接口地址和友情显示 403 页面地址。

    本示例仅捕获 403 状态码,500、408 等其它异常情况视为允许访问,请根据业务需求自行添加状态码的判断。

    若超时也会进入 if not res then 代码块。

    建议将此代码部署在 nginx 主配置文件的 http 代码块中(宝塔面板中的路径:/www/server/nginx/nginx/conf/nginx.conf),如果你只想为单个网站鉴权,也可以放在网站配置文件的 server 块中。

  3. 若鉴权接口在私网中,建议将鉴权接口域名和私网 IP 添加到 hosts 文件中。


  1. 直接输出字符串

    ngx.header.content_type = "text/plain";
    ngx.say("hello world!")
  2. 输出到日志

    ngx.log(ngx.ERR, "Response status: " .. res.status)

    日志在网站的 站名.error.log 中查看。

    宝塔面板查看方式:日志 - 网站日志 - 异常

  3. 若想获取服务器 CPU 使用率等信息并传递给远程鉴权接口,请参考此文

  4. 常见问题

    no resolver defined to resolve

    原因:没有定义 DNS 解析器

    解决方法:在 http 块或 server 块中添加 resolver 8.8.8.8 valid=30s;,推荐使用接入商自己的公共 DNS,如果走内网,推荐使用本机 DNS

    unable to get local issuer certificate

    原因:没有配置 SSL 证书信息

    解决方法:添加 request_uri 参数:

    ssl_verify = true,  -- 启用 SSL 验证
    ssl_trusted_certificate = "证书路径",  -- 指定 CA 证书路径

    ssl_verify = false,  -- 禁用 SSL 验证
  5. 若您不想用 lua,可以用 nginx 原生自带的  auth_request 模块来实现

xoyozo 9 个月前
1,632

今天忘了带鼠标,正巧笔记本电脑的触摸板驱动坏了,一时也用不了,所以想到用 iPhone 当作电脑的触控板来用。电脑操作系统是 Windows。


一、电脑上下载并安装 Remote Helper(此步需要会使用纯键盘来操作电脑,常用的键是 TAB、方向键、回车键)

二、手机上 App Store 中搜索并获取 鼠标·键盘


电脑和手机需要连接同一局域网,如果没有局域网,可以将电脑连接 iPhone 的热点。

打开 App,搜索 PC,授权,就可以控制光标了。

如果电脑未显示光标,尝试双击 CTRL 键来确定当前光标的位置,前提是安装了 PowerToys

xoyozo 1 年前
3,639

未能找到路径“\roslyn\csc.exe”的一部分。

解决方法:

在 nuget 中直接卸载 Microsoft.CodeDom.Providers.DotNetCompilerPlatform


如果 web.config 报错,删除与 Microsoft.CodeDom.Providers.DotNetCompilerPlatform 相关的项,如:

<system.codedom>
	<compilers>
		<compiler language="c#;cs;csharp" extension=".cs" warningLevel="4" compilerOptions="/langversion:default /nowarn:1659;1699;1701;612;618" type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.CSharpCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=4.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
		<compiler language="vb;vbs;visualbasic;vbscript" extension=".vb" warningLevel="4" compilerOptions="/langversion:default /nowarn:41008,40000,40008 /define:_MYTYPE=\&quot;Web\&quot; /optionInfer+" type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.VBCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=4.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
	</compilers>
</system.codedom>


然后遇到错误:

功能 空传播运算符 在 C# 5 中不可用。请使用 6 或更高的语言版本


所以还是少不了 Microsoft.CodeDom.Providers.DotNetCompilerPlatform

又把这货装上了,竟然不报错了。

这期间我更改过在 Release 模式下调试,将 .NET Framework 4.8 升级到 .NET Framework 4.8.1 等,然后又退回到原来的状态和版本,竟然都正常了。

就这样吧!

xoyozo 2 年前
1,832

本文图片基于网络图片更新,如有侵权,请通过网站底部联系站长删除。

本文内容来源于网络,如有错误欢迎批评指正。


USB 接口类型

USB 接口有 Mini、Micro、Type 三种外观。

  • 通常说的 USB-C 一般指 USB Type-C,因为没有 Mini-C 和 Micro-C。而 USB-A / USB-B 一般也特指 Type-A / Type-B。


数据传输能力

USB 标准(附 Thunderbolt)

规格别名接口类型理论带宽电力规格
备注
USB 1.0Low-Speed

Mini A / B

Micro A / B 2.0

Type A / B 2.0

1.5 Mbps5V/0.5A
USB 1.1Full-Speed12 Mbps5V/0.5A
USB 2.0

Hi-Speed

High Speed

Mini A / B

Micro A / B 2.0

Type A 2.0 / B 2.0 / C

480 Mbps5V/0.5A

USB 3.0

USB 3.1 Gen 1

USB 3.2 Gen 1

SuperSpeed

Micro B 3.0

Type A 3.x / B 3.x / C

5 Gbps

5V/0.9A

PD2.0 100W


USB 3.1

USB 3.1 Gen 2

USB 3.2 Gen 2

SuperSpeed+

Micro B 3.0

Type A 3.x / B 3.x / C

10 Gbps

5V/0.9A

PD2.0 100W


USB 3.2

USB 3.2 Gen 2×2

SuperSpeed 20GbpsType-C20 GbpsPD2.0 100W

USB4 Gen 2×2

USB4 20Gbps

Type-C20 Gbps

PD3.0 100W

PD3.1 240W

兼容 Thunderbolt 3
USB4 Gen 3×2USB4 40GbpsType-C40 Gbps
USB4 2.0USB4 80GbpsType-C80 Gbps

Thunderbolt 1雷雳1、雷电1Mini DisplayPort10 Gbps

Thunderbolt 2雷雳2、雷电2Mini DisplayPort20 Gbps

Thunderbolt 3雷雳3、雷电3Type-C40 Gbps

配件供电 15W

PD 100W

兼容 USB4
Thunderbolt 4雷雳4、雷电4Type-C40 Gbps

配件供电 15W

PD 100W

兼容 Thunderbolt 3
Thunderbolt 5
雷雳5、雷电5Type-C

80Gpb

(带宽增强 120Gpbs)

240WUSB4 V2、DisplayPort 2.1 和 PCI Express Gen 4

数据参考


电力传输能力

常见快充协议

协议版本发布年份区别接口形态

BC

(Battery Charging Specification)

1.22010 年7.5W(5V/1.5A)

高通 QC

(Qualcomm Quick Charge)

1.02013 年
10W(5V/2A)Micro-USB
2.02014 

Class A:5V、9V、12V 电压可选,最大输出功率为 18W?

Class B5V、9V、12V、20V  电压可选,最大输出功率为 60W

Micro-USB / Type-A
3.02015 Class A:3.6-12V,Class B:3.6-20V支持动态调整电压和电流,最大输出功率为 18W?Micro-USB / Type-A / Type-C
4.02017 5V/5.6A 或 9V/3A,最大输出功率为 28W?兼容了 USB PD 2.0 / PD 3.0 PPS?Type-C
4+2019 最大输出功率为 100W?,支持 PPS 协议?兼容 QC2.0~QC3.0Type-C
5.02020 年最大输出功率 > 100W,兼容 QC2.0~QC4+Type-C

USB-PD

(USB Power Delivery)

1.02012 5V、12V、20V 电压可选,最大输出功率为 10WMicro-USB / Type-A / Type-B
2.0
2014 5V3A、9V3A、15V3A、20V3A、20V5A(E-Marked,最大输出功率为 100WType-C
3.02015 5V3A、9V3A、15V3A、20V3A、20V5A(E-Marked),最大输出功率为 100WType-C
3.0 PPS2017 年支持 PPS 协议,3.3V-21V 3A-5AType-C
3.12021 

SPR 最高支持 20V 电压,最大输出功率为 100W

EPR 最高支持 48V 电压,最大输出功率为 240W

Type-C
3.22023年强制 AVS,优化 EPRType-C
  • 华为 SuperCharge(FCP / SCP)、小米 Mi Turbo Charge、OPPO VOOC、vivo FlashCharge、三星 AFC 等私有协议不在此列出。

  • Magsafe 电源适配器 是磁吸式有线充电接口最大输出功率为 85W(截止2023年),用于 Macbook;

  • Magsafe 充电器 是磁吸式无线充电接口最大输出功率为 15W(截止2023年),用于 iPhone不属于快充。

  • Qi 是无线充电协议,Qi1 最大输出功率为 7.5W,Qi2 最大输出功率为 15W。

  • 功率决定充电速度,功率与电压电流的关系:P=U*I,如 5V1A=5W

  • 一条 USB 线由插座/母口(Receptacle)、插头/公口(Plug)和线缆(Cable)三部分组成,要实现某个协议,需要插座和插头都支持该协议

  • PPS:Programmable Power Supply 可编程电源

  • SPR:Standard Power Range 标准功率范围

  • EPR:Extended Power Range 扩展功率范围

  • FCP:Fast Charge Protocol 华为早期快充协议,支持 18W

  • SCP:Super Charge Protocol 华为超级快充协议,支持 22.5W、40W


xoyozo 2 年前
13,319