
新的一年, 新的开始!!!

2017年1月15日
改正了仿真的一些小BUG, 仿真结束时关闭声音, 仿真开始运行后才设置界面仿真模式等;

2017年1月18日
完善了I2C接口的1602液晶屏和2004液晶屏地址设置, 现在可以图形界面直接设置地址了;

2017年2月14日 晚上
增加了放缩尺寸比例, 现在可以 0.9 倍的放缩, 而不是以前那样2倍放缩, 更平滑了.
增加了放缩显示标尺, 方便和原始尺寸对比;

2017年2月18日 晚上0:35
增加了元素类按钮分页栏, 包括注释框, 后续再把变量从模块库移过来; 改正了指令拖放的一个小BUG

2017年2月20日
增加了TM1637 4位数码管模块, 完善了时钟类(不带小数点)数码管的仿真

2017年2月23日 晚上 修正了8*8LED的一个问题, 两个引脚弄反了.

2017年2月28日
OK 模块的删除都替换成放到垃圾桶，不再有单独的删除按钮
OK 引擎类不用折线, 改成了大体的箭头
实现了重命名变量和模块时, 指令和表达式部分的名字也自动调整

2017年3月2日
加上了编译信息提示，占用的ROM，RAM，超出范围报警
增加了新功能提示页面, 用户启动软件后就会自动显示 (可以勾选设置下次不再显示)

2017年3月3日 1:22
折腾一晚上终于支持了DS1302时钟模块的仿真， 。。。

2017年3月7日
改正了1602液晶屏地址为0x3F不可用的BUG，现在I2C接口的液晶屏应该是都可以使用了。

2017年3月9日 23:40
增加了循迹传感器

2017年3月12日
字符串模块增加了比较功能

2017年3月13日
增加了arduino mini控制板

2017年3月22日
增加了步进电机的正反转步数功能，可以转过指定的步数后停止。

2017年3月23日
改正了7088点阵的仿真和实际运行图片坐标和行列不对应的BUG。
完善了随机数发生器，现在是真正的随机数了；增加了“当前数据”属性；

2017年3月24日
增加了启用和禁止模块事件的功能，可用来开发抢答器等。

2017年3月25日 23:17
周六,下午忙了半天终于加上了北斗定位模块,目前可以解出经纬度信息了.
后续再加上经纬度存储计算变量模块,可用于位置比较等.

2017年3月26日 晚上23:48
增加了颜色变换模块， 可以分解色度信息为红绿蓝三个分量

2017年3月28日
初步增加了模块的图片提示，改进了以前的信息提示，可以鼠标拖动上下查看全文；
增加了4位数码管（2个595驱动型号）

2017年3月31日
界面的按钮样式改了下。默认为灰色
增加了软件自动检查更新的功能，每周检查一次

2017年4月2日 清明节
增加了频率输出模块，通过硬件定时器可以输出很高频率的波形

2017年4月3日
实现了事件和用户自定义函数的折叠功能,点击头部则会自动折叠和展开
增加了数据映射器, 对应arduino编程中的 map 函数
实现了串口通信模块的仿真功能, 打通了串口助手虚拟桥接到仿真内核及数据收发通信;

2017年4月4日
增加了模拟量温度电阻, 增加了震动传感器元件

2017年4月7日
此版本增加了用户修改界面信息功能（定制化）

2017年4月9日
周末增加了卫星导航(北斗)模块经纬度数值解析, 加上了距离和方位角的计算模块, 
初步增加了北斗模块的仿真功能, 后续再改成图形模式拖动模拟设置经纬度;

2017.4.12 0:36....
修正了北斗定位模拟器的BUG, 数据不再有偶尔的异常现象; 晚上调试地图显示坐标失败...

2017.4.12
增加了串口模块发送换行符指令; 修正了PWM模块仿真正常, 下载出错的BUG

