自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(120)
  • 资源 (4)
  • 收藏
  • 关注

原创 UE5 不同的编译模式下,module的组织形式

但是问题来了,这个方法只适合客户端模式,不适合编辑器模式!因为客户端可以用静态库,而编辑器模式需要的是动态库。告诉我atom的dll不存在。非常的简单,甚至屏蔽了所有依赖。然后在入口的module引用这个库。主要是将module的类型改成External,不参与编译,同时准备好这个库的静态库。后来,迫不得已,我只能将这个atom库改成静态库,不参与编译。这样,就可以编译了。这个地方引入了静态库,再编译,就可以再客户端模式和编辑器模式下一同生效。这个非常的坑,我想了很多办法都没有办法兼容两种模式。

2024-10-27 14:58:38 343

原创 如何将 cryptopp库移植到UE5内

这段时间在折腾UE5.4.4,学习的过程中,准备把cryptopp移植到游戏的工程内,但UE的编译环境和VS的编译环境完全不同,能在VS下顺利编译的cryptopp代码,移植之后,全在报错,错误千奇百怪,我尝试了修复这些错误,结果有一些错是根本修复不了的。1>D:\UEProject\Dawn\Source\cryptopp\code\config_misc.h(121): error C4668: 没有将“CRYPTOPP_GCC_VERSION”定义为预处理器宏,用“0”替换“#if/#elif”

2024-10-06 17:30:48 899

原创 1L4混合电路耳放(玩的第一个直热管)

有了设计的目标,接下来就是选管和设计线路,把淘宝上常见的直热管都翻了一遍,功率直热管非常的贵,而且灯丝电流普遍较大,做耳放实属浪费,因此直接放弃,经过多次筛选之后,一些早期的收音机管落入我的视线,这些管子都是电池供电,普遍电压较小,一般都是1.4V的电压,电流也偏小,大部分都是50毫安的电流,正好是那个时期电池能提供的能量。由于之前做过6V6耳放,虽然声音不错,但6V6是旁热管束射四极管,灯丝电流很大,加之整个电路都是用胆整流,因此,整个6V6系统的功耗非常的高,就几百毫瓦的耳放而言,感觉十分的浪费。

2024-08-22 13:12:08 575

原创 关于有源晶振的坑

板子回来后焊接完所有原件,接到电脑上的时候,发现核心板并没有工作,接到电脑之后没有任何反应。测量晶振的时候,3.3V供电没问题,输出1.5V也没有问题(万用表无法测量频率),当时非常的疑惑,这个核心板的设计并不复杂,甚至可以说非常简单,就是USB,LDO加MCU和NOR Flash,没有复杂的外围设计。在设计起振线路的时候,出于对稳定性的考虑,选择了有源晶振,有源晶振通常有4个脚,PIN2一般是接地,PIN3是输出,PIN4是接VCC,这三个脚没有任何异议,但是第一脚,非常麻烦。

2024-08-13 11:53:59 449

原创 http 协议中GET如何传递参数(Query String)?

之前看过数数提供的开发包,因为服务器用的是C++,而数数提供的C/C++开发包简陋的吓人,简单的看了一下代码,发现这些SDK在内存,临界区管理,多线程管理上没有做任何优化,如果直接使用,不仅增加了服务器的风险,还降低了服务器的性能,所以决定使用数数的POST接口来传递数据,但是需要自己手搓一个Http Connection来实现Http的访问。由于之前搞Web Scoket的时候,已经做了一些Http协议的基础代码,包括请求行,状态行,请求头,响应头等,所以基本上就是在这些基础上进一步的封装。

2024-07-19 11:06:54 696 1

原创 树莓派PICO使用INA226测量电流和总线电压(4)

这篇文章将写一些题外话,关于INA226的地址,如果不清楚开发板的I2C地址,可以通过总线扫描的办法来获取开发板设定的地址。我的开发板的地址就是0x40。

2024-07-14 13:59:18 317

原创 树莓派PICO使用INA226测量电流和总线电压(3)

