IDL支持面向对象的编程, 但是并不完整, 不支持对成员的可见性的设定
可以通过定义单独文件的方式来定义IDL类, 比较容易管理, 定义的方式是:
pro <ClassName>__define
struct = {<className>, }
end
文件名是:<ClassName>__definepro
在这个文件中, 还可以添加类成员函数的定义, 如:
pro <className>::hello
end
IDL不区分大小写, 所以类名/函数名/关键字等均可以不受大小写的限制
IDL对类提供一些专门的成员函数, 完成专用的任务 比如: INIT为构造函数, CLEANUP为析构函数(在对象被释放时调用, 比如OBJ_DESTROY函数) 但是这些函数不能在外部被调用, 但是可以在函数内部看到, 主要是为了手工调用, 以实现父类的初始化函数被调用(IDL不会自动调用父类的INIT函数)
INIT函数可以带参数, 可以在调用OBJ_NEW生成对象时传入
OBJ_NEW函数的调用形式如下:
Result = OBJ_NEW( [ObjectClassName [, Arg1Argn]] )
IDL的函数和过程参数可以不完整, 比如函数A定义了5个参数, 可以用0-5个参数来调用 对调用的参数情况可以用N_PARAMS和N_ELEMENTS来判断, 前者可以得到实际的调用参数的个数, 后者可以判断某个参数是否有值
sub Test::INIT, caption
print, N_PARAMS() ;返回参与调用的参数个数
print, N_ELEMENTS(caption) ;返回1为有值, 返回2为未定义
end
可以定义多个同名函数, 但只有最晚定义的那个有效, 前面的会被隐藏
如何学好IDL编程:
一是吃透变量、读写文件等,它们是你拿来跟遥感数据打交道的东西;
二是写清程序结构,自己做做缩进,代码块之间用空行分开,写注释等等,不一而足;
三是掌握好function和procedure中关键字的用法。IDL不像C++或者NET等等,有按值传参和按引用传参之分,IDL解决此类问题的方法是关键字。
四是吃透数字图像处理那部分的基本算法,虽然大部分功能已经由IDL造好了轮子,但只有吃透了原理,用的时候才能信手拈来。
许多函数有源码提供,IDLDE(开发环境界面)里在函数或过程名上点右键,绿色名称的除了帮助之外一般都有查看源码的选项,可以学到不少东西
电子控制单元损坏,大多数情况下可以修理。因为电控单元的损坏大部分是由于二极管、晶体管、电容、电阻的检测或使用不当造成的,而且这些元器件都是 通用 标准件,可以在市场上购买,只要熟悉电子电路维修技术就可以更换。但是,电子控制单元中的专用集成电路或可编程只读存储器的损坏无法修复。
在检修电子控制单元之前,检查电子控制单元的控制电路,排除电路中的故障。因为当外部电路出现故障时,很容易误修电控单元。即使修好了或者买回来新的电路板,一旦安装,也会因为外部电路的故障而再次损坏。
例如,一辆 皇冠 28汽车由右侧驾驶改为左侧驾驶后,发动机不能启动,经过几名电工多次检查均未查出问题,便怀疑是电控单元损坏,但不敢断定。后经检查外电路,发现发动机电控单元线束中有两根颜色和线径均相同的线,一条通至节气门位置传感器,另一条通至点火放大器,因此怀疑这两条线有可能因颜色和粗细的相同而接错。打开电控单元盒,查看与这两条线相连的电控单元插脚在电路板上的缩写符号,发现一个是
“IDL”,另一个是“IGL”,“IDL”通向点火放大器,“IGL”通向节气门位置传感器。在这一点上,可以判断这两条线是反向连接的,应该互相交换。
两条线接通后,发动机运转正常。
排除外围电路故障后,如果确定电子控制单元损坏,可以对电路板进行检修。
以下是对实际工作中常见故障及其修复方法的介绍。
电子控制单元的电源部分故障一般是由于充电器的电压调节过高,或者充电器的极性颠倒,或者充电时点火开关打开,甚至发动机启动,或者发动机运行过程中电池插头松动,发电机直接给电子控制单元供电造成的。这种情况下,大功率齐纳二极管等元器件一般都会烧坏,可以更换,更容易维修。
ECU输入/输出部分的故障通常是放大器电路元件的烧毁,有时还伴随着电路板上铜包线的烧毁。比如某修理厂翻新粉刷了一辆 雪佛兰 轿车后,发现发动机无法启动,长时间打开点火开关,汽油就会从排气管和油底壳溢出。当点火开关打开时,发现六个喷油器全部全开,汽油从喷油器直接流入气缸,满流后溢出。检查外部电路后,没有发现问题,可以断定电子控制单元中的输出控制有故障。当电子控制单元箱打开时,发现放大喷油器控制信号的大功率晶体管发生故障短路,导致喷油器通电时处于常开状态。更换类似型号的晶体管,清洗更换机油后,发动机可以正常运行。
ECU内存部分故障可以消除内存编程的问题,可以更换。找到一个已知的有程序内容的好内存芯片,然后购买一个空同型号的白色芯片,通过读写器从原芯片中读出程序,然后写入空白色芯片,复制新芯片,然后将新芯片加载到电子控制单元中。但是大部分汽车厂 商 都规定了最多只能复制3~7次,超过次数就不能再使用,有的厂商通过加密也不能复制芯片一次。对于 大众 系列汽车,可以用原厂仪表代替电控单元的程序或将程序写入空白色芯片。
对于ECU有特殊故障的车辆,如果被水淹没,电路板会被腐蚀,导致断路、部件粘连或损坏,可以逐一检查、修理或更换。比如修理厂修理 凯迪拉克 汽车时,故障现象是这样的:发动机正常运转时,如果打开或关闭大灯或其他电气设备,排气管就会被“打爆”,严重时排气管会爆裂。检查后发现外部电路没有问题,怀疑是电控单元有故障。打开电子控制单元箱仔细检查,发现有一根接地线因腐蚀而断裂。该接地线是氧传感器信号屏幕穿过电子控制单元内部接地的位置。由断路引起的屏蔽故障导致氧传感器的信号被其他电器烘干。锡焊后会恢复正常。
以上是几种常见的电控单元故障,在实际工作中会遇到各种故障。只要理清原理,掌握一定的方法,分析具体问题,问题就不难解决。 @2019
以上就是关于IDL编写程序!!!急求全部的内容,包括:IDL编写程序!!!急求、如何学好IDL编程、ecu内部电路故障等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)