2017年4月12日 晚上23:23
增加了2004液晶屏的4位并口模式和8位并口模式; 改正了1602的8位并口不工作的BUG

2017年4月13日
实现了空指令和未设置参数的指令提示功能, 并自动移动到出错指令, 界面更友好;
增加了中位值滤波器

2017年4月15日
增加了指令块收起和展开存储功能, 收起之后, 下次再打开时也会保持为收起状态;
增加了HX711称重传感器

2017年4月16日
增加了不用中断和定时器的超声波模块, 任意两个IO口就可以读取超声波距离了.

2017年4月17日
组件库模块加上了简短说明格式, 显示在模块名称的下方, 不再放到名称上显示了.

2017年4月18日
增加了索尼PS2手柄元件, 加上了仿真功能;

2017年4月23日
增加了循迹模块, 土壤湿度传感器
23:35
初步增加了波形显示程序

2017.4.27
蜂鸣器和扬声器的仿真加上了图形效果
界面深色模式和浅色模式可以选择了；
22:42 增加了dht11温湿度电路板模块；
0:51 增加了旋转编码器模块，非常稳定，不再出现抖动跳数现象；

2017年4月29日 51放假第一天
这个版本的版本号改为了2.1, 因为修改了很多细节:
1) 一些模块的图标换成高清;
2) 实现了浅色模式效果调整和颜色适配;
3) 隐藏辅助模块的名称和功能;
2017年4月30日
4) 面包板始终处于所有模块的底层;
5) 改正了面包板连接同名端口时软件卡注无响应的BUG;
2017年5月1日 17:43
6) 初步升级了面包板... 还有个小问题. 就是两个Line类型悬空端口连接时, 有时需要交换主从链接
2017年5月2日
7) 已彻底完善了面包板的使用方式；
8) 频率发生器支持了直接设置频率输出指令；
9) 鼠标中键（滚轮键）按下可以将界面放缩恢复到正常状态；
10) 解决了软件串口发送有时丢包的问题

2017年5月2日 23:36
模块库支持用鼠标直接拖模块到界面中(以前是需要点击) 这样指令,变量,模块的添加操作就完全一致了;

2017年5月9日
模块基本全部替换为效果图, 不再是以前的实物图了.
元件类会隐藏端口, 看上去更自然; 模块类端口则会显示一个灰色方框;
用到串口通信的模块, 下载时会提示用户先断开模块的连接, 防止下载冲突;

23:51
增加了很多模块的实物图;

2017.5.10
定时器增加在过程中修改定时时间间隔, 定时时间可以动态设置了;
鼠标放在端口上, 显示出连接的目标端口名字;
点击下载时内部先打开串口测试, 打不开的话, 提示用户先关闭其他串口软件
主控板使用了 D0D1端口(串口), 那么在软件里点击下载时给出提示信息, 提示先断开串口模块;
模拟量输出模块类拖进来时系统提示需要连接下拉电阻;
增加了雨滴传感器, 模拟量输出

2017.5.10 23:43
今晚分离出来之前的上位机开发模块系列, 新软件初步命名为Carto
增加了模块库鼠标点击时才切换列表的选项, 以前是鼠标移动时自动切换;
模块库详情栏移到了软件右边栏, 并增加了模块照片的显示(以前只能先添加模块再看图片)
定制版改成了外部传参数启动linkboy的形式, 而不是通过配置文件去设置...(普通用户不需要关注这个改进)

2017.5.11 23:40
优化了串口助手软件界面布局, 可自由放缩

2017.5.19 0:44
改进了表达式编辑器, 终于可以先选择变量, 再选择对应的运算了. 
目前有两个BUG: 函数形参未处理int和bool类型, 无法实现void状态下的变量选择; 
扩展变量类未处理类型, 可能会在void类型下出现;
下一步是表达式界面升级, 用UI指令图代替目前的列表形式, 和软件界面的UI协调一致;

2017.5.19 这两个问题已经改正..

