ModMaster1.0.0.rar MODBUS 主站调试工具
使用JSON格式的文件描述设备的modbus寄存器模型,调试工具加载模型后,可以对寄存器进行读写。支持uint16_t,uint32_t,uint64_t,int16_t,int32_t,int64_t,bits,hex,float,double,hex等多种数据类型,支持格式化显示,支持值映射,如“开”,“关”等
TStart.exe
开源地址:https://gitee.com/891062079/TStart
一个简洁的快速启动软件
1. 支持靠边隐藏
2. 支持开机自启动
3. 支持文件,文件夹,快捷方式的拖放
4. 支持拖放排序
5. 支持启动项目分组
6. 支持自定义启动项目的图标
7. 支持自定义标题栏
8. 支持右键打开,管理员方式运行和打开文件所在位置
9. 支持多种列表视图样式
10. 支持移动项目分组
11. 使用json格式文件存储项目数据
HEX文件合并工具
开源地址:https://gitee.com/891062079/HexMerge
HexMerge
介绍
hex文件合并工具,支持输入多个文件直接合并
使用说明
e.g: HexMerge -i loader.hex app.hex -o out_merge.hex
Press any key to exit...
连分数计算器
# ContinuedFraction
#### 项目介绍
连分数计算器 支持连分数和小数输入,高精度小数转连分数,无精度损失,用于获取小数在一定范围内最接近的分数
例如π的高精度转连分数
str=> 3.14159265358979
num=> 3.14159265358979000000000000000000000
ctf=> [3;7,15,1,292,1,1,1,2,1,3,1,12,2,4,1,1,3,2,2,1,18,1,2,2,1,7,2,2]
1=> 3.00000000000000000000000000000000000 3 3/1
2=> 3.14285714285714285714285714285714286 7 22/7
3=> 3.14150943396226415094339622641509434 15 333/106
4=> 3.14159292035398230088495575221238938 1 355/113
5=> 3.14159265301190260407226149477372968 292 103993/33102
6=> 3.14159265392142104470871594159265392 1 104348/33215
7=> 3.14159265346743670552045478534915632 1 208341/66317
8=> 3.14159265361893662339750030141060162 1 312689/99532
9=> 3.14159265358107777120441930658185778 2 833719/265381
10=> 3.14159265359140397848254241421927966 1 1146408/364913
11=> 3.14159265358938917154368732170690821 3 4272943/1360120
12=> 3.14159265358981538324194377730744861 1 5419351/1725033
13=> 3.14159265358978910556761228975786423 12 69305155/22060516
14=> 3.14159265358979009430798477470203822 2 144029661/45846065
15=> 3.14159265358978998813773682909318658 4 645423799/205444776
16=> 3.14159265358979000750767514045607416 1 789453460/251290841
17=> 3.14159265358978999879486079142367388 1 1434877259/456735617
18=> 3.14159265358979000014512509093352444 3 5094085237/1621497692
19=> 3.14159265358978999997843356720301190 2 11623047733/3699731001
20=> 3.14159265358979000000839600248412328 2 28340180703/9020959694
21=> 3.14159265358978999999968162106153623 1 39963228436/12720690695
22=> 3.14159265358979000000001193310441815 18 747678292551/237993392204
23=> 3.14159265358978999999999517378526962 1 787641520987/250714082899
24=> 3.14159265358979000000000056801156993 2 2322961334525/739421558002
25=> 3.14159265358978999999999978607241192 2 5433564190037/1729557198903
26=> 3.14159265358979000000000002025128805 1 7756525524562/2468978756905
27=> 3.14159265358978999999999999894805542 7 59729242861971/19012408497238
28=> 3.14159265358979000000000000024695141 2 127215011248504/40493795751381
29=> 3.14159265358979000000000000000000000 2 314159265358979/100000000000000
FontMaster
这是我的一个开源软件,开源地址 https://gitee.com/891062079/FontMaster,欢迎拍砖~~~
1、字体设置
FontType 字体类型设置,可以选择系统字体或者其他字体,在选择系统字体的时候,可以通过Font属性选择字体名称,在选择其他字体的时候,可以通过Font属性选择ttf字库文件的路径。
Font 字体名称或者字体路径设置。
Size 字体大小设置,一般情况下,字体大小和字体高度是相同的。
Blod 字体粗体选择。
Italic 字体斜体选择。
CharCode 字符编码选择,影响字符集的大小,也影响生成字库的编码顺序。可以选择MBCS多字节编码方式,此方式一般为计算机本地化后的内码,或者选择Unicode编码方式,此方式编码的区间更大,可以兼容更多的字符集。
2、取模设置
Rotate 取模顺时针旋转角度,可以选择0,90,180,270度。注意这个设置不影响生成字库的字模宽度!生成字库的字模宽度始终为未旋转之前的宽度。
FlipX 取模X方向镜像。
FlipY 取模Y方向镜像。
Padding 分别设置在取模上下左右额外扩充的空白数。
3、编码设置
SourceType 选择编码的设置方式,可以选择分段编码或者索引表的方式。通过Source设置具体的分段或者索引表
Source 打开编码内容设置对话框,设置编码内容。在分段编码时,设置分段编码的范围,以“,”分隔,如 “0x0020-0x007F,0xB0:A1-0xF7:FE”。在索引表方式时,直接输入需要编码的字符串即可,如“测试编码”。在输入完成后,可以使用排序查重对输入内容进行检查。
BitsFirst 设置字节内编码顺序是MSBFirst或者LSBFist。
BitsPolariry 设置字节内编码的位极性,可以为高有效或低有效
Round 设置编码的回转方式,可以设置为在一行编码完成后回转到下一行编码或者在编码完成一个字节后,就回转到下一行编码,最后一行编码完成后,再次回到第一行编码,如此往复。
ScanX 水平扫描方式,可以选择“从左到右”或者“从右到左”。
ScanY 垂直扫描方式,可以选择“从上到下”或者从下到上”。
ScanXY 设置扫描先后顺序,可以选择“先水平后垂直”或者“先垂直后水平”。
4、数据结构
typedef unsigned char uint8_t;
typedef unsigned short uint16_t;
typedef unsigned long uint32_t;
typedef struct tagFlHeader
{
uint8_t magic[4]; /* 'U'('S', 'M'), 'F', 'L', X---Unicode(Simple or MBCS), X: Version */
uint32_t dwFileSize; /* File total size */
uint16_t nSection; /* total sections */
uint16_t YSize; /* height of font */
uint16_t wCpFlag; /* codepageflag 每个bit位表示一个字符集。即最多可表示16个字符集。*/
uint16_t nTotalChars; /* 总的有效字符数 */
uint8_t reserved[2]; /* reserved[0], 'U'--Unicode, 'M'--MBCS */
} FL_Header;
typedef struct tagFlSectionInfo
{
uint16_t First; /* first character */
uint16_t Last; /* last character */
uint32_t OffAddr; /* 指向的是当前SECTION包含的 FL_CHAR_INFO第一个字符信息的起始地址 */
} FL_SectionInfo;
typedef struct tagFlCharIndex
{
uint16_t Width; /* 字符点阵的像素的宽度 */
uint32_t OffAddr; /* 当前字符点阵数据的起始地址 */
} FL_CharIndex;
IARkg14_Unis 1.4版本 最新版
IARkg14_Unis 的最新版本 IAR注册机,支持最新版本的IAR注册
ljson to struct 源码
# ljson 是一个json到struct的解析,输出库
1. 基于c语言开发
2. 基于自定义堆栈设计,不使用动态内存分配,不使用递归
3. 解析模块在解析json时调用callback
4. 在callback中将数据存入C结构体
5. 独立的输出模块,支持NULL缓冲获取输出所需长度
6. 支持从json数据自动生成C结构体,并生成数据关联结构。
脚本串口调试助手
1、软件是基于c#编写
2、软件使用unilua来支持lua脚本
3、串口自动检测,点击串口选择组合框,在下拉列表显示的时候,会自动枚举本机串口,只显示本机存在的串口,监视USB转串口移除,自动关闭串口
4、串口打开以后,再次选择串口或者修改串口配置参数,程序会自动关闭串口,修改参数,然后再自动打开串口
5、支持接收转向文件,此时后面关于接收的设置也还是有效的
6、支持显示接收时间,显示十六进制,显示发送数据,显示接收数据选择,默认选中显示接收数据
7、支持发送文件数据,此时后面关于发送的设置,仅有发送十六进制有效
8、支持发送完成清空,此选项在发送文件数据,发送执行脚本的时候均无效
9、支持发送十六进制
10、支持发送执行脚本,脚本使用lua编写,从c#导出read,write,send,sleep等函数可以在脚本中使用
11、支持输入立即发送,用于实现类似超级终端的便捷输入
12、支持数据帧头,数据帧尾
13、支持数据校验,XOR异或,ModBusLRC,ModBusCRC,SUM16校验和,CRC16校验方式
14、支持周期发送,1~99999毫秒任意设置的周期发送
脚本串口调试助手源码
1、软件是基于c#的
2、软件使用unilua来支持lua脚本
3、串口自动检测,点击串口选择组合框,在下拉列表显示的时候,会自动枚举本机串口,只显示本机存在的串口
4、串口打开以后,再次选择串口或者修改串口配置参数,程序会自动关闭串口,修改参数,然后再自动打开串口
5、支持接收转向文件,此时后面关于接收的设置也还是有效的
6、支持显示接收时间,显示十六进制,显示发送数据,显示接收数据选择,默认选中显示接收数据
7、支持发送文件数据,此时后面关于发送的设置,仅有发送十六进制有效
8、支持发送完成清空,此选项在发送文件数据,发送执行脚本的时候均无效
9、支持发送十六进制
10、支持发送执行脚本,脚本使用lua编写,从c#导出read,write,send,sleep等函数可以在脚本中使用
11、支持输入立即发送,用于实现类似超级终端的便捷输入
C语言模拟实现 try catch
在C语言中,使用goto和标签的方式模拟try catch的功能,使用setjmp和longjmp方式模拟try catch的功能,两种方式都可以使用,setjmp的方式可以支持try catch嵌套,goto的方式不支持嵌套,但是jmpbuf的开销是比较大的,在MDK ARM下为typedef __int64 jmp_buf[48];欢迎下载测试
ProcessModule
做“绿色”程序必须的工具。最近做QT程序,苦于找不到合适的工具用来提取程序用到的所有动态链接库(DLL模块),一想运行需要扫描的程序原理也很简单,就是遍历进程,遍历模块,获取模块路径,提取所有文件,搞定.另外我这里也测试了CShellContextMenu这个类,用于实现调用系统资源管理器的右键菜单,小时牛刀,还不错的说