上一篇文章我们讲了如何测试电流,但是INA226有一个非常典型的问题,那就是误差比较大,因为采样电阻非常小,我的开发板用的是100mΩ的采样电阻,在设定中我也用的是这个采样电阻值,但事实上,测试得到的偏差会超过10%,因为采样电阻本身有误差,焊接的工艺,焊锡膏的成分也有带来误差,甚至PCB上的布局和连线也会导致误差!所以,在实际场景中,想要达到比较精确的值,这个采样电阻,绝对不适合采用过小的电阻,比如10mΩ左右的电阻,因为积累误差甚至会超过电阻本身的的值。

2024-07-14 13:52:24 445

原创 树莓派PICO使用INA226测量电流和总线电压(2)

依照手册给出的公式,我们必须人为的指定一个最大的测量电流,然后用这个值除以 32768,即2的15次方,得到的值,就是电流的最低有效位。所以,在设计线路的时候,尽可能将采样电阻贴紧INA226,减少线路带来的误差。这个值非常的关键,因为它就是ADC能提供的分辨率,在手册里,提供了如何计算校准值的方法,其中最关键的就是计算LSB。上一篇文章里,我们讲了如何设置配置寄存器(0x01),在测量电流之前,还需要设置校准寄存器(0x05),校准寄存器非常关键,如果不设置这个寄存器,INA226是不会工作的。

2024-07-13 12:54:17 543

原创 树莓派PICO使用INA226测量电流和总线电压(1)

接下来就是选择参数,配置好平均次数,采样时间,模式等,得到一个uint16_t的值,这个值不能直接传递给INA226,因为I2C通讯传递的是大端数据,即高位在前(字节为单位),而PICO使用的是小端数据,所以,需要对数据进行一次位变换。在测量之前,必须先设置好两个寄存器,即0x01和0x05,第一个是配置寄存器,需要设置INA226的工作状态,第二个是校准寄存器,在校准寄存器设置之前,INA226是不会进行测量的。给测试板接上输入电源,简单的测量了一下各个位置的电压,没问题后,接上电脑开始写代码。

2024-07-13 11:41:05 1928

原创 最简 INA226 写寄存器的代码

改写 0x00 寄存器的初始值,并获取打印这个寄存器的值。

2024-07-08 22:54:38 356

原创 PICO 读取 INA226 寄存器的最简代码

读取INA226 的0x00号寄存器,获取基础设置。

2024-07-08 21:33:24 105

原创 RP2040 开发,用 Arduino 通过 ADC 获取电压测量数据

这两天测试了一下如何通过 RP2040 的内置 ADC 获取一个待测量的电压数据,RP2040 内置了4路ADC,分辨率是12bit,也就是说,可以获取4096阶的变化量,但第4个 ADC 已经用于测量芯片的内部温度,所以实际能用的仅有3个 ADC。但由于片内LDO的电压并不是标准的3.3V,所以,实际测量结果会有误差。这个测量电路非常简单,额外加一个电位器就行了,电位器的两端分别接3.3V,和A Gnd,版上能很容易找到3.3V的接口,接地要接AG,电位器中点接A0那个端口,就是GPIO 26。

2024-06-27 15:57:24 597

原创 Arduino 开发 RP2040 时如何使用Adafruit TinyUSB 进行虚拟串口通讯

最近在琢磨用RP2040开发灯丝控制电路,买回来一块RP2040的开发板,在琢磨需要的功能的时候,发现一些问题,问题的起源是想用电脑控制RP2040,设想是通过usb通讯,查了一下,找到Adafruit TinyUSB这个库可以做CDC(通讯),Arduino 的库内可以找到Adafruit TinyUSB这个库,也可以下载,但是无法使用,因为编译会出现大量的报错。这让我非常费解。因为我是基于Adafruit 提供的例子来编译的。按道理能提供例程,至少不应该有这种bug。后来我仔细看了Adafruit Ti

2024-06-24 13:54:13 1083