2017.5.20 改进了引擎类的连接, 当系统中只有一个匹配关系时自动连接;

2017.5.21 23:11 表达式编辑器完善了int32 -> bool的自动编辑处理;

2017.5.22 23:03 改正了模块高亮偶尔不显示的小BUG
2017.5.23 表达式编辑系统全新升级, 实现了图形化指令界面显示, 不再是之前的列表控件+文本;
2017.5.25 初步加上了音效, 鼠标连接指令时;
2017.5.25 打开当前文件夹按钮， 会自动选中当前文件
2017.5.26 0:19 增加了小号面包板

2017.5.27 0:47
没有接口的元件自动隐藏对应的扩展区域;
arduino主板系列重新改背景图片, 去掉了边缘空白, 替换了原来的贴片阻容素材;
增加了禁用 "串口下载自动预检查" 功能.

2017.5.28 21:47
增加了元件类的左右翻转功能;

2017.5.30 0:44
增加了端口连线的过渡点, 可以鼠标点击建立过渡点, 实现连线曲线的任意路径设置;

未解决之问题:
1:暂不能显示连接过程中的过渡点
2:上拉电阻需要加上连线起点提示
3:连线过程中需要显示单击和双击功能提示
4:应该尽量全部用line代替总线, 以后逐步隐藏总线(arduino系列)

2017.5.31 以上问题已解决
实现了串口助手的中文信息显示; 字符串模块合并中英文添加字符，统一为GB2312；

2017.6.1 0:06
今晚初步实现了12864显示数字， 竖屏取模；想到图形显示框架需要大改：
1 屏蔽横屏取模（7920系列），屏幕接口set get存取为字节（而不是双字节）；
2 取模方式改为竖向一条线到底，然后下一列；
3 图片编辑器的列数不限于8的倍数；
4 图形引擎只保留竖向取模函数，删除横向相关函数；
5 图片变量区分出常量和变量，用两个图标表示，变量不可编辑；

2017.6.2 昨晚弄到半夜1点, 屏幕还是有问题, 不稳定. ...折腾半天发现是端口需要加限流电阻...
还是改成横屏取模了;

1 列数可大于255;
2 加入字体类型信息 - 数字, 字母, 中文
3 改正字体编辑器的各种小BUG
4 仿真
5 I2C接口屏幕
6 游戏框架

2017.6.4 2:04 周六一天把点阵字体做好了, 可以在12864液晶上显示中英文字体, 可以混合显示;
下一步: 
OK 界面显示字体预览需要缩小为2像素或者单像素形式
OK 界面放缩平移
字体编辑器增加导入自定义字体文件和导出自定义字体文件功能;
OK 仿真

2017.6.5 23:59 实现了12864液晶屏的图形显示仿真;
2017.6.7 23:53 点阵图片和字体合并成功, 相关模块接口升级完成;
实现了自定义字体的保存和加载

2017.6.8 0:10 增加了 添加我的专属主板 功能(位于模块库arduino主板一栏), 这样用户可以自己添加主板;

修复重要问题: 
传感器检测频率为默认50毫秒, 涉及避障, 循迹等场景无法做到实时. 现在改为了1毫秒实时检测;

2017.6.9 改正BUG: 删除模块时清除模块端口产生的所有过渡点;
点阵字符显示器集成了一个默认字体, 用户可不设置字体, 直接显示字符

2017.6.10 18:21
延时器和定时器模块在仿真时会显示出当前的延时时间进度, 并配有一个倒计时进度条显示;
修正了时钟模块仿真时, 星期属性总返回0的BUG

2017.6.11 23:10
增加了可变端口类模块, 兼容arduino原生库, 很容易做流水灯了.
改正了1602仿真时清空第一行会把第二行前四个字符也清空的BUG

实现了指令序列的多选和同步拖动功能, 初步增加了选择框;

