分享

好汉提提当年勇——30年前我做软件开发的经历

 智能交通技术 2021-07-18
所谓初生牛犊不怕虎,30年前凭借一己之力,花了一年时间,开发了一个交通事故统计分析软件。现在想来也很得意,因此这里就自认好汉提提当年的勇吧。
先说一下,我对事故分析还是很感兴趣的,因为我当年的研究生论文写的就是事故分析。就像现在对车路协同自动驾驶感兴趣,是因为本科我是学汽车的。应该说,这种专业背景对一个人工作后专业走向是存在一种潜移默化影响的。
还说30年前,开发交通事故分析软件这个项目来源于世界银行贷款常州市综合交通发展规划,中规院承担,其中有12万元人民币(那时大学毕业月工资不到百元)用于购买交通事故分析软件。可是当时国内根本没有这样的系统软件,国外软件功能不合国内的需求而且没有中文界面也无法使用。因此中规院与世界银行项目主管商定决定委托我单位开发。
开发使用Boland C语言(当时还没有微软C++),这是当时MVA在做北京交通研究项目时带进来的正版英文软件套装,全部手册也是英文。
应用环境为Windows3.1英文版。应该说的是早期计算机操作系统大都是没有图形界面的,当时Window3.1是微软第一个图形界面操作系统Windows3.0后较为稳定的版本。当时的大部分计算机软件都是在DOS操作系统下完成的字符界面软件。汉字版本的DOS主要有UCDOS和CCDOS等汉化DOS系统。当时Windows3.1还没有汉化的版本。汉字输入采用中文之星等软件,但要想在开发的软件中显示汉字就要自己想办法了。

微软Windows家族

为了能够显示汉字费了不少周折。为了显示汉字,用汇编语言使用汉字库开发了汉字菜单显示和汉字图形标注模块。

多窗口图形界面事故分析图系统

为了能够直观地给事故发生地点定位,画出事故黑点图,同时也是为了能够按事故地点对事故原因进行分析,需要一张基础地图。当然现在的人都知道这张图叫GIS图,但三十年前还没有GIS这一说。使用图形界面显示城市街道(以前叫矢量地图,现在叫GIS),在用户界面上可以定位标注事故黑点。
当时为了得到这张可以任意缩、放平移、旋转的矢量地图,可是费了一些周折。首先,研究了图形数据存储结构(树结构)。为了输入常州市路网图,还特别找了常州地图使用了数字化仪,在AutocCad下将常州市路网图输入形成DXF图形文件,然后又专门编了程序对DXF进行解析最终得到常州矢量地图数据。

自创的矢量地图处理——GIS的雏形

交通事故分析业务方面,借鉴了应该英国TRRL一个事故分析软件的技术。事故调查表格采用了34种事故分析因素。黑点分析是将城市分成一平方公里一个的网格。
系统设计了自由设置的交叉分析功能,可根据用户需要,任意定义记录的30余种事故信息的交叉分析。
通事故辅助工具软件方面系统使用Autocad开发了事故现场绘制模块,用Autolisp语言开发了交通事故现场基本图库、自定义的用户菜单和自动绘制事故现场程序。
交通安全审核方面结合美国交通安全审核手册的模型,尝试使用Prolog智能语言开发了智能化的安全审核功能。这个也可以说是早期人工智能AI在交通安全领域里的应用。

用Prolog语言开发专家库

当然,三十几年前,数据库还是一个非常昂贵的东西。那时Oracle还名不见经传,DBASE IV和DBII应该是那时的宠儿。当时项目明确是单机版本,因此没有使用数据库。这是个遗憾。
总之,这一次的软件系统开发使用了C、汇编、AutoLISP和Prolog编程语言。将矢量地图概念、事故原因交叉分析、交通安全审核的专家库化等创造性地运用在了交通事故分析领域。
从行业的角度,时间过了三十多年,目前仍然看不到比较全面的交通事故分析系统,一方面说明这么多年来交通安全问题仍然不能得到足够的重视;另外行业内研究人员也没有人能够踏下心来好好研究和开发一个事故软件,这不能不说是个遗憾。

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多