- 浏览: 3059531 次
- 性别:
- 来自: 海外
-
文章分类
- 全部博客 (430)
- Programming Languages (23)
- Compiler (20)
- Virtual Machine (57)
- Garbage Collection (4)
- HotSpot VM (26)
- Mono (2)
- SSCLI Rotor (1)
- Harmony (0)
- DLR (19)
- Ruby (28)
- C# (38)
- F# (3)
- Haskell (0)
- Scheme (1)
- Regular Expression (5)
- Python (4)
- ECMAScript (2)
- JavaScript (18)
- ActionScript (7)
- Squirrel (2)
- C (6)
- C++ (10)
- D (2)
- .NET (13)
- Java (86)
- Scala (1)
- Groovy (3)
- Optimization (6)
- Data Structure and Algorithm (3)
- Books (4)
- WPF (1)
- Game Engines (7)
- 吉里吉里 (12)
- UML (1)
- Reverse Engineering (11)
- NSIS (4)
- Utilities (3)
- Design Patterns (1)
- Visual Studio (9)
- Windows 7 (3)
- x86 Assembler (1)
- Android (2)
- School Assignment / Test (6)
- Anti-virus (1)
- REST (1)
- Profiling (1)
- misc (39)
- NetOA (12)
- rant (6)
- anime (5)
- Links (12)
- CLR (7)
- GC (1)
- OpenJDK (2)
- JVM (4)
- KVM (0)
- Rhino (1)
- LINQ (2)
- JScript (0)
- Nashorn (0)
- Dalvik (1)
- DTrace (0)
- LLVM (0)
- MSIL (0)
最新评论
-
mldxs:
虽然很多还是看不懂,写的很好!
虚拟机随谈(一):解释器,树遍历解释器,基于栈与基于寄存器,大杂烩 -
HanyuKing:
Java的多维数组 -
funnyone:
Java 8的default method与method resolution -
ljs_nogard:
Xamarin workbook - .Net Core 中不 ...
LINQ的恶搞…… -
txm119161336:
allocatestlye1 顺序为 // Fields o ...
最近做的两次Java/JVM分享的概要
听汉公的说明,看来LittleWitch所使用的FFD System在ver4之后解起来就有点麻烦。游戏里的资源归档文件里虽然还是有文件列表,但并没有保存原始的文件名而只是保存了文件名的MD5。这使得解出文件有困难,如果事先不知道想要解的文件的名字,即使把内容能解出来,其文件名也让人不知所云。
但总有办法的。在System.dat里有些定义界面元素用的*.def文件。例如这样:
Music.def
这些列表能提供足够信息解出相当多的资源,例如说背景音乐、CG等。但有些重要的资源文件名却不在*.def里,像是我们关心的脚本文件。
前一篇里介绍了如何将Quartett!的二进制脚本转变回到一般可读的形式,这里就稍微说明一下我是如何从解出来的脚本中得到一份脚本里引用过的文件列表。
从前一篇的分析可以知道,token类型为0x83的是字符串token。在FFD脚本里,好几种内容都可能会是字符串类型:1、剧情文本;2、一般参数,如图像渐变的模式"Fade",图像的形状"Rect"之类;3、资源文件路径;等等。不进行文法分析的话,没有办法准确判断这些字符串中到底哪些代表资源文件的路径。但有些偷懒的方式可以试试。
我浏览了一下Quartett!的脚本,假定其引用的资源文件路径中必然有分隔符“.”。但是有一些剧情文本里也有“.”,为了尽量排除掉它们,我写了这样的判断方法:
将前一篇里提到的“反编译器”稍微修改了一下,让它收集所有脚本中满足上面的判断的token,并输出到一个单一的文本文件中。
于是得到了类似这样的一个文件:
(片段)
使用UltraEdit打开该文件,并使用文件->排序->高级排序/选项。选择“升序”和“删除重复”,并开始排序。对这里的例子排序的话,结果是:
可以看到,如果有重复的资源文本,它们已经被UltraEdit清除掉了。而且有一些我们所不关心的内容也堆在了一起,可以方便的选取并删除。
这里我们对FONT和TYPE标签都没兴趣,但在实际删除它们之前,留意到有些行里有IMG标签,里面有我们感兴趣的src属性指向的是资源文件,得留下。这部分我是自己做了苦力,在UltraEdit里逐个搜索<IMG src并将与其在同一行上的非文件路径内容都删除掉。再做一个排序,确认所有IMG标签都处理好了,然后把FONT、TYPE等标签,以及排在后面的纯剧情文本都删除掉。
经过处理,提取出来的记录里就只剩下这样的内容了:
我把这样的文件列表给了汉公,但之后又得到了新的要求:要把这个列表按归档文件拆分开来。
这是件简单的事。首先得知道路径上什么是归档的文件名,什么是归档里内容的文件名。通过分析,发现路径上最后一个/之后的是归档里内容的文件名,而在那之前的都是归档自身的路径。于是写了个简短的程序来对文件列表做二次处理:
split.cs
完事。来看看其中一个分离出来的lst文件长什么样:
Face.lst
嗯,基本上满足要求了。
==========================================================
进一步的精确分析确实需要写出parser来做。我现在肯定是没时间做,不过计划以后做的时候用ANTLR来完成。难点是要设计出一个精确的上下文无关文法。到时候再说吧~
但总有办法的。在System.dat里有些定义界面元素用的*.def文件。例如这样:
Music.def
引用
# サウンド定義ファイル
# "条件式", "サウンドファイル名", "サムネイルファイル名", "見出し"
"1" ,"m/BGM_01.ogg" , "SAM/music_thumb.bmp", "Regret"
"1" ,"m/BGM_02.ogg" , "SAM/music_thumb.bmp", "夕影"
"1" ,"m/BGM_03.ogg" , "SAM/music_thumb.bmp", "Reminiscene"
"1" ,"m/BGM_04.ogg" , "SAM/music_thumb.bmp", "Introduction"instrument
"1" ,"m/BGM_05.ogg" , "SAM/music_thumb.bmp", "陽春"
"1" ,"m/BGM_06.ogg" , "SAM/music_thumb.bmp", "沙友"
"1" ,"m/BGM_07.ogg" , "SAM/music_thumb.bmp", "透花 op02"
"1" ,"m/BGM_08.ogg" , "SAM/music_thumb.bmp", "透花"
"1" ,"m/BGM_09.ogg" , "SAM/music_thumb.bmp", "エマ op02"
# "条件式", "サウンドファイル名", "サムネイルファイル名", "見出し"
"1" ,"m/BGM_01.ogg" , "SAM/music_thumb.bmp", "Regret"
"1" ,"m/BGM_02.ogg" , "SAM/music_thumb.bmp", "夕影"
"1" ,"m/BGM_03.ogg" , "SAM/music_thumb.bmp", "Reminiscene"
"1" ,"m/BGM_04.ogg" , "SAM/music_thumb.bmp", "Introduction"instrument
"1" ,"m/BGM_05.ogg" , "SAM/music_thumb.bmp", "陽春"
"1" ,"m/BGM_06.ogg" , "SAM/music_thumb.bmp", "沙友"
"1" ,"m/BGM_07.ogg" , "SAM/music_thumb.bmp", "透花 op02"
"1" ,"m/BGM_08.ogg" , "SAM/music_thumb.bmp", "透花"
"1" ,"m/BGM_09.ogg" , "SAM/music_thumb.bmp", "エマ op02"
这些列表能提供足够信息解出相当多的资源,例如说背景音乐、CG等。但有些重要的资源文件名却不在*.def里,像是我们关心的脚本文件。
前一篇里介绍了如何将Quartett!的二进制脚本转变回到一般可读的形式,这里就稍微说明一下我是如何从解出来的脚本中得到一份脚本里引用过的文件列表。
从前一篇的分析可以知道,token类型为0x83的是字符串token。在FFD脚本里,好几种内容都可能会是字符串类型:1、剧情文本;2、一般参数,如图像渐变的模式"Fade",图像的形状"Rect"之类;3、资源文件路径;等等。不进行文法分析的话,没有办法准确判断这些字符串中到底哪些代表资源文件的路径。但有些偷懒的方式可以试试。
我浏览了一下Quartett!的脚本,假定其引用的资源文件路径中必然有分隔符“.”。但是有一些剧情文本里也有“.”,为了尽量排除掉它们,我写了这样的判断方法:
static bool Match( string tokenString ) { return ( tokenString.Contains( "." ) && !tokenString.Contains( "..." ) && !tokenString.Contains( ">.." ) && !tokenString.Contains( ",.." ) && !tokenString.Contains( "..<" ) && !tokenString.Contains( "\u3000.." ) ) || tokenString.Contains( "<IMG" ); }
将前一篇里提到的“反编译器”稍微修改了一下,让它收集所有脚本中满足上面的判断的token,并输出到一个单一的文本文件中。
于是得到了类似这样的一个文件:
(片段)
../ Script/BaseInstruction.txt Back/Lesson01.bmp <FONT size=18 face='G'>フィル君.<BR>まだ<TYPE interval=500 speed=500 style='Spring'>~ I/100221/0221-#03b-02-2.bmp BGM/B02_Juni.ogg I/100221/0221-#03b-02-3.bmp I/100221/0221-#03b-02-4.bmp I/100221/0221-#03b-03-1.bmp Face/Juni11R.png <TYPE interval=55 style='Fade'>なっ ..なんて<BR>わかりやすい<BR>ゴマカシを・・・・・・ <TYPE style='Fade'><IMG src='Em/Ase18.png'>
使用UltraEdit打开该文件,并使用文件->排序->高级排序/选项。选择“升序”和“删除重复”,并开始排序。对这里的例子排序的话,结果是:
../ <FONT size=18 face='G'>フィル君.<BR>まだ<TYPE interval=500 speed=500 style='Spring'>~ <TYPE interval=55 style='Fade'>なっ ..なんて<BR>わかりやすい<BR>ゴマカシを・・・・・・ <TYPE style='Fade'><IMG src='Em/Ase18.png'> BGM/B02_Juni.ogg Back/Lesson01.bmp Face/Juni11R.png I/100221/0221-#03b-02-2.bmp I/100221/0221-#03b-02-3.bmp I/100221/0221-#03b-02-4.bmp I/100221/0221-#03b-03-1.bmp Script/BaseInstruction.txt
可以看到,如果有重复的资源文本,它们已经被UltraEdit清除掉了。而且有一些我们所不关心的内容也堆在了一起,可以方便的选取并删除。
这里我们对FONT和TYPE标签都没兴趣,但在实际删除它们之前,留意到有些行里有IMG标签,里面有我们感兴趣的src属性指向的是资源文件,得留下。这部分我是自己做了苦力,在UltraEdit里逐个搜索<IMG src并将与其在同一行上的非文件路径内容都删除掉。再做一个排序,确认所有IMG标签都处理好了,然后把FONT、TYPE等标签,以及排在后面的纯剧情文本都删除掉。
经过处理,提取出来的记录里就只剩下这样的内容了:
BGM/B01_Charlotte.ogg BGM/B02_Juni.ogg BGM/B03_Shuhua.ogg BGM/B04_MyHome.ogg BGM/B05_Serious.ogg BGM/B07_AcademiaMusicae1.ogg BGM/B08_AcademiaMusicae2.ogg BGM/B09_AcademiaMusicae3.ogg BGM/B10a_Bar1.ogg BGM/B10b_Bar2.ogg BGM/B11a_Title.ogg
我把这样的文件列表给了汉公,但之后又得到了新的要求:要把这个列表按归档文件拆分开来。
这是件简单的事。首先得知道路径上什么是归档的文件名,什么是归档里内容的文件名。通过分析,发现路径上最后一个/之后的是归档里内容的文件名,而在那之前的都是归档自身的路径。于是写了个简短的程序来对文件列表做二次处理:
split.cs
// split.cs, 2007/12/21 // by RednaxelaFX /* * Copyright (c) 2007 着作权由RednaxelaFX所有。着作权人保留一切权利。 * * 这份授权条款,在使用者符合以下三条件的情形下,授予使用者使用及再散播本 * 软件包装原始码及二进位可执行形式的权利,无论此包装是否经改作皆然: * * * 对于本软件源代码的再散播,必须保留上述的版权宣告、此三条件表列,以 * 及下述的免责声明。 * * 对于本套件二进位可执行形式的再散播,必须连带以文件以及/或者其他附 * 于散播包装中的媒介方式,重制上述之版权宣告、此三条件表列,以及下述 * 的免责声明。 * * 未获事前取得书面许可,不得使用RednaxelaFX之名称, * 来为本软件之衍生物做任何表示支持、认可或推广、促销之行为。 * * 免责声明:本软件是由RednaxelaFX以现状("as is")提供, * 本软件包装不负任何明示或默示之担保责任,包括但不限于就适售性以及特定目 * 的的适用性为默示性担保。RednaxelaFX无论任何条件、 * 无论成因或任何责任主义、无论此责任为因合约关系、无过失责任主义或因非违 * 约之侵权(包括过失或其他原因等)而起,对于任何因使用本软件包装所产生的 * 任何直接性、间接性、偶发性、特殊性、惩罚性或任何结果的损害(包括但不限 * 于替代商品或劳务之购用、使用损失、资料损失、利益损失、业务中断等等), * 不负任何责任,即在该种使用已获事前告知可能会造成此类损害的情形下亦然。 */ using System; using System.Collections.Generic; using System.IO; using System.Text; sealed class Splitter { static void Main( string[ ] args ) { if ( !File.Exists( args[ 0 ] ) ) return; string infilelist = args[ 0 ]; // get the file names and sort them out by the archive they belong to // paths that doesn't seem to be in an archive are ignored Dictionary<string, List<string>> dic = new Dictionary<string, List<string>>( ); using ( StreamReader reader = new StreamReader( File.OpenRead( infilelist ), Encoding.GetEncoding( "utf-16le" ), true ) ) { string line = null; while ( ( line = reader.ReadLine( ) ) != null ) { int seperateIndex = line.LastIndexOf( "/" ); if ( -1 == seperateIndex ) continue; string path = line.Substring( 0, seperateIndex ); string filename = line.Substring( seperateIndex + 1 ); if ( dic.ContainsKey( path ) ) { List<string> list = dic[ path ]; list.Add( filename ); } else { List<string> list = new List<string>( ); list.Add( filename ); dic.Add( path, list ); } } // while } // using // write the file lists out foreach ( string path in dic.Keys ) { int seperateIndex = path.LastIndexOf( "/" ); if ( -1 != seperateIndex ) { Directory.CreateDirectory( path.Substring( 0, seperateIndex ) ); } using ( StreamWriter writer = new StreamWriter( File.Create( path + ".lst" ), Encoding.GetEncoding( 932 ) ) ) { foreach( string filename in dic[ path ] ) { writer.WriteLine( filename ); } // foreach } // using } // foreach } }
完事。来看看其中一个分离出来的lst文件长什么样:
Face.lst
Char01L.png Char04L.png Char04R.png Char15L.png Gise12R.png Gise17R.png Hans03L.png Hans03R.png Juni05R.png Juni10L.png Juni10R.png Juni11R.png Lina02L.png Lina06L.png Lina06R.png May15L.png May16R.png Phil00L.png Phil00R.png Phil02L.png Phil02R.png Phil03L.png Phil03R.png Phil04L.png Phil04R.png Phil05R.png Phil07L.png Phil07R.png Phil12L.png Shuh00R.png Shuh11R.png Sign09R.png Sign10R.png
嗯,基本上满足要求了。
==========================================================
进一步的精确分析确实需要写出parser来做。我现在肯定是没时间做,不过计划以后做的时候用ANTLR来完成。难点是要设计出一个精确的上下文无关文法。到时候再说吧~
发表评论
-
IDA Pro Free笔记
2013-05-19 08:59 0IDA把数据都存哪里了? Windows 7 D:\tem ... -
加密算法收集
2011-01-23 16:10 0加密算法,OTP http://en.wikipedia.or ... -
BattleMoonWars 归档解压/压缩程序(砍掉重炼版)
2010-05-03 21:40 2289以前写过BattleMoonWars的 ... -
Quartett!文本插入程序
2008-06-21 20:38 1579年初写的Quartett!的文本 ... -
BattleMoonWars 归档解压/压缩程序 (Java)
2008-04-08 16:44 2469呼,这个也是一年多之 ... -
ケータイ少女 script.arc的解压缩程序 (Java)
2008-04-08 14:02 4666嗯,这个也是快一年前写的了。当时在澄空看到有人想要解手机少女的 ... -
桃華月憚体験版的解压缩程序 (Java)
2008-04-08 13:38 3122这是差不多一年前写的程序了……有人说想看于是发出来。 当时也是 ... -
Quartett!的文本提取程序
2008-03-05 23:31 1888诶,之前写了这个程序 ... -
Fortune Arterial Tools
2008-02-28 13:34 2453using System; using System.IO; ... -
さくらシュトラッセ literal record
2008-01-28 14:53 1825脚本在scenario.sc里。无 ... -
Borland的库的一个小特征?
2008-01-06 00:22 2514最近弄了下KAMIPANI相关 ... -
[脚本分析] Quartett!的二进制脚本分析
2007-12-20 22:17 3333我前两天在NetOA方面确 ...
相关推荐
"Quartett!文本插入程序"是一个用于在特定文件中插入文本的工具,它主要处理tkn格式的文件。这个程序可能对程序员或系统管理员非常有用,因为它允许他们自动化一些文本处理任务,例如批量添加注释、修改配置文件或者...
此外,项目的版本控制可能采用了Git,这可以从"quartett-app-master"这个文件名推断出来,"master"通常指的是Git仓库中的主分支,意味着这是项目的主要代码版本。 开发者可能还使用了Maven或Gradle作为构建工具,...
级联H桥SVG无功补偿系统在不平衡电网中的三层控制策略:电压电流双闭环PI控制、相间与相内电压均衡管理,级联H桥SVG无功补偿系统在不平衡电网中的三层控制策略:电压电流双闭环PI控制、相间与相内电压均衡管理,不平衡电网下的svg无功补偿,级联H桥svg无功补偿statcom,采用三层控制策略。 (1)第一层采用电压电流双闭环pi控制,电压电流正负序分离,电压外环通过产生基波正序有功电流三相所有H桥模块直流侧平均电压恒定,电流内环采用前馈解耦控制; (2)第二层相间电压均衡控制,注入零序电压,控制通过注入零序电压维持相间电压平衡; (3)第三层相内电压均衡控制,使其所有子模块吸收的有功功率与其损耗补,从而保证所有H桥子模块直流侧电压值等于给定值。 有参考资料。 639,核心关键词: 1. 不平衡电网下的SVG无功补偿 2. 级联H桥SVG无功补偿STATCOM 3. 三层控制策略 4. 电压电流双闭环PI控制 5. 电压电流正负序分离 6. 直流侧平均电压恒定 7. 前馈解耦控制 8. 相间电压均衡控制 9. 零序电压注入 10. 相内电压均衡控制 以上十个关键词用分号分隔的格式为:不
GTX 1080 PCB图纸,内含图纸查看软件
内容概要:本文档详细介绍了利用 DeepSeek 进行文本润色和问答交互时提高效果的方法和技巧,涵盖了从明确需求、提供适当上下文到尝试开放式问题以及多轮对话的十个要点。每一部分内容都提供了具体的示范案例,如指定回答格式、分步骤提问等具体实例,旨在指导用户更好地理解和运用 DeepSeek 提升工作效率和交流质量。同时文中还强调了根据不同应用场景调整提示词语气和风格的重要性和方法。 适用人群:适用于希望通过优化提问技巧以获得高质量反馈的企业员工、科研人员以及一般公众。 使用场景及目标:本文针对所有期望提高 DeepSeek 使用效率的人群,帮助他们在日常工作中快速获取精准的答案或信息,特别是在撰写报告、研究材料准备和技术咨询等方面。此外还鼓励用户通过不断尝试不同形式的问题表述来进行有效沟通。 其他说明:该文档不仅关注实际操作指引,同样重视用户思维模式转变——由简单索取答案向引导 AI 辅助创造性解决问题的方向发展。
基于FPGA与W5500实现的TCP网络通信测试平台开发——Zynq扩展口Verilog编程实践,基于FPGA与W5500芯片的TCP网络通信测试及多路Socket实现基于zynq开发平台和Vivado 2019软件的扩展开发,基于FPGA和W5500的TCP网络通信 测试平台 zynq扩展口开发 软件平台 vivado2019.2,纯Verilog可移植 测试环境 压力测试 cmd命令下ping电脑ip,同时采用上位机进行10ms发包回环测试,不丢包(内部数据回环,需要时间处理) 目前实现单socket功能,多路可支持 ,基于FPGA; W5500; TCP网络通信; Zynq扩展口开发; 纯Verilog可移植; 测试平台; 压力测试; 10ms发包回环测试; 单socket功能; 多路支持。,基于FPGA与W5500的Zynq扩展口TCP通信测试:可移植Verilog实现的高效网络通信
Labview液压比例阀伺服阀试验台多功能程序:PLC通讯、液压动画模拟、手动控制与调试、传感器标定、报警及记录、自动实验、数据处理与查询存储,报表生成与打印一体化解决方案。,Labview液压比例阀伺服阀试验台多功能程序:PLC通讯、液压动画模拟、手动控制与调试、传感器标定、报警管理及实验自动化,labview液压比例阀伺服阀试验台程序:功能包括,同PLC通讯程序,液压动画,手动控制及调试,传感器标定,报警设置及报警记录,自动实验,数据处理曲线处理,数据库存储及查询,报表自动生成及打印,扫码枪扫码及信号录入等~ ,核心关键词:PLC通讯; 液压动画; 手动控制及调试; 传感器标定; 报警设置及记录; 自动实验; 数据处理及曲线处理; 数据库存储及查询; 报表生成及打印; 扫码枪扫码。,Labview驱动的智能液压阀测试系统:多功能控制与数据处理
华为、腾讯、万科员工职业发展体系建设与实践.pptx
1.版本:matlab2014/2019a/2024a 2.附赠案例数据可直接运行matlab程序。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。
电网不对称故障下VSG峰值电流限制的柔性控制策略:实现电流平衡与功率容量的优化利用,电网不对称故障下VSG峰值电流限制的柔性控制策略:兼顾平衡电流与功率控制切换的动态管理,电网不对称故障下VSG峰值电流限制的柔性不平衡控制(文章完全复现)。 提出一种在不平衡运行条件下具有峰值电流限制的可变不平衡电流控制方法,可灵活地满足不同操作需求,包括电流平衡、有功或无功恒定运行(即电流控制、有功控制或无功控制之间的相互切),注入电流保持在安全值内,以更好的利用VSG功率容量。 关键词:VSG、平衡电流控制、有功功率控制、无功功率控制。 ,VSG; 峰值电流限制; 柔性不平衡控制; 电流平衡控制; 有功功率控制; 无功功率控制。,VSG柔性控制:在电网不对称故障下的峰值电流限制与平衡管理
1、文件内容:libpinyin-tools-0.9.93-4.el7.rpm以及相关依赖 2、文件形式:tar.gz压缩包 3、安装指令: #Step1、解压 tar -zxvf /mnt/data/output/libpinyin-tools-0.9.93-4.el7.tar.gz #Step2、进入解压后的目录,执行安装 sudo rpm -ivh *.rpm 4、更多资源/技术支持:公众号禅静编程坊
数据集是一个以经典动漫《龙珠》为主题的多维度数据集,广泛应用于数据分析、机器学习和图像识别等领域。该数据集由多个来源整合而成,涵盖了角色信息、战斗力、剧情片段、台词以及角色图像等多个方面。数据集的核心内容包括: 角色信息:包含《龙珠》系列中的主要角色及其属性,如名称、种族、所属系列(如《龙珠》《龙珠Z》《龙珠超》等)、战斗力等级等。 图像数据:提供角色的图像资源,可用于图像分类和角色识别任务。这些图像来自动画剧集、漫画和相关衍生作品。 剧情与台词:部分数据集还包含角色在不同故事中的台词和剧情片段,可用于文本分析和自然语言处理任务。 战斗数据:记录角色在不同剧情中的战斗力变化和战斗历史,为研究角色成长和剧情发展提供支持。 数据集特点 多样性:数据集整合了角色、图像、文本等多种类型的数据,适用于多种研究场景。 深度:不仅包含角色的基本信息,还涵盖了角色的成长历程、技能描述和与其他角色的互动关系。 实用性:支持多种编程语言(如Python、R)的数据处理和分析,提供了详细的文档和示例代码。
基于protues仿真的多功公交站播报系统设计(仿真图、源代码) 该设计为基于protues仿真的多功公交站播报系统,实现温度显示、时间显示、和系统公交站播报功能; 具体功能如下: 1、系统使用51单片机为核心设计; 2、时钟芯片进行时间和日期显示; 3、温度传感器进行温度读取; 4、LCD12864液晶屏进行相关显示; 5、按键设置调节时间; 6、按键设置报站; 7、仿真图、源代码; 操作说明: 1、下行控制报站:首先按下(下行设置按键),(下行指示灯)亮,然后按下(手动播报)按键控制播报下一站; 2、上行控制报站:首先按上(上行设置按键),(上行指示灯)亮,然后按下(手动播报)按键控制播报下一站; 3、按下关闭播报按键,则关闭播报功能和清除显示
采用Java后台技术和MySQL数据库,在前台界面为提升用户体验,使用Jquery、Ajax、CSS等技术进行布局。 系统包括两类用户:学生、管理员。 学生用户 学生用户只要实现了前台信息的查看,打开首页,查看网站介绍、琴房信息、在线留言、轮播图信息公告等,通过点击首页的菜单跳转到对应的功能页面菜单,包括网站首页、琴房信息、注册登录、个人中心、后台登录。 学生用户通过账户账号登录,登录后具有所有的操作权限,如果没有登录,不能在线预约。学生用户退出系统将注销个人的登录信息。 管理员通过后台的登录页面,选择管理员权限后进行登录,管理员的权限包括轮播公告管理、老师学生信息管理和信息审核管理,管理员管理后点击退出,注销登录信息。 管理员用户具有在线交流的管理,琴房信息管理、琴房预约管理。 在线交流是对前台用户留言内容进行管理,删除留言信息,查看留言信息。
MATLAB可以用于开发人脸识别考勤系统。下面是一个简单的示例流程: 1. 数据采集:首先收集员工的人脸图像作为训练数据集。可以要求员工提供多张照片以获得更好的训练效果。 2. 图像预处理:使用MATLAB的图像处理工具对采集到的人脸图像进行预处理,例如灰度化、裁剪、缩放等操作。 3. 特征提取:利用MATLAB的人脸识别工具包,如Face Recognition Toolbox,对处理后的图像提取人脸特征,常用的方法包括主成分分析(PCA)和线性判别分析(LDA)等。 4. 训练模型:使用已提取的人脸特征数据集训练人脸识别模型,可以选择支持向量机(SVM)、卷积神经网络(CNN)等算法。 5. 考勤系统:在员工打卡时,将摄像头捕获的人脸图像输入到训练好的模型中进行识别,匹配员工信息并记录考勤数据。 6. 结果反馈:根据识别结果,可以自动生成考勤报表或者实时显示员工打卡情况。 以上只是一个简单的步骤,实际开发过程中需根据具体需求和系统规模进行定制和优化。MATLAB提供了丰富的图像处理和机器学习工具,是开发人脸识别考勤系统的一个很好选择。
hjbvbnvhjhjg
HCIP、软考相关学习PPT提供下载
绿豆BOX UI8版:反编译版六个全新UI+最新后台直播管理源码 最新绿豆BOX反编译版六个UI全新绿豆盒子UI8版本 最新后台支持直播管理 作为UI6的升级版,UI8不仅修复了前一版本中存在的一些BUG,还提供了6套不同的UI界面供用户选择,该版本有以下特色功能: 在线管理TVBOX解析 在线自定义TVBOX 首页布局批量添加会员信息 并支持导出批量生成卡密 并支持导出直播列表管理功能
vue3的一些语法以及知识点
西门子大型Fanuc机器人汽车焊装自动生产线程序经典解析:PLC博图编程与MES系统通讯实战指南,西门子PLC博图汽车焊装自动生产线FANUC机器人程序经典结构解析与MES系统通讯,西门子1500 大型程序fanuc 机器人汽车焊装自动生产线程序 MES 系统通讯 大型程序fanuc机器人汽车焊装自动生产线程序程序经典结构清晰,SCL算法堆栈,梯形图和 SCL混编使用博图 V14以上版本打开 包括: 1、 PLC 博图程序 2 触摸屏程序 ,西门子1500; 大型程序; fanuc机器人; 汽车焊装自动生产线; MES系统通讯; SCL算法; 梯形图; SCL混编; 博图V14以上版本。,西门子博图大型程序:汽车焊装自动生产线MES系统通讯与机器人控制