2017.6.14 0:19
实现了指令序列的复制和粘贴功能... 
1) 复制粘贴的图标需要修改, 动作效果需要设计;
2) 放缩状态下框选不同步;
3) 是否需要增加历史版本记录??? 操作序列合并到同一个文件中, 既可用来做备份, 也可给用户记录实现过程

改正了界面放缩时，指令选择框里的指令变模糊的问题

2017.6.14 22:43
改正了放缩状态框选异常的BUG
2017.6.15 0:42
按钮类加上了按下时的图片切换;
选中流程指令时识别头尾, 并自动包含完整流程指令; 

(到目前为止指令复制粘贴功能基本开发完成)

增加了UNO主板的备用电源端子

2017.6.20
改正了运算表达式的一个小BUG，
增加了SH1106液晶屏的i2c接口模块，测试通过；

2017.6.21 0:21
改正了RGB彩灯的BUG， 共阴共阳
新增了一种红色共阳彩灯模块

2017.6.22 20:03
增加了HC06蓝牙模块
计时器和倒计时器增加了仿真效果， 可以显示出当前的计时时间；

2017.6.27 21:14
增加了2560的硬件串口1,2,3，改正了内部ROM起点问题（0x40换成0x80，防止占用高位中断ROM）
新建文件默认文件名加上了当前时间信息
增加了微动开关元件

2017.7.5 21:20
增加了TB6612FNG电机驱动板，集成了转速调节功能；以后将去掉原来的转速调节器

2017.7.17 23:05 增加了开机提示模式选择对话框的隐藏功能, 可以在系统设置中设置为隐藏;

改正了表达式反复编辑后报错的BUG

2017.7.27
增加了MEGA328直插和贴片封装元件, 增加了TB6612FNG芯片, ... 准备开始一个新的方向

2017.7.29 23:58
解决了一个BUG, bool表达式编辑时未屏蔽非法类型的表达式条目;

2017.8.6 23:30
晚上解决了一个重大BUG, 在非简体中文环境下软件也可以运行了, 现在理论上可以在任何语言的电脑上运行;
主要是全部改为了文件GB2312格式读写和读取后预先替换 \r\n为\n

2017.8.8 18:27
导线连接时可以通过滚轮设置导线颜色了

2017.8.10
添加和移动指令时加入了动画效果, 相关指令会平移到目标位置;

2017.8.10
增加系统配置窗口, 可以设置软加速器参数, 设置自定义操作系统路径等;

2017.8.13
升级了新版本, 代号为甜圈彩虹, 模块库条目按照类别设置为不同的颜色

2017.8.14
复制粘贴和备份按钮放到了右下角, 选中指令时才出现

2017.8.16
除了可以双击添加指令外, 指令的左侧多了添加按钮, 点击后也会添加一个新的指令.

2017.8.16
改正了一个存在已久的问题, 就是表达式的左值可改变, 需屏蔽模块函数返回值; 
并且模块属性默认为只读变量(加入了写权限字段)

2017.8.17 21:29
增加了模块示例教学系统, 拖进来模块后可以点击面板栏的"示例"按钮打开当前模块的示例文件列表;

2017.8.19 17:01
仿真按钮的样式在仿真中和停止仿真时设置为不一样了, 分别为三角形和正方形;
"系统空闲时事件" 改为了 "反复执行"

2017.8.26 17:01
这段时间终于初步加上了模拟仿真2.0功能, 下一步是模拟传感器和环境的交互系统

实现了封包操作的完善性, 封包模块同步拖动, 可隐藏指定模块; 修正了从空文件启动另存的一些BUG

增加了底板类, 用于封装扩展板外形. 目前尺寸通过手工编辑实现. 测试了第一个扩展板8*8点阵, 效果不错

初步加上了2560的可变端口模块

仿真2.0 增加了基础交互功能, 下一步: 增加高级交互(环境感知), 增加模块万能胶,

