数码之家

 找回密码
 立即注册
搜索
查看: 4821|回复: 15

[综合] foobar2000 M202MD28A VFD屏信息显示插件

[复制链接]
发表于 2020-11-19 03:06:57 | 显示全部楼层 |阅读模式

爱科技、爱创意、爱折腾、爱极致,我们都是技术控

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 izilzty 于 2020-11-22 15:15 编辑

这里是几张显示的效果图
滚动效果:

                               
登录/注册后可看大图

单独频谱:
ezgif-6-d6957b137672.gif
频谱+时间:
ezgif-6-4ad1cc622386.gif
设置页面:


                               
登录/注册后可看大图


这个fb2k插件是配合型号为M202MD28A的VFD显示屏使用的,显示屏本身使用的是USBHID接口,可以很方便插到电脑上,一根USB线和一个PH2.0间距的6P端子就可以了。不过缺点还是有的,影响最大的就是屏的升压电路在亮度低的时候噪音有些大,不过总体来来说还好。

刚开始这个做插件主要的目的还是学习,因为我本身对C++不太了解,想借着机会稍微熟悉一下(程序有些地方弄得看起来还是比较乱),不过后来发现如果要改的话应该可以很方便地改成串口输出,因为fb2k基本每个播放事件都提供相应的回调,然后把需要的数据从串口输出就可以

关于新工程的创建和一些注意事项后面有时间再整理吧,总的来说就是要把sdk的依赖都添加好,找不到的include和lib文件也要加到工程设置里就可以了,整理完以后会和源码放到一起,现在如果要在基础上自己修改的话直接用源码里创好的工程就欧克。

频谱的样式可以通过修改播放和停止时的文字和频谱的长度来更改,这里给出上面动态图里的样式设置,虽然说频谱只能从最左边开始,不是很灵活,但是应该是总比没有好。复制时复制【】括号内的,可能在开头或结尾有空格,也要全部复制上。如果要恢复到默认的显示,点页面左下角的Reset page然后点Apply应用就可以了。

单独谱 样式:
Spectrum-> Len X:【20】
Spectrum-> 勾选 Enable on play 和 Enable on stop

频谱+时间 样式:
On play -> Line2 formatting:【 $padcut_right($ifgreater($div(%playback_time_seconds%,60),99,99,$div(%playback_time_seconds%,60)),2,0):$ifgreater($div(%playback_time_seconds%,60),99,++,$padcut_right($sub(%playback_time_seconds%,$mul($div(%playback_time_seconds%,60),60)),2,0))】
On stop -> Line2 string:【 --:--】
Spectrum-> Len X:【14】
Spectrum-> 勾选 Enable on play 和 Enable on stop

插件dll文件、源码、屏幕的数据表在这里,数据表的第24页有6P端子的定义,靠近绿色保险的是1脚。
蓝奏云 https://izilzty.lanzoux.com/b00o1ub4b 密码:1x25
百度云 https://pan.baidu.com/s/1r6T7FNPy0gMKQ2NPKy_wLg 提取码: qrgf
GitHub https://github.com/izilzty/foo_usbhid_m202md28a



使用说明

1. 插件安装
请下载 foo_usbhid_m202md28a.dll 文件,然后将此文件放入 foobar2000 安装目录的 components 文件夹内即可。
如需自定义设置可以在 设置页面 -> Display -> HID VFD Display 内进行修改。

2. 首次使用
因为此型号屏幕的自定义字体需要先写入内置的闪存后才可以使用,为了不浪费闪存的写入寿命,在屏幕首次使用时需要手动写入一次自定义字体,之后只要不更换屏幕,都不需要再次此进行此操作了。如果要进行此操作,请执行以下步骤:
  • 按 Ctrl+P 打开 foobar2000 的设置页面
  • 转到 Display -> HID VFD Display
  • 点击页面右下角 FROM setting 内的 WRITE 按钮
  • 待屏幕显示“FROM WRITE SUCCESS”后,重新启动 foobar2000
如果需要清除自定义字体,则可以按照相同的步骤,使用 FROM setting 内的 RESET  按钮擦除自定义字体并将屏幕恢复到出厂设置。

