ROS路由器脚本文件编辑更新器
2011年,也就是去年3,4月份写的东西了
当时是帮一个朋友做的,现在这个东西已经没什么用了
在博客这里甩出来吧
其实,这个程序到底拿来干什么用的,
身为作者的我也不是十分清楚,而只是按照朋友口述的需求把程序做了出来。
这个程序的大概功能是:
有一种路由器叫:ROS,它的各种设置可以用脚本来描述
我的程序的功能就是提供一个可视化的界面来更新、解析、编辑、输出ROS路由器的脚本
程序分为2端:客户端,服务器端
客户端功能:载入,解析,编辑,输出本地ROS脚本,并可以连接服务器程序更新最新的脚本文件。
服务端功能:就是供客户端程序同步脚本文件之用。
开发环境:VS2008,C++,MFC
可执行下载:http://download.csdn.net/detail/stevenkylelee/4447126
源代码下载:http://download.csdn.net/detail/stevenkylelee/4447149
那种ROS脚本的“样貌”大概如下:
看起来挺乱的是吧,其实这种脚本的格式是很有规律的。
(至于什么规律,这里就不多说了,下载我的程序自己用记事本开打*.rsc文件仔细观察,不难就会发现)
值得一提的是,这种脚本对于中文有它自己的一套编码方式,
例如:字符串"\BD\A3\CF\C0\B7\A1\CD\E2\B4\AB"实际代表的是"剑侠贰外传"。
关于ROS脚本的中文问题,我在客户端写有相应的类和工具来进行编码和解码。
下图,是把一个ROS脚本文件拖曳到客户端界面后的样子
这个就是ROS脚本的可视化界面了。
ROS的一个脚本文件中,可以包含N个页面。
在菜单栏下,有一个Tab控件,用于动态地显示解析到的ROS脚本的所有页面。
上图查看的是queue tree设置页面。
ROS的大多数页面都是表示线性结构内容的,但queue tree页面表示的是一种树形结构。
因为MFC没有 树形+列表视图 组合起来的控件
我就只有使用ListView的第一列的内容的缩进来表示树形关系了。- -
随便说下,ListView上的”最大“,”最小“列名也是根据脚本内容动态解析出来然后创建的。
下图是显示 ip firewall mangle 页面内容的样子:
其实ListView控件最初是没有列和行的。
上图看到的内容,包括ListView的列头(一堆列名),
都是根据ROS脚本解析出来的结果动态创建的。
呵呵。观察ROS脚本找寻它的规则和格式,写解析算法,耗费了我好多精力和时间。
(当时其实也是想练手下刚学会的FSM思想)
用C#写会比C++简单,因为STL的string类并不很好用,而MFC的CString也好不到哪里去
它俩连最起码的Split都没有,害哥还得自己实现这个非常基础的字符串操作算法,日了。
MFC做界面是很蛋疼的,C#的Winform控件都有个Anchor属性,
这个属性的作用是当窗口大小发生改变时,动态地改变相应控件的位置和大小。
MFC中没有现成的东西实现这个功能,要实现这个功能的话,就只有自己写!
(随便说下,去年国庆节前,面试上海巨人集团,当时面试题就出了类似这样需求的一题,
我直接把这个项目,实现这个功能的那个类发给他们!
呵呵。当然,最后是拿到了offer,而我最终没有过去)
下图是服务器端界面,和客户端程序一样。
它也可以根据改变窗口的大小适当地调整其控件的位置和大小
前面也说了,服务器程序它的作用就是提供更新服务器。
所以,其实它没窗口界面也是可以的。
最后说明一下我的源代码吧
源代码有一个叫“SCL”的目录,SCL是Steven Class Library的缩写,哈哈。
这个目录放的是当时我自己写一个C++类库,以源代码的形式。
我自己的这个类库模仿了C#.net类库的设计
封装了Tcp通信类,文件映射类,字符串操作类(自己扩展了一些诸如Split等操作),
Ini文件读写类,网卡信息获取类,防Winform的Anchor属性的类 等。
当然,所有的类的实现,都是用STL或者Win32 Api的。
如果,你对我做的这个程序不太感兴趣,
也不妨看看我写的那些“自认为有可复用性的基础类”吧
说不定,对你会有一些帮助或启示。:)
转载于:https://www.cnblogs.com/StevenKyleLee/archive/2012/07/23/3170253.html
ROS路由器脚本文件编辑更新器相关推荐
- 简要叙述matlab的含义,1,简述MATLAB组成部分? 2,说明使用M文件编辑/调试器的方法和优点? 3,存储在工作空间中的数组能编辑吗...
匿名用户 1级 2012-05-17 回答 我也考这个....祝你好运 1,简述MATLAB组成部分? (1)开发环境(development Environment); (2)MATLAB数学函数库 ...
- [ROS] sh脚本文件,source : not found问题
新建一个脚本文件,在首行写上 #!/bin/bash 然后换行,写上想要source的bash文件,例如: source /opt/ros/kinetic/setup.bash 然后报错: xxx.s ...
- 传奇服务器脚本文件在哪个文件夹,传奇服务端各个文件夹目录结构详细说明表...
MirServer---传奇服务端主目录 DBServer---数据库网关 Hum.DB---角色数据库 Mir.DB---游戏数据库 MIr.DB.idx---游戏数据库索引文件(可删除每次启动会自 ...
- 海康visionMaster4.1二维码识别/检测之脚本文件的调试
关键词:脚本文件调试:海康visionMaster4.1:二维码识别 介绍脚本文件调试之前,先说一个"二维码识别"模块的有趣的点. Tips:"二维码识别"模块 ...
- VScode检测到#include 错误,请更新includepath。已为此翻译单元 禁用波形曲线//gcc : 无法将“gcc”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。
VScode检测到#include 错误,请更新includepath. 可能会遇到的问题: 1. VScode检测到#include 错误,请更新includepath. 2.gcc : 无法将&q ...
- 案例分享:Qt出版社书籍配套U盘资源播放器软件定制(脚本关联播放器与资源文件,播放器,兼容win7,win10和mac)
若该文为原创文章,转载请注明原文出处 本文章博客地址:https://blog.csdn.net/qq21497936/article/details/115919546 长期持续带来更多项目与技术分 ...
- 链接器ld程序的脚本文件u-boot.lds(二)
目的:了解链接器用到的脚本文件u-boot.lds. 在开始这篇博文之前,需要先了解一些GNU linker script的基本知识,可以参考博主的另外一篇分享<GNU linker scrip ...
- 解决VScode安装Babel转码器报错:无法将“cnpm“项识别为cmdlet\函数、脚本文件或可运行程序的名称的问题
解决VScode安装Babel转码器报错:无法将"cnpm"项识别为cmdlet\函数.脚本文件或可运行程序的名称的问题 报错结果如下: 解决方案 第一步:安装npm 点我安装np ...
- 【Windows包管理器(choco)】choco : 无法将“choco”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。请检查名称的拼写,如果包括路径,请确保路径正 确,然后再试一次。
问题描述 choco : 无法将"choco"项识别为 cmdlet.函数.脚本文件或可运行程序的名称.请检查名称的拼写,如果包括路径,请确保路径正 确,然后再试一次. 所在位置 ...
- STM32H7链接器脚本文件分析
一.链接器脚本文件的作用 1. 设置入口函数,ROM.RAM的起始位置及大小. 2. 对一些特殊的文件添加配置链接选项. 二..LD文件详解 以STM32H743XIHx_FLASH.ld 为例,增加 ...
最新文章
- LabVIEW保存、读取配置文件
- 遭遇Web print
- 面试官,别再问高并发了!
- php 计算几分钟_几天前 _几月前 几年前,php计算几分钟前、几小时前、几天前的几个函数...
- 关闭Outlook时最小化
- VTK:PolyData之TransformOrderDemo
- 数据库作业[定时执行任务]的创建
- C++ 模板的局限性以及解决01
- p1292监狱(动态规划)
- 有人培训设计模式,吾表示难以理解,因为根本没用
- Svn插件提交比较慢的解决方法
- 软件测试工程师简历项目经验怎么写
- android ios 在线图标生成器
- 生动理解java接口
- 垂直居中对齐四种样式
- IDempiere 富文本编辑器优化
- Sql的行列(纵横表)转换
- 从MapGIS K9到MapGIS 10到MapGIS 10.3 Server
- IE6下iframe里打开页面出现无法打开internet站点错误
- TechSmith Camtasia2022屏幕视频录像
热门文章
- 简体生僻汉字大全21418个-GBK编码中的汉字
- UEFI学习——使用gRT->GetVariable读取Setup选项值
- 利用canvas制作乱跑的小球
- VS2010 .net4.0 登录QQ 获取QQ空间日志 右键选中直接打开日志 免积分 源码下载
- 摄像机标定之四大坐标系之间转换关系详解
- 《现代控制系统》第四章——反馈控制系统特性 4.1 介绍
- [RQNOJ PID85]三个袋子 {快速幂 or 矩阵乘法}
- java小说网站源码_基于java的小说网站代码(全)
- python写入excel数据教程_python实现数据写入excel表格
- python爬取凤凰新闻_python爬虫凤凰网新闻