原创 来自电力电容的降维打击

我找了一圈电解电容,通常用于音频(分频器)的轴向电容耐压也就100V,其他的耐压高的试了几个,效果都很差,听起来怪怪的。于是我开始在海鲜市场准备找一些油电容来试试,各种品牌的都买了一些,直到有一天我找到一对Electronicon 的 E62 系列的油电容,容量合适,42uf,耐压1100V,属于电力电容,风机上拆下来的,价格很便宜,我对这个电容本身不是很在意,以为和之前的那些油电容差不多,结果一测试,让我大吃一惊:100HZ D值 0.0002,1KHZ D值0.0009,10KHZ D值0.0022!

2024-06-17 11:48:26 280

原创 Error code 64 - ERROR_NETNAME_DELETED

网络连接问题有多种原因,但通常是由于网络适配器不正确、交换机设置不正确、硬件故障或驱动程序问题导致的。一些连接症状是间歇性的,不能明确指出这些原因中的任何一个。

2024-05-21 17:01:00 302

原创 使用EO和nginx之后,服务器如何获取客户端真实IP地址

X-Forwarded-For 记录着从客户端发起请求后访问过的每一个 IP 地址,第一个是发起请求的客户端本身的地址,各 IP 地址间由“英文逗号+空格”(那么,只需要获取 X-Forwarded-For 这个头,并且用逗号来拆分字符串,第一个子串就是客户端的 IP 地址。,如果是直接访问的请求,可能是客户端真实的 IP 地址,但是中间若经过了层层的代理,就是最后一层代理的 IP 地址。从字面看 X-Real-IP 代表的是客户端请求真实的 IP 地址,这个参数。

2024-05-14 16:31:11 344

原创 关于企鹅云

千万别用成都机房的云服务器!

2024-05-14 10:32:00 312

原创 ERROR_CONNECTION_ABORTED 1236

意思就是,从本质来讲,无论121,还是1236,都是由于连接中断或超时而返回的错误码。

2024-05-09 17:52:02 178

原创 2SC5200 NPN Bjt 的spice模型

BF = 220+ NF = 1+ IKF = 50+ BR = 28+ NR = 1+ VAR = 10+ IKR = 2+ NC = 1.5+ RB = 0.8+ FC = 0.5+ XTF = 10+ VTF = 2+ ITF = 1+ PTF = 0+ XTB = 3+ TRC1 = 0.ENDS。

2024-05-02 20:41:24 199

原创 架设WebSocket的最后一环,如何设置好nginx反向代理

WebScoket都已经完工快一个月,经过一段时间的测试,公司还是准备把服务器换到鹅厂,用EO来解决CDN内容分发和DDOS防护问题,由于EO并不支持URL 路径转发,只支持转发到一个站点的80或则443端口,如果想做路径分发,就必须用负载均衡,这个服务并不便宜,迫不得已,我只能在服务器上用Nginx来做反向代理。我仔细观察了发生故障的时候的网络请求,一个获取版本号的URL得到了500错误,这让我很惊讶,但我很快注意到网页下面有nginx的版本号,证明这个是nginx返回的错误。

2024-04-30 13:07:50 807 2

原创 直热管灯丝的噪音

地线噪音是一方面,另一个方面就是元器件本身带来的噪音,特别是稳压管带来的雪崩噪音!之前将灯丝电路集成到板上之后,由于OPA1612是双运放,灯丝伺服电路只需要单运放就可以了,多余的运放我不忍浪费,同时出于音质效果考虑,将另外一个运放用作电子管的固偏,以取消掉阴极电阻,但是最终的效果却发现电路产生了一种固有噪音,像呼气声,沙沙声,开始不解,将几乎所有元件都换了一次,最终发现,如果给运放-输入产生偏压的电阻上增加一个电容,就可以解决这个噪音,于是分析电路发现,这个电阻的噪音来源是AZ431产生的基准电压!

2024-04-19 16:08:29 1111

原创 WebSocket 对于手游的意义

因为WebScoket是HTTP协议的升级,因此,现在不少CDN服务提供商支持WebScoket,那么对于网络上常见的DDOS攻击,CC攻击,不少CDN提供商是带了DDOS,CC攻击保护的,意思就是,如果采用WebScoket+CDN的方案,面对这类网络攻击,你不需要额外花钱去买高防。但好处显而易见,通过CDN做隔离,服务器的真实IP不用暴露,所有的通讯都走CDN,一般的DDOS或则CC攻击在CDN这一层就被拦下,包括一些入侵服务器的行为,在无法得到服务器真实IP的情况下,攻击就无法实施。

2024-04-03 17:45:57 691

原创 .net 实现的 Webscoket 对象的一些细节和疑问

这两天服务器和客户端进行了webscoket的联调,在和C#的webscoket实现联调的过程中,发现一些有趣的事情。在我自己C++的实现中,webscoket对上层应用而言是完全透明的,webscoket 只是一个传输协议,用户对此不需要有任何关注,一切都自动进行,包括连接,握手升级,帧切割,帧拼合,控制帧管理,心跳这些,对外完全透明。

2024-04-03 11:19:36 1311

原创 webscoket 中的 mask 细节

我们看到,这个写的很清楚,掩码是给 payload 进行加密用的,这个位置会产生一个误解,就是,如果我没有 payload 的时候,是不是可以不需要掩码?比如一个 ping 帧,不带任何数据是否不需要mask?因此,你可以看到客户端发送到服务器的ping,实际上是带了掩码的,哪怕这个ping没有任何payload 数据。这段明确说了,客户端发送到服务器的所有帧都。有掩码,而服务器发送到客户端的所有帧都。如果违背了这个规则,就。以1002错误关闭连接。

2024-04-02 16:57:35 647

原创 websocket 中掩码的相关代码

代码很简单,就是不断循环的用掩码异或一次原始数据。

2024-04-02 13:38:19 150

原创 聊聊websocket opcode中的text / binary模式

怎么解读帧都是应用层的事情,用什么格式来理解帧的内容,不就是subprotocol干的事情吗?这儿应该有更方便,或则说更直接的方式来处理,理清楚思路之后,我决定将opcode交给应用层来处理,应用层必须注册 subprotocol,提供具体的帧解析的接口,握手的时候,如果没有指定subprotocol,那就采用一个通用的dummy来处理帧。但这个区分并没有规定文本类型有类似于http协议中空行表示结束的说法,而且长度也是由帧头记录,也就是说,单纯从协议格式上来讲,这个区分,没有任何实际的含义。

2024-03-29 11:41:06 663

原创 websocket 内的操作码fin和opcode

在 webscoket 中,控制帧有一个限定:控制帧不允许分段(5.4. Fragmentation),意思就是,控制帧只允许作为一个完整的帧一次性发送。所以我们在处理webscoket帧的时候,如果Fin位为0,则不处理,将帧放入一个缓存,发现 Fin 位为1 的时候就可以处理帧了,根据帧的opcode来判断,如果是控制帧就直接处理,如果连续帧,就将之前缓存的帧拼接成一个完整的payload即可。其中,0,1,2是正常传输数据用的代码,8,9,A是标准的控制帧。rsv1 - 3 不用考虑,被保留的位。

2024-03-25 18:46:29 1290

原创 http 协议的有效字符

qdtext:除了引号 ” 之外的TEXT (即任何 8 位字节,除开控制字符,但包括CR LF HT) quoted-pair:(反斜杠后跟 [0, 127] 范围内的任何值)。但是,实际上,几乎所有的web服务器都不会接受除了CR LF HT之外的控制字符,以及大于等于127的字符(即几乎所有不可读的字符都不在范围之内)。如果研究完协议的描述,可以看到,所有的8字节ASCII码事实上都在标准的允许之内!token:除开控制字符和分隔符的 us字符 [0, 127];

2024-03-20 16:04:43 483

原创 websocket 中 request-line 中的URI编码问题

websocket, nginx,client sent invalid request while reading client request line,

2024-03-20 11:14:09 438

原创 websocket 升级协议时的协议切换点

websocket 的 rfc6455 标准中提到了协议升级,从http协议升级到websocket协议,用的办法是在http的request header中包含Connection: upgrade 和 Upgrade: websocket 以及其他验证相关的头。但这儿有一个小问题,在rfc6455中并没有明确的提到,就是服务器在接收到http请求头之后,如何从文本格式切换到帧格式?而websocket由于是请求/响应协议升级,没有附带的payload,因此,可以确定的是,在收到。

2024-03-19 11:07:25 443

原创 Websocket 中的 sub-protocol 和 extensions 的关系

Websocket 的 Sub-protocol 和 Extensions

2024-03-15 15:13:41 747

原创 XBox One 国行解锁

④:国行Xbox开机进入主界面后插入U盘,重启主机,重启之后,打开设置 ->系统->语言和区域,如果位置改变则解锁成功。去掉文本文档的扩展名.txt,然后文本文档就变成一个空白文件,然后将该空白文件放在U盘的根目录(不要隐藏该文件)。⑤:再次重启主机,并安装字体补丁。(解锁成功后可以取下U盘)①:将主机升级到最新版的操作系统。②:将U盘格式化为NTFS格式。

2024-02-12 14:12:00 1835

原创 foobar2000 突然无法正常输出DSD信号

之前一直在用foobar2000加外置dac听音乐,有一天突然发现听dsd的时候,dac面板显示输出的是PCM格式信号,而不是DSD信号,这让我觉得很奇怪,反复折腾了几次,卸载安装驱动什么的,依然如此,百思不得其解。后来无意中发现一个设置,在foobar的设置:tool -> sacd选项中,有一个output mode的选项。这一项被设置成了PCM,改成DSD之后,就解决了这个问题。

2023-11-26 10:37:21 1361

原创 工频电磁波对电子管的干扰

低频电磁波对电子管的影响

2023-10-26 15:47:20 253

原创 1AE4 的魔改混合放大电路

1AE4的魔改线路。

2023-08-16 14:48:18 837 2

原创 富友支付的ThinkJS实现(H5)

富友H5支付的JS实现。

2023-08-03 13:26:41 407

原创 LND150 的 spice model

LND150

2023-07-10 22:15:51 187

原创 一些有意思的耗尽型MOS恒流源阻抗对比

不同耗尽型mos组成的恒流源的仿真对比。

2023-07-09 21:13:52 264

原创 LD1014D jfet 的spice model

JFET LD1014D的模型。

2023-06-15 13:31:15 529

原创 1AE4混合电路耳放

1AE4的混合放大耳放线路。

2023-05-09 16:44:39 1224

如何设计电子管 300B 单端

非常优秀的文章。设计细节拉满,甚至讲了耳蜗的结构,以及为什么偶次谐波会让人感觉好听。

2024-10-16

正确使用铝电解电容的注意事项

正确使用铝电解电容

2024-08-08

TI 的 ina228 中文资料

TI 的 ina228 中文资料

2024-07-15

Compositor.rar

MP3 MP4播放器排序软件,不用安装,适用于不见不散等播放器。 相信不少的朋友喜欢听MP3,但是有些在电脑上顺序排列的歌曲放到MP3上之后往往顺序不是令人满意,我今天找了一款小巧的排列工具推荐给大家,确实不错的。

2020-09-05

intel_parallel_studio_xe_2013_update_3 license file

亲测可用。第一个可用于update3的文件

2013-06-20

三位一体2 的全套shader

Trine2 三位一体2的全套shader,压缩包1MB,包括延迟光照,水流效果,水下效果,次表面散射等特效。具有较高的参考价值。

2012-03-16

延迟光照的全套SHADER

英雄无敌6 的全套shader代码,包括延迟光照,水流效果,瀑布效果等等,可以参考。

2011-11-18

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除