AMX编程软件介绍语法说明实例(共91页).doc
精选优质文档-倾情为你奉上新建主机程序设计文件简介通过NetLinx Studio 新建程序选择New选择Source File,其它的为模块及包含文件设计,我们暂不管它。Workspace Wizard是一个工程项目管理,可以把整个项目所涉及的文件管理起来,方便您查找,单独的Source File文件也是可以用的,我们先选择Source File是否创建新文件,选择Yes选择,主机的标准模版,网络型主机则选择NetLinx Standard Template输入文件名选择要保存的路径,按下一步。点击完成,创建出新文件。把蓝色的字给收起来,总体上我们可以看出分如下几块:PROGRAME_NAME为文件DEFINE_DEVICE为定义要控制设计的控制接口DEFINE_CONSTANT为定义常量DEFINE_TYPE为定义类型文件DEFINE_VARIABLE为定义变量DEFINE_LATCHING为定义锁住键DEFINE_MUTUALLY_EXCLUSIVE为定义互锁DEFINE_START定义启动时需要执行的程序DEFINE_EVENT为定义事件语句DEFINE_PROGRAME为定义实时的程序语句所有的程序必须放在固定的定义下,如变量必须放在DEFINE_VARIABLE下,事件语句必须放在DEFINE_EVENT如何设置连接并设置固定IP如何实现NetLinx Studio软件与中控主机的第一次连接:我们可以通过如下几种方式来进行连接:1. TCP/IP2. COM3. Moderom4. USB由于设备的出厂IP地址是设置为DHCP的,所以刚开始我们无法用网络来连接,如果您可以用分配IP的式给中控主机分配一个IP,就可以用刚络连上主机,再对主机进行固定IP设置,就可以直接用网络进行连接,因为通过串口或其它方式,在遇到大文件时传输得太慢,或者可能因为传输文件太大而导致传输失败。所以一般我们通常是通过串口对主机进行IP设置,再用网络实现传输,那么我们如何实现设置呢,如下图:在软件的Settings?Master Communication SettingsNo Active System Default Setting是设置软件的连接,Terminal Settings为设置软件自带的超级终端的连接。所以我们选择前者,点击?Communication SettingsNetLinx Master为网络型中控主机,如果不是网络型中控主机则选择Axcess Master?Serial如果对上面显示的NetLinx- COM1,38400,8,N,1,N不符合您的设置要求,按Edit Settings进入设置修改根据您电脑的串口选择Com Port,自带串口的默认为COM1,USB转串口的则为安装产生的端口号,Baud Rate默认的为38400,N,8,1,(主机后面编程端口8位拨码开关为前5个向下,后3个为向下,具体的看设备具体的设置)最后一直选择OK完成。完成设置之后,您可以在状态栏下面看到如下:如下显示为:NetLinx-COM1,38400,8,N,1,是不是您想要的设置,如果不是刚表示您设置的有问题,请重新设置。如果设置是正确,我们可以检测一下是否能连接上,涮新一下在线列表如下图:点击OnLine Tree点击右键Refresh System涮新在线更表所有系统里面的设置都会显示出来,而且状态栏也相应的变绿。以上现像足可以表示您的软件已经连中控主机连接上了,如果还是连接不上,可能您的电脑串口存在被其它程序占用的可能,或者您的连接线有问题。(连接线为23交叉的连接线)。接下来我们就可以对中控进行IP地址的修改,点击如下图:点击进入:选择Get IP Information可以获取到主机的IP信息,如下图可以对主机进行设置:设置完之后,选择Set IP Information提示成功,如下图:点确定,最后重启中控主机,设置完成。如何定义控制设备接口程序我们控制每个设备都有对应的设备接口如:控制灯光窗帘,有相应的继电器接口,控制矩阵有相应的232串口,控制DVD则有相应的红外接口要控制这些设备,需要相应的连线的同时,我们也必须清楚,在AMX系统编程里面我们要往哪里发送命令,才能对应的控制到这些设备上来。在AMX系统里面主要涉及到3个号,即所谓的D:P:SD:DEVICE就是每个设备的设备号;P:PORT即端口号,每个设备可能又会分为好几个端口,如NI3100有17个端口,包括7个串口,1个继电品口,8个红外口,1个I/O口,NI2100则有9个端口;S:SYSTEM即系统号,我们可以大致上这么说,每台主机可以当成一个系统。以NI3100主机为例:设备号: 默认设备号为5001;(可以通过软件进行修改,如NetLinx Studio)端口号: 固定死的,1-7为串号,8为继电器口,9-16为红外口,17为I/O口(在设备的后面版有标记为Port几)系统号: 默认为1;(可以通过软件进行修改,如NetLinx Studio,也可以为“0”表示为本系统,程序所上传的系统)从上可知我们定义一个串口来控制矩阵,一个继电器口控制灯光,一个触摸屏进行控制。如下程序:DEFINE_DEVICE下定义为AVSWITCH = 5001:1:1RELAY = 5001:8:1TP = 10001:1:1 AVSWITCH为自己取的一个名字,目的是来代替5001:1:1,代表的是第一个串口,RELAY 也是自己取的名字,目的也是来代替5001:8:1,代表的是继电器接口。TP代表的是触摸屏。它们的同一特点都是遵循D:P:S这样的一个规则来的。这里面有没有空格都无所谓,有空格只是让几行代码看起来比较对齐。如果一台主机的情况下,都可以写成5001:1:0,5001:8:0,10001:1:0,因为0代表的是本系统(上面所提到的)。我们在接下来的程序设计的按钮事件里面可能会出现如下语句:BUTTON_ENENTTP,1 PUSH:ONRELAY,1上面这小段程序的意思是,触发1号通道按钮的时候,打开断电器第1路。我们同样也是可以这么写的:BUTTON_ENENT10001:1:1,1 PUSH:ON5001:8:1,1上面两段程序执行的效果是一样的,可定我们定义设备接口其实可以这么理解为,用自己定义的名字来代替现有的设备端口,这样也有一个好处,如果你改接口了,只要改定义设备的定义,也不需要全部修改程序里面的设备接口,而且您通过自己命名的名字,程序的可读性也比较好。我们刚才说到的D:P:S的定义规则,那么我们如何来知道,每个设备的D,每个设备的P,每个设备的S呢?D就是每个设备的设备号,主要分为两种,一种是在硬件上就可以直接设置的,如触摸屏,在触摸屏的设置菜单上就可以设置了,护展盒,有8位拨码开关,通过二进制算法,算出地址,另一种是直接在软件上就可以设置设备的设备号,每个设备都是有一个默认的设备号。P就是设备的端口号,大部分都是相对固定的,中控主机都有在后面标明着,触摸屏则可以自己设置。S就是系统号,通过软件来设置,在一个系统的情况下,一例写0,代表本系统,肯定没错。所有的设备系统号都是跟着所连接的主机定义的。还有一个更快捷的方法,把整个系统连接起来,通过编程软件涮新一下在线列表,所有的设备号,系统号都会在在线列表里面显示出来。这样您定义设备的时候就一目了然了。AMX源文件的设置通常我们编译程序文件的时候会生成2个文件,一个是TKN,一个是TKO,但有些人多生成了一个SRC文件这个SRC文件是怎么来的呢?SRC文件就是程序在电脑上运行的,可编程的文件TKN文件是AMX主机上面运行的机器执行文件TKO文件主要是用来做模块程序间的调用TKO的主要用途是当一个程序分为好几块程序来写的时候,如果是用到define_module来调用另一个文件的时候,可以直接来调用TKO文件,而不需要给别人源文件程序,也可做到,自己的程序不让别人看到代码照样能运行.从程序的编程角度上来讲,我们知道AMX主机和其它各个品牌中控的最大优势是能可上传也能够下载程序,如果我们想从一台NI的主机上下载程序,如果原来的人编程人员没有上传SRC文件的话,我们是下载不了它的源文件的,下载下来的只是一个空文件,那么以前的那个编程人员就太坏了,不把源程序上传到上面,但这是软件的默认方式,可见AMX厂家更坏,当然还有更更坏的,把源文件上传了,把文件设置了一长串的密码,虽然你下载下来了,程序还是需要密码才能打开. 以下是关于对编译设置的步骤:从软件的设置属性在NetLinx Compiler文件的编程进行设置Compile With Debug In代表着,可以在程序里面执行Debug,可以设置断点程序,让程序一步步执行Compile With Source代表着可以编程程序的时候生成SRC文件Compile With Password Protec代表着生成的SRC文件,需要设置的密码才能打开如何实现程序下载在设置好NetLinx Studio软件与主机连接的情况下,步骤如下:选择Receive接收选择ADD,添加程序选择要下载的文件类型,如中控主机的程序,选择SRC文件,再选择ADD添加文件选择保存路径,填好文件名,再按保存输入设备号,端口号,系统号主机为:0:1:0 (任何主机都一样)触摸屏为:10001:1:0 (假设触摸屏的设备号是10001)红外文件为:5001:9:0(假设主机为NI3100,从第一个红外端抽红外程序)可见本例应为0:1:0再点OK确定看到下面列表多了EProjectWorkingSunkai.这个就是刚设置好保存的文件信息,Mapping为0:1:0,点击OK确定下面新增出现即将要保存的文件信息,连接主机的IP为192.168.1.21再点击Receive进行程序下载如下图所示为下载程序的信息,下图为下载失败,如果下载成功则会打勾!下载完成后,到保存的目录下打开程序,如果是主机程序,是SRC格式,打开的方式可以用NetLinx Studio来打开也可以把SRC后缀后改成RAR后缀名,直接用压缩包的格式打开.如何对继电器操作程序编写我们要实现的是把下触摸屏或面板的按钮就实现继电器的开关动作下面是定义的一个控制面板和NI2100设备上的继电器接口进行控制,如下图:下面定义了一个自定义变量供下面的方法三使用:下图功能为:按下按钮11打开继电器3,如果继电器3接的是灯光的控制,则打开灯光,如果是某设置的电源刚是控制设备的电源开,按下按钮12则是关闭,按下按钮13的功能为,按一下开,再按一下关,一直循环下去。有如下三种方法,如下图:下面功能为继电器时间顺序的开关,注意Wait后面的大括号一定要添加,它是表示一个命令的集合,如果不添加程序只跟着一个语句,ONRELAY,3和RELAY,5会马上打开,10是1秒,它是以0。1秒为单位的,所有的时间都是从刚按下按钮的时候算起的,所以第2秒应该是Wait 20,而不是紧接着Wait 10下面是触摸屏或按钮状态跟着程序走,看到按钮状态,相应的也就知道了继电器的开关状态如何实现矩阵程序编程实例实现8X8矩阵的自由切换,先选择输入源,再选择输出源,可以一次性选择多个输出源,如下图:输入:上一排,通道号为51至58输出:下一排,通道号为61至68在程序中,道先定义要控制的设备端口,需要一个串口,和一个触摸屏,如下图:接下来定义,在程序中需要的变量,一个为记录输入源的vInput,一个为记录输出源的vOutput,一个为记录状态的,vStatus数组,如下图:接下来就实现如何执行的程序,如下图:命令是以AMX Autopatch矩阵为例,如第1路到第2的切换为:CL0I1O2T,我们只要通过变量切换1和2的值就可以实现矩阵的自由切换,vStatus为记录输入源到输出源的状态,所馈到触摸屏上。上面的这一步骤已经可以实现程序的运行了,接下来是实现如何在触摸屏上看到矩阵的切换状态,按输入1的时候我要看到相应的输入出1输出到了哪几路来,如下图:这样上面的程序就完成了。相关程序下载:如何实现调光调音控制以调光为例,下图为调光的控制界面,包含有4个按钮设置灯光亮度的固定值分别为100%、60%、30%、0%,1个接条显示并调节灯光的亮度。触摸屏的设备号为128调光模块设备号为164个按钮的通道号为41、42、43、441个拉条的LEVEL号为1灯光接到调光模块的第6路我们来看一下程序是如何实现首先定义设备接口定以记录当前灯光亮度的变量按钮程序如下:以BUTTON44为例SEND_COMMAND MC,"P6L0T0"为控制调光模块的命令,注释的为写法不一样,任取一种.P6为调光模块的第6路L0为控制灯光的亮度最暗,0-100为灯光亮度的值,0最暗,100最亮T0为产生渐变的时候,0为无渐变时间,如果为T5的话就为渐变5秒SEND_LEVEL TP,1,0为控制拉条的显示值1为拉条的LEVEL号,0为拉条的显示值,显示值为0-255,0最小,255最大LIGHT_VALUE为定义的变量来记录前拉条的显示值拉动拉条控制的程序如下:拉动拉条时,LEEVEL.VALUE的值是跟着变化的,所以取出当前的值进而调节灯光的亮度*100/255是把拉条的值从0-255转到0-100之间才能符合itoa为把整型转成字符型对应的反馈如下:当值为100的时候41有反馈当值为60的时候42有反馈当值为30的时候43有反馈当值为0的时候44有反馈相关程序如下:如何应用Debug 在调试过程中的用法如果我们要实时知道程序中自己定义的变量的值是如何变化的,我们可以通过Debugging来实时检测变量的值,如果变量的值和你程序执行的不一样,说明您的程序可能有误。在NetLinx Studio软件里点击如下图:点击确定。 如上图点击右键。添加程变量列表里的变量点击OK。显示如上所示,X的变量就在列表里面实时的显,在这里我们就可以实时知道变量的值,如果有用到一些需要读取设备状态信息的值时,如DIS,您就可以知道设备每根话筒给中控的代码是多少。根据话筒给的代码就可以知道是哪一根话筒给过来的信息。如何上传主机程序这边我们以NI-3100为例来实现如何上传主机程序.我们通过主机的编程软件来实现和主机的通信进而实现主机程序的上传和下载.在建立软件与主机之间的通信之后,我们才可以上传程序.程序的上传必须编译,因为主机里面运行的是编译生成的文件,而不是我们电脑里面运行的文件,选择NetLinx的编译,编译还会帮你查找错误,如果有错误,编译之后是生不成新的文件的.选择传程序的按钮,如下图:点击添加按钮ADD,选择要添加的类型,如下图:选择Other选择要找的类型文件,如下图选择要添加文件的类型,主机程序为TKN文件,再选择添加,如下图:选择文件所在的目录,如下图:选择文件,如下图:填写设备号,Device Number传主机程序时为0,Port Number为1,System为0,再点OK,如下图:再点OK,如下图: 再点OK,如下图: 再选择Send 发送 传输状态如上图,X为传输失败,打勾为传输正确.如保实现触摸屏与主机编程通信触摸屏与主机之间的通信其实原理性的东西是相对比较简单,在触摸屏的按钮上都有一个可设置的通道号,如下图:如上图所示:Channel Port为1,Channel Code 为2,假高触摸屏的设备号为10001,则这个按钮产生的事件为BUTTON_EVENT10001:1:0,22就是Channel Code通道号,每个按钮都可以定义通不同的通道号,对应的执行不同的命令语句,如果两个按钮通道号相同,则执行相同的命令语句。如图:如上图为两个按钮事件,一个表示灯开,一个表示灯关。PUSH表示为当触摸按钮的时候产生什么事件,程序写着ONRELAY,1则执行ONRELAY,1,程序写着OFFRELAY,1刚执行OFFRELAY,1,不同的按钮执行的程序是不一样的,但同样是由BUTTON_ENENT组成的事件语句,所以触摸屏与主机间的通信其它就是由很多个按钮事件组合成的程序。AMX语法功能说明特别符号 大括号 多条命令集的结合 中括号 设备,通道号DEVICE,CHANNEL; 数组的定义,如:INTEGER VOLNUMBER; SYSTEM_CALL系统调用,如:SYSTEM_CALL1 'COSX' (45) ( ) 小括号 IF条件语句;定义互锁语句(* *) 或/* */注释 对程序的必要说明,在程序中不起任何作用/ 注释 单句注释运算符号符号功能符号功能+加号<小于减号>大于*乘号=等于/除号<=小于等于%模数>=大于等于&&逻辑与AND逻辑与|逻辑或OR逻辑或逻辑异或XOR逻辑异或!逻辑非NOT逻辑非&位逻辑与BAND位逻辑与|位逻辑或BOR位逻辑或位逻辑异或BXOR位逻辑异或位逻辑非BNOT位逻辑非<<位左移LSHIFT位左移>>位右移RSHIFT位右移常用关键字ONDEVICE,CHANNEL / 开OFFDEVICE,CHANNEL / 关PULSEDEVICE,CHANNEL / 发送脉冲TO DEVICE,CHANNEL / 按住多长时间执行多长SEND_COMMAND DEV, '<command string>' SEND_STRING DEV, '<string>' 事件处理:BUTTON_EVENT这个关键字规定了一个按钮事件的处理。它包括按下、释放、持续三个事件,在一个指定的设备通道上,这三个事件与按下和释放按钮是紧密相连的,按钮事件包含一个可选择的反馈信息处理,它在事件处理完成之后立即运行。在任何时候主线运行了,这个反馈信息处理也被执行。定义格式如下:BUTTON_EVENT <device>,<channel> PUSH: /* 当按钮按下去时执行的动作 */ RELEASE: /* 当按钮松手时执行的动作 */ HOLD <time>,REPEAT: /* 当按钮按住时过了多长时间/或每隔多长时间重复执行的动作 */ Example:BUTTON_EVENTTP,1 PUSH: /* 按下触摸屏第一个通道时执行的动作 */ ONRELAY,1 BUTTON_EVENT特性描述表:Property NameTypeDescriptionButton.InputDEVCHANDevice + ChannelButton.Input.ChannelINTEGERChannelButton.Input.DeviceDEVDeviceButton.Input.Device.NumberINTEGERDevice numberButton.Input.Device.PortINTEGERDevice port Button.Input.Device.SystemINTEGERSystem numberButton.HoldtimeLONGCurrent hold time in .10 second increments. Note:Button.Holdtime returns are in 1ms increments.Button.SourceDevDEVSource device of button eventButton.SourceDev.NumberINTEGERSource device numberButton.SourceDev.PortINTEGERSource device portButton.SourceDev.SystemINTEGERSource device system.DATA_EVENT这个关键字规定了一个数据事件的处理。在一个系统中,触发信息传到主机或者设备的时候,可分为五种类型:1、设备接收到数据字符串 (RS-232 device)2、设备从主机接收到 SEND_COMMAND 命令3、主机检测到设备在线4、主机检测到设备不在线5、被控设备发生错误信息 这些事件仅仅与一个设备相连。定义格式如下:DATA_EVENT <device>COMMAND:/* 设备从主机接收到 SEND_COMMAND 命令 */STRING:/* 设备接收到数据字符串 (RS-232 device) */ ONLINE:/* 主机检测到设备在线 */ OFFLINE:/* 主机检测到设备不在线 */ ONERROR:/* 被控设备发生错误信息 */ Example:DATA_EVENTPROJECT ONLINE: SEND_COMMAND PROJECT, 'SET_BAUD 19200,N,8,1' DATA_EVENT特性描述表:Property NameTypeDescriptionData.DeviceDEVDeviceData.Device.NumberINTEGERDevice numberData.Device.PortINTEGERDevice portData.Device.SystemINTEGERSystem numberData.NumberLONGEvent numberData.TextCHAR ArrayText associated with the eventLEVEL_EVENT这个关键字规定了一个拉条事件的处理。在一个指定的设备上,一个拉条的变化作为一个结果被接收,也就是拉条值的改变引发的事件。定义格式如下:LEVEL_EVENT <device>,<level> /* 当拉条发生变化时产生的语句 */Example:LEVEL_EVENT TP, 1 IF (LEVEL.VALUE >= COOL_POINT) ONRELAY,FAN ELSE IF (LEVEL.VALUE <= HEAT_POINT) OFFRELAY,FAN 注释:LEVEL.VALUE表示拉条改变的值。它可以代替一个需要创建的拉条作为一个临时设备。 LEVEL_EVENT特性描述表:Property NameTypeDescriptionLevel.InputDEVLEVDevice + Level that caused the event to occurLevel.Input.DeviceDEVDeviceLevel.Input.Device.NumberINTEGERDevice numberLevel.Input.Device.PortINTEGERDevice portLevel.Input.Device.SystemINTEGERSystem numberLevel.Input.LevelINTEGERLevel numberLevel.SourceDevDEVSource Device of Level EventLevel.SourceDev.NumberINTEGERSource Device NumberLevel.SourceDev.PortINTEGERSource Device PortLevel.SourceDev.SystemINTEGERSource Device SystemLevel.ValueNumericLevel value附加:拉条的介绍基本上AMX的触摸屏都具有拉条显示,和拉条控制如:可以用来反应当前灯光的亮度和音量的大小Creating Levels创建读取写入拉条的值读取的值要读取拉条的设备读取拉条数据的变量CREATE_LEVEL device, level number, variable要读取拉条的通道号写入要写入拉条的设备要写入拉条的值SEND_LEVEL TP, 1, VOL_LEVEL要写入拉条的通道号DEFINE_CONNECT_LEVEL这个关键字规定了拉条的联结。定义格式如下:DEFINE_CONNECT_LEVEL /* 设备与拉条相关联 */(device 1,level number 1,device 2,level number 2,.etc.)Example: DEFINE_CONNECT_LEVEL (TP ,1, VOL,1,VOL, 2) / 触摸屏按钮拉条,与音量盒第一路和第二路相关联COMBINE_LEVELS(VIRTUAL1,1,TP1,1,TP2,1,TP3,1) / 建立关联UNCOMBINE_LEVELS(VIRTUAL1,1) / 取消关联 CHANNEL_EVENT这个关键字规定了一个通道事件的处理。在一个指定的设备通道上,一个输出发生改变时,这个处理类型就被调用。定义格式如下: CHANNEL_EVENTDEVICE,CHANNEL ON: /* 通道打开的事件处理 */ OFF: /* 关闭通道的事件处理 */CHANNEL_EVENT特性描述表:Property NameTypeDescriptionChannel.DeviceDEVDeviceChannel.Device.NumberINTEGERDevice numberChannel.Device.PortINTEGERDevice portChannel.Device.SystemINTEGERSystem numberChannel.ChannelINTEGERDevice channelChannel.SourceDevDEVSource Device of Channel EventChannel.SourceDev.NumberINTEGERSource Device NumberChannel.SourceDev.PortINTEGERSource Device PortChannel.SourceDev.SystemINTEGERSource Device SystemTIMELINE_EVENT当一个时间线的内置时间相当于在时间数组里指定时间的某一个时,这些事件被生成。定义格式如下:TIMELINE_EVENTtimelineID Example:Define_Device dvPanel = 128:1:0 DEFINE_VARIABLE LONG TimeArray100 DEFINE_CONSTANT TL1 = 1 TL2 = 2 DEFINE_EVENT TIMELINE_EVENTTL1 /* 捕获所有TL1 的时间线 */ switch(Timeline.Sequence) /* 按先后顺序找到相对应的时间 */ case 1: SEND_COMMAND dvPanel, "'TEXT1-1 1'" case 2: SEND_COMMAND dvPanel, "'TEXT1-1 2'" case 3: SEND_COMMAND dvPanel, "'TEXT1-1 3'" case 4: SEND_COMMAND dvPanel, "'TEXT1-1 4'" case 5: SEND_COMMAND dvPanel, "'TEXT1-1 5'" TIMELINE_EVENTTL2 /* 捕获所有TL2 的时间线 */ switch(Timeline.Sequence) /* 按先后顺序找到相对应的时间 */ case 1: SEND_COMMAND dvPanel, "'TEXT2-2 1'" case 2: SEND_COMMAND dvPanel, "'TEXT2-2 2'" case 3: SEND_COMMAND dvPanel, "'TEXT2-2 3'" case 4: SEND_COMMAND dvPanel, "'TEXT2-2 4'" case 5: SEND_COMMAND dvPanel, "'TEXT2-2 5'" DEFINE_PROGRAM PUSHdvPanel,1 TimeArray1 = 1000 TimeArray2 = 2000 TimeArray3 = 3000 TimeArray4 = 4000 TimeArray5 = 5000 TIMELINE_CREATE(TL1,TimeArray,5,TIMELINE_ABSOLUTE, TIMELINE_REPEAT) PUSHdvPanel,2 TimeArray1 = 1000 TimeArray2 = 1000 TimeArray3 = 1000 TimeArray4 = 1000 TimeArray5 = 1000 TIMELINE_CREATE(TL2,TimeArray,5,TIMELINE_RELATIVE, TIMELINE_ONCE)继电器控制ONRELAY,1 /* 打开继电器1 */OFFRELAY,1 /* 关闭继电器1 */BUTTON_EVENTTP,1 PUSH: /* 按下触摸屏第一个通道时执行的动作 */ ONRELAY,1 红外控制PULSEDVD,1 /* 正常发出 PLAY 红外码 */ TODVD,6 /* 发出 SCAN-FFWD 向前扫瞄红外码 */BUTTON_EVENTTP,11 PUSH: /* 按下触摸屏第一个通道时DVD播放 */ PULSEDVD,1 串口控制SEND_COMMAND SWITCHER, SET BAUD 9600,N,8,1 /* 设置串口的波特率 为9600,奇偶校验位无,数据位8,停止位1 */SEND_COMMAND SWITCHER, SET BAUD 9600,N,8,1 485 ENABLE /* 启有485的模式,关闭422模式, 如485 DISABLE为关闭485模式启用422模式 */SEND_STRING SWITCHER, ”$AB,$CC,$AD,$5B”SEND_STRING SWITCHER, “CL0I1O2T,$0D” SEND_STRING SWITCHER, “CL0I