3. 自定义显示内容
可自定义显示内容的状态有四种,分别为播放时(On play)、加载时(On load)、停止时(On stop)、音量更改时(On volume change),其中播放时(On play)的显示内容支持foobar2000内置的格式化功能,可以自定义显示标题等信息,音量更改时(On volume change)的字符串为音量数字之前的文字,其余两项为普通字符串,留空则不更改上次显示内容。
关于foobar2000格式化功能的语法,详见 设置页面 -> Display -> Default User Interface 下方的 Syntax help。

4. 自定义频谱显示
Enable on play []  [在播放时显示频谱]
Enable on stop []  [在停止时显示频谱]
FFT speed            [FFT计算间隔]
Draw speed          [频谱绘制间隔]
Len X                   [频谱横向长度,用于配合格式化字符混合显示信息和频谱]
Fake spectrum  []  [在播放时显示假频谱动画]


5. 自定义电源控制
可自定义电源的状态有四种,分别为:播放时(On play)、暂停时(On pause)、停止时(On stop)、退出时(On exit),每种状态的电源控制可通过下拉列表选择。
Dim 25       [ 亮度 25% ]
Dim 50       [ 亮度 50% ]
Dim 75       [ 亮度 75% ]
Dim 100     [ 亮度 100% ]
Dim OFF     [ 显示关闭,但电源不关闭,下次启动速度快 ]
Power OFF [ 电源关闭,下次启动速度慢,会有灯丝加热过程 ]

6. 自定义滚动和音量显示延时
可自定义的延时有四种,分别为:音量显示时间(Display hold)、第一行文字从右向左渐入的速度(Fadein speed)、第一行文字渐入完成后等待时间(Scroll wait)、第一行文字循环滚动速度(Scroll speed)。
Display hold    [ 音量显示时间,设置为0则在音量更改时不显示音量 ]
Fadein speed  [ 文字从右向左渐入的速度,设置为0则直接显示在左侧 ]
Scroll wait      [ 文字渐入完成后到开始滚动之间的延时,设置为0则直接开始滚动 ]
Scroll speed   [ 文字循环滚动速度,设置为0则在使用默认的300ms滚动速度完成一次滚动后停止 ]

7. HID设备VID PID设置
保持默认即可,无特殊情况无需更改,如果存在多个相同 VID PID 的屏幕则会使用找到的第一个屏幕,无法手动指定。

8. 恢复默认设置
点击页面下方的 Reset page 按钮,再点击 Apply 按钮,即可恢复设置到默认值,屏幕上的闪存不会被复位,所以无需重新写入 FROM。

9. 其他问题
由于屏幕设计的问题,在 USB 接收数据时可能会停止扫描,这就会造成某些像素在非常短的时间内闪烁一下,亮度越低越明显,但在 100% 亮度下基本看不出来。所以解决方法有两种:一是降低文字滚动的速度,二是提高屏幕亮度。

因为屏幕内的双字节字符代码页是分开的,所以为了显示中日韩混合字符,可能会在一次显示数据内多次切换代码页,这就造成了可能在某些无关的字符位置会闪烁过一些乱码(只是偶尔会出现,貌似和外界干扰也有关系,闪烁一下会自动消失,也不会影响现有的字符,原因不明。 猜测可能和上面所说的停止扫描一样是 USB 设计的问题?因为这个屏幕设计是类似收银机上使用的,所以不会有频繁的切换代码页也请求。),不过速度非常快,不仔细看看不太出来,也无法 100% 复现。

还有就是屏幕在特定的亮度下升压电路的噪音可能比较明显,可以通过更改亮度来缓解。



编译说明
如果 Visual Studio 版本为 2019,除了基础的“使用C++的桌面开发”外,还需要安装 VS 2017 (v141) 支持,或手动更改工程目标版本,但是会有报错,需要解决。

安装 VS 2017 (v141) 支持步骤如下:
运行 Visual Studio 安装程序,在单个组件里搜索 141,然后分别选中

C++ ATL v141 生成工具 (x86 & x64)
C++ MFC v141 生成工具 (x86 & x64)
MSVC v141 - VS 2017 C++ x64/x86 生成工具(v14.16)
对 VS 2017 (v141)工具的 C++ Windows XP 支持
在右侧应该还会自动选中一个 Windows 通用 CRT SDK

最后点击修改即可

1. 发布版本编译
  • 使用 git clone 或直接下载压缩包,将文件下载到本地
  • 使用 Visual Studio 打开 foo_usbhid_m202md28a.sln
  • 将解决方案配置切换为 Releases
  • 生成 -> 生成解决方案(Ctrl+Shift+B)即可,生成的 dll 文件在 foo_usbhid_m202md28a.sln 目录下的 Releases 文件夹内

