TCL语言在Doxygen中应用的一些记录

来源:互联网 发布:算法帝国 编辑:程序博客网 时间:2024/05/18 01:22

在中兴实习的半年,接触最多的也就是tcl,早期作为学生在校园里面基本没有机会接触到这个语言,不过tcl确实在对字符处理上面有很多的优势,在自动化测试的应用应该还是很广泛的。对于doxygen,相信很多人都不陌生,熟练C/C++的人应该经常使用到这个软件,常被论坛中的人称作及格开源比较良心的软件。

早期的doxygen对于tcl语言是不兼容的。貌似在最新版本开始已经兼容了很多语言,其中就有tcl语言。就自己在使用过程之中的一些问题的发现和解决方法写下来,方便自己以后查询,当然如果有人有幸看了有帮助,也很高兴。

关于doxygen的配置(网上非常多

 


注意事项:

1.首页的Scan recursively(递归查询目录下面子文件),很多时候会忘记勾上

2.编码问题,chm不能中文搜索(非常让人头疼的问题)

首先要确定自己文档编码,如果想要生成CHM电子书,最好转换为GBK

其中有一个问题,就是生成的CHM不支持中文的全文搜索。原因查看了很多资料发现还是编码问题。Doxygen中有三处编码  1.doxyfile,也就是配置文件 ,2.INPUT_ENCODING,也就是DoxyGen需要解析的输入文件的编码,3.chm_index_encoding 生成的chm文件索引编码。按照你需要设置,一般来说GBK或者GB2312  

 但是资料表示HHW不支持UTF-8,仅支持ISO- 8859-1或者windows-1252编码。而Doxygen生成的右边界面统一是UTF-8,这自然出现了不支持中文全文搜索。而在这种情况下做全文搜索,理论上只能搜索英文。

无奈,我们的解决方案只能是重新编译DoxyGen代码,为了满足搜索,只要保证右边的页面文件不是UTF-8即可。 我们首先修改writeDefaultHeaderFile这个函数的代码,将其charset=GB2312。然后在 TranslatorDecoder的构造函数中修改m_toUtf8 = (void*)-1;即屏蔽文本写入时最终的转换函数。最后删除INPUT_ENCODING的设置或者输入UTF-8。这样会使DoxyGen认为我们 的文本是UTF-8的,从而不用进行转换。生成替换原始的DoxyGen即可。

另外需要补充的是,还有一种方案是不用修改作者的源代码,但是需要将DoxyGen生成的右边的HTML文件使用工具(如iconv)手工转换成GB2312,然后再使用HTML Help Workshop生成

最后,doxygen是一个开源项目,并且支持vs2005项目,这样一来,如果你觉得哪里不顺手,完全可以把代码下载后自行编译。虽然我感觉doxygen的代码写的不能算是perfect,但是对于一个这样的工程,我们无论如何都需要一种敬意。祝好运~

这样,基本上就能够用doxygen生成漂亮的文档了。代码方面,doxygen支持多种格式的注释风格,根据manual选择自己喜欢的就好。

(以上两种方法为网友提供)

3.对于tcl语言的编写规则

我尝试了很长世间,确定所有的C的规则它都可以使用,举个例子:


#noteBeging===================================================

#函       数:*******

#描       述:配置***,及相关的参数

#输       入:

#  -dut*******

# -tunnelid*******

#  -tunnelmode************************

# -sourcev6_tunnel************************

#  -destv6_tunnel************************

#  intfaddrv6_tunnel************************

#   -maskv6_tunnel************************

#  -vrf************************

#  -addconfig************************

#   -help************************

#输       出:************************

#作       者:******

#实       例:set buf[::rosng::Grev4v6TunnelConfig -dut $DUT1\

#                                                  -tunnelid 1\

#                                                  -soure 1.1.1.1\

#                                                  -dest 1.1.1.1\

#                                                  -intfaddr 100.0.0.1\

#                                                  -mask 255.255.0.0]                                                 

#全局配置模式输入interface v6_tunnel1的回显值为:[lindex $buf[expr[lsearch $buf 0]]]

#noteEnd========================================================

 

#noteBeging===================================================

##@brief 配置gre隧道,及相关的参数

#@param   -dut:配置Grev4v6TunnelConfig隧道的设备

#@param   -tunnelid:隧道的id号,如果为空,则为默认值1

#@param   -tunnelmodeGrev4v6TunnelConfig隧道的模式,具体可以选择"0 0"或者"ipv6ip 6in4"

#@param   -sourcev6_tunnel隧道的源地址或者源接口(自动根据sourceipv4/ipv6地址或者接口选择)

#@param   -destv6_tunnel隧道的目的地址(自动根据destipv4/ipv6地址选择相应的模式)

#@param   -intfaddrv6_tunnel隧道接口的ip/ipv6地址

#@param   -maskv6_tunnel隧道借口的掩码

#@param   -vrf:隧道接口的vrf

#@param   -addconfig:默认为0:当为1时,增加ip地址,当为0时,删除隧道接口原ip/ipv6地址重新配置

#@param   -help:打印每个参数的解释

#@return 返回输入配置命令后的回显内容

#@author ***********

#@verbatim 

#set buf[::rosng::Grev4v6TunnelConfig -dut $DUT1\

#                                                  -tunnelid 1\

#                                                  -soure 1.1.1.1\

#                                                  -dest 1.1.1.1\

#                                                  -intfaddr 100.0.0.1\

#                                                  -mask 255.255.0.0]                                                 

#全局配置模式输入interface v6_tunnel1的回显值为:[lindex $buf[expr[lsearch $buf 0]]]

#@verbatim

 

#noteEnd======================================================== 

 

其中tcl语言注释是以#开头的。。所以doxygen标记为##开头到空行结束即

##---开始

#

#

#

#

 

----结束

代码区域

 

 





0 0
原创粉丝点击