2017.9.7 增加了数组模块

2017.9.17 改正了宏定义作用域一直存在的问题, 退出两层文件后自动失效, 这样模块的添加顺序没限制了;

2017.9.20
封包属性完善了, 隐藏外形名称和过渡从节点, 仅过渡节点占用串口端口时不出现提示; 增加了nano-uno转接板;

2017.9.21
增加了查看系统自带驱动按钮, 下载时找不到串口号可以点击打开驱动文件夹;

2017.9.23
完善了封包组件拖动时碰撞处理, 不会再被碰撞推散
优化了指令右键多选操作, 现在可以容易选中一条指令

2017.9.25 23:16 隐藏了arduino下载时的芯片选择和波特率选择下拉框;
补齐了主控板的RESET， VIN AREF等辅助端口，这样定位针脚时不易数错

2017.9.30 此版本开始改为了2.4 因为提取出了教学版和标准版的启动器

2017.10.8
假期, 没做什么. 晚上主要升级了模块库, 初步实现了直接定位M文件, 以后逐步从B文件切换到M文件
增加了一个版本转换器, M文件编辑器增加了一些相关属性设置框.
为将来的模块驱动共用打下基础, 以后可以方便添加同类模块了, 后续再完善总线到端口的映射机制;

2017.10.10
模块函数配置参数加上了 old 属性，可以用来标记过时的函数，不显示在模块指令选择框中

2017.10.13 0:31
增加了DFPlayer MP3播放模块; 界面工具栏按钮换成了带有颜色的; 模块同名端口连接时改为保存序号(VCC GND);

2017.10.13
新增一种595驱动的4位数码管模块;

2017.10.15 0:58
舵机的"设置角度为"指令标记为过时, 不再提供给用户, 用"角度"属性取代, 可读可写

2017.10.15 15:56
周末给一些模块增加了实物图, 现在大部分模块都有实物图了

2017.10.18
增加了低电平点亮的LED元件类；高电平表示按下的按钮类，支持仿真

2017.10.19 0:24
优化了STM32上的虚拟机字节码, 速度变快了
端口配置增加了扩展属性，用于指示是基于名称还是基于索引来保存连接信息，防止同名冲突的端口

2017.11.1
增加了2560主板对红外遥控器和超声波测距模块的支持
2560编译信息提示,按照真实ROM和RAM空间尺寸提示
增加了舵机的转动速度，可通过设置步进时间指令调节转速。
2560现在可以驱动舵机了，增加了定时器库即可
目前为止，基本上2560主板可以驱动UNO板的所有模块了

2017.11.5
周末把ESP8266调试了一下, 串口助手针对AT指令升级, 集成了ESP8266的指令集;
下一步是把ESP82665加入到软件中

2017.11.6 0:20
增加了nano的通用扩展板... 用于学校科普套件教学

改正了串口通信发送中文单个字符的问题, 以及字符串模块的添加单个中文字符问题

2017.11.10
微调了超声波模块的转换参数, 之前误差比较大(5厘米左右), 现在实测误差很小了.

2017.11.14
增加了条件循环指令, 条件成立则反复执行, 不成立则退出循环

2017.11.15
修正了软件测量方式的超声波模块测距精度;
优化了编译器中断函数空间分配方案, 现在可以分别指定(默认为50字节), 减小了RAM的占用
用户程序太大导致ROM或者RAM超出范围后, 会有红色背景闪烁提示

启动界面去掉了快捷主板添加, 重新换回了之前的提示信息, 增加了信息类型, 随机渐变出现
增加了正常模式PWM和快速PWM两种类型模块

VCC6V-9V端口现在可以连接到5V端口了, 用于特殊情况下的使用
重新设计了虚拟端口类模块的外形

终于增加了ESP8266模块, 目前可以实现路由器功能, 手机连接后可以收发信息

2017.11.19 0:21
改变了启动页面的图案样式, 版本号升级为 2.5 物联网开发版