2. 调试
  • 使用 git clone 或直接下载压缩包,将文件下载到本地
  • 使用 Visual Studio 打开 foo_usbhid_m202md28a.sln
  • 将解决方案配置切换为 Debug
  • 调试 -> 开始调试(F5)即可。开始调试后,会自动启动工程文件夹内的 foobar2000 用于调试,不影响电脑上安装的现有版本






打赏

参与人数 5家元 +100 收起 理由
令狐二冲 + 20 謝謝分享
chuchun + 10 謝謝分享
zwillhill + 20 謝謝分享
家睦 + 40
moontree + 10 謝謝分享

查看全部打赏

发表于 2020-11-19 10:57:09 | 显示全部楼层
vfd显示效果确实不错,有没有可以显示频谱的啊?配合foobar的频谱,只显示字太单调。
回复 支持 反对

使用道具 举报

发表于 2020-11-19 11:31:58 | 显示全部楼层
可以挣钱的技术活,干不了
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-11-19 11:56:30 | 显示全部楼层
本帖最后由 izilzty 于 2020-11-19 12:03 编辑
nonzhe 发表于 2020-11-19 10:57
vfd显示效果确实不错,有没有可以显示频谱的啊?配合foobar的频谱,只显示字太单调。 ...

是这样的,频谱按理说是可以加的,可视化数据foobar的sdk里好像也有提供了,在vis.h里面。但是有两个问题,一个是我对c++&sdk这一块和频谱这个计算还不太熟悉,最近也比较忙,弄起来可能比较费劲;二一个是这个屏幕刷的速度如果快了的话在低亮度下会有一点闪烁,做出来以后效果可能不好,所以就暂时没有加频谱显示的功能。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-11-19 21:49:02 | 显示全部楼层
本帖最后由 izilzty 于 2020-11-19 21:51 编辑

今天试了一下频谱显示,貌似效果还好,这两天有时间的话完善一下加进去。

                               
登录/注册后可看大图

仔细看可以看到屏幕第一行没有变动的字也在轻微的闪,这个就是上面说的屏的扫描问题,图里的屏幕亮度是25%,试了一下调到50%和以上就基本看不到了。
回复 支持 反对

使用道具 举报

发表于 2020-11-19 22:15:21 | 显示全部楼层
牛逼啊 可以加精了
回复 支持 反对

使用道具 举报

发表于 2020-11-20 02:29:17 | 显示全部楼层
效果好看,厉害了。
回复 支持 反对

使用道具 举报

发表于 2020-11-20 14:27:15 | 显示全部楼层
izilzty 发表于 2020-11-19 21:49
今天试了一下频谱显示,貌似效果还好,这两天有时间的话完善一下加进去。

仔细看可以看到屏幕第一行没有变 ...

效果不错!
回复 支持 反对

使用道具 举报

发表于 2020-11-20 16:37:02 | 显示全部楼层
izilzty 发表于 2020-11-19 21:49
今天试了一下频谱显示,貌似效果还好,这两天有时间的话完善一下加进去。

仔细看可以看到屏幕第一行没有变 ...

太厉害了   出个教程 顺便做个钟
回复 支持 反对

使用道具 举报

发表于 2020-11-20 17:10:46 来自手机浏览器 | 显示全部楼层
50块钱一个…太太太贵了…要不起…:titter:
回复 支持 反对

使用道具 举报

发表于 2020-11-20 18:56:26 来自手机浏览器 | 显示全部楼层
需要编程,太复杂,玩不了。
回复 支持 反对

使用道具 举报

发表于 2020-11-27 15:02:13 | 显示全部楼层
没技术的,路过支持:lol:
回复 支持 反对

使用道具 举报

发表于 2020-12-28 16:26:15 | 显示全部楼层
这东西你是准备摆哪里?:lol:
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

APP|手机版|小黑屋|关于我们|联系我们|法律条款|技术知识分享平台

闽公网安备35020502000485号

闽ICP备2021002735号-2

GMT+8, 2024-4-24 01:14 , Processed in 0.171600 second(s), 14 queries , Redis On.

Powered by Discuz!

© 2006-2023 smzj.net

快速回复 返回顶部 返回列表