增加了1602和2004液晶屏I2C接口模式的开关背光指令

2017.11.19 18:14
完美升级了旋转编码器的底层驱动, 之前的旧版本旋转时会有跳动以及偶尔丢步等问题, 
改进驱动后非常流畅和稳定. 通过状态锁实现跟踪编码器旋转状态变化

并且移植到了2560主板, 现在编码器模块可适用于各种常见主板 (之前旧版软件2560主板不支持旋转编码器)

2017.11.19 23:33
增加了字符串变量的判断是否相等操作, 可以直接用==和!=进行字符串比较

3:29 实现了射频卡读取ID的功能, 现在可以程序界面区分卡号了.
初步调试了底层驱动的选卡, 验证密码等功能, 为下一步对射频卡内部存储区读写功能做准备

下载结束后显示一个高亮提示效果, 点击鼠标回到正常界面

2017.11.21
改正了一些小BUG, 如点击仿真按钮也弹出 "下载完成" 问题等

ESP8266可以发送英文信息给手机了

2017.11.21 1:31
调试北斗模块接收时间日期数据包
解析出一个目标包之后, 不要忘了清除长度! 
否则只能最大长度取余数等于0之后才会开始下一次监听, 导致丢失若干数据包
//length = 0;

此BUG已解决. 现在可以提供年月日时分秒数据给图形界面用户使用了.

2017.11.22
增加了nRF2401的仿真模式(尚未添加仿真交互按钮, 仿真时无法触发数据接收事件)

2017.11.23 21:41
改正了循环条件指令从下往上选择时报错的BUG
改正了输出端口仿真无显示的BUG

2017.11.25
增加了另一个顺序的声音传感器
改正了射频卡驱动程序的一个BUG
改正了 设置自定义指令为空白后保存文件，无法再打开的BUG

2017.11.26
时钟模块DS1302在仿真时可以修改时间了 (旧版本修改时间指令没有效果)

2017.11.28 1:54
服务中心增加了模块列表读取和图片显示

2017.11.28
改正了一个BUG，温湿度模块读取数据卡住，现在好了。并且读取数据间隔没有限制

2017.11.30 22:08
改正了7088点阵的错误

2017.12.5
增加了DHT22(AM2302)温湿度模块

2017.12.7 服务中心增加了模块详情功能, 点击会显示清晰图

2017.12.10 2:20
升级了新版的信息显示器, 把数字向前显示作为默认; 示例库中的所有信息显示器
相关例程都更新了. 新增信息显示器数字清空提示界面, 防止用户忘记清空

2017.12.12
改正了服务中心在部分电脑上无法运行的BUG，主要是FormSizeChanged可能在构造函数中就被调用

2017.12.13 增加了一些不支持仿真的模块，形式上支持仿真了

2017.12.15 0:08 增加了德飞莱的底板，增加了L293D马达驱动底板

2017.12.18 0:24
增加了马达的设置功率指令，不再需要转速调节器了。下一版本会隐藏转速调节器，
不再开放给用户使用；

2017.12.19 22:42
初步增加了A4988步进电机驱动模块，暂不支持加减速

2017.12.20
改正了一个严重BUG，两个常数进行加减乘除运算时可能会截断导致结果错误，
编译器增加了常量S后缀，强制将常量归为int32类型，解决了这个问题

2017.12.20
完整实现了步进电机A4988的驱动，现在可以独立驱动多路步进电机，并且每路步进电机都具有自己的加减速过程，
各个步进电机的运动互不影响。

马达类驱动都尽可能改为了不用PWM针脚方式

马达现在只允许连接到马达驱动模块上了，不可以直接连接到主控板的针脚; 改正了取消加减速无法停止电机的问题

2017.12.27
更新了示例程序，基于遍历文件夹程序库实现；

2017.12.27 音乐播放器播放时相同音增加了一个断点效果



