AM編程軟件介紹+語法說明+實(shí)例_第1頁
AM編程軟件介紹+語法說明+實(shí)例_第2頁
AM編程軟件介紹+語法說明+實(shí)例_第3頁
AM編程軟件介紹+語法說明+實(shí)例_第4頁
AM編程軟件介紹+語法說明+實(shí)例_第5頁
已閱讀5頁,還剩107頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

AMXx2建主機(jī)程序設(shè)計(jì)文件簡(jiǎn)介NetLinxStudio建程序NewWorkspaceWizardSourceFileSourceFile是否創(chuàng)立文件,選擇Yes選擇,主機(jī)的標(biāo)準(zhǔn)模版,網(wǎng)絡(luò)型主機(jī)則選擇NetLinxStandardTemplate輸入文件名選擇要保存的路徑,按下一步。點(diǎn)擊完成,創(chuàng)立出文件。把藍(lán)色的字給收起來,總體上我們可以看出分如下幾塊:PROGRAME_NAMEDEFINE_DEVICE為定義要掌握設(shè)計(jì)的掌握接口DEFINE_CONSTANT為定義常量DEFINE_TYPEDEFINE_VARIABLEDEFINE_LATCHINGDEFINE_MUTUALLY_EXCLUSIVE為定義互鎖DEFINE_EVENTDEFINE_PROGRAMEDEFINE_VARIABLEDEFINE_EVENTNetLinxStudio次連接:我們可以通過如下幾種方式來進(jìn)展連接:TCP/IPCOMModeromUSBIPDHCPIPIP,就可以用剛絡(luò)連上主機(jī),IPIP何實(shí)現(xiàn)設(shè)置呢,如以下圖:在軟件的Settings??》MasterCommunicationSettingsNoActiveSystemDefaultSetting,TerminalSettingsCommunicationSettingsAxcessMaster??》SerialCOM1,38400,8,N,1,NEditSettingsComPort,COM1,USB,BaudRate38400,N,8,1,(主機(jī)后面編程端口8OK完成設(shè)置之后,您可以在狀態(tài)欄下面看到如下::NetLinx-COM1,38400,8,N,1,是不是您想要的設(shè)置,假設(shè)不是剛表示您設(shè)置的有問題,請(qǐng)重設(shè)置。OnLineTreeRefreshSystem全部系統(tǒng)里面的設(shè)置都會(huì)顯示出來,而且狀態(tài)欄也相應(yīng)的變綠??赡苣碾娔X串口存在被其它程序占用的可能,或者您的連接線有問題。(連接線23接下來我們就可以對(duì)中控進(jìn)展IP地址的修改,點(diǎn)擊如以下圖:點(diǎn)擊進(jìn)入:GetIPInformationIP設(shè)置:SetIPInformation點(diǎn)確定,最終重啟中控主機(jī),設(shè)置完成。如何定義掌握設(shè)備接口程序我們掌握每個(gè)設(shè)備都有對(duì)應(yīng)的設(shè)備接口232DVDAMXAMX3D:P:SD:DEVICE;P:PORT7,1,81個(gè)I/O口,NI2100則有9個(gè)端口;S:SYSTEM即系統(tǒng)號(hào),我們可以大致上這么說,每臺(tái)主機(jī)可以當(dāng)成一個(gè)系統(tǒng)。NI3100設(shè)備號(hào):5001;(NetLinxStudio)端口號(hào):,9-16,17I/O系統(tǒng)號(hào):NetLinxStudio,也可以為“0”表示為本系統(tǒng),程序所上傳的系統(tǒng))進(jìn)展掌握。如下程序:AVSWITCH=5001:1:1RELAY=5001:8:1TP=10001:1:1AVSWITCH5001:1:1,代表的是第一個(gè)串5001:8:1,代表的是繼電器接口。TP代表的是觸摸屏。它們的同一特點(diǎn)都是遵循D:P:S這樣的一個(gè)規(guī)章來的。5001:1:0,5001:8:0,10001:1:0,0統(tǒng)(上面所提到的)。BUTTON_ENENT[TP,1]{PUSH:ON[RELAY,1]}1我們同樣也是可以這么寫的:BUTTON_ENENT[10001:1:1,1]{PUSH:ON[5001:8:1,1]}上面兩段程序執(zhí)行的效果是一樣的,可定我們定義設(shè)備接口其實(shí)可以這么理解自己命名的名字,程序的可讀性也比較好。D,每P,SD8通每個(gè)設(shè)備都是有一個(gè)默認(rèn)的設(shè)備號(hào)。觸摸屏則可以自己設(shè)置。S0,代表本系統(tǒng),確定沒錯(cuò)。全部的設(shè)備系統(tǒng)號(hào)都是跟著所連接的主機(jī)定義的。還有一個(gè)更快捷的方法,把整個(gè)系統(tǒng)連接起來,通過編程軟件涮一下在線列表,全部的設(shè)備AMX2TKN,TKO,但有些SRC這個(gè)SRC文件是怎么來的呢?TKNAMXTKO文件主要是用來做模塊程序間的調(diào)用TKOTKO人源文件程序,也可做到,自己的程序不讓別人看到代碼照樣能運(yùn)行.是能可上傳也能夠下載程序,NISRC文件的話,我們是下載不了它的源文件的,下載下來的只是一個(gè)空文件,那么以前的那個(gè)編程人員就太壞了,不把源程序上傳到上面,但這是軟件的默認(rèn)方式,可見AMX下載下來了,程序還是需要密碼才能翻開.從軟件的設(shè)置屬性NetLinxCompilerInDebug,可以設(shè)置斷點(diǎn)程序,讓程序一步步執(zhí)行SRCCompileWithPasswordProtecSRCStudio如下:Receive選擇ADD,添加程序選擇要下載的文件類型,如中控主機(jī)的程序,選擇SRC文件,再選擇ADD添加文件選擇保存路徑,填好文件名,再按保存輸入設(shè)備號(hào),端口號(hào),系統(tǒng)號(hào)主機(jī)為:0:1:0(任何主機(jī)都一樣)觸摸屏為:10001:1:0(假設(shè)觸摸屏的設(shè)備號(hào)是10001)紅外文件為:5001:9:0(假設(shè)主機(jī)為NI3100,從第一個(gè)紅外端抽紅外程序)可見本例應(yīng)為0:1:0OK這個(gè)就是剛設(shè)置好保存的文件信息,Mapping0:1:0OK下面增消滅馬上要保存的文件信息,連接主機(jī)的IP為192.168.1.21再點(diǎn)擊Receive進(jìn)展程序下載如以下圖所示為下載程序的信息,以下圖為下載失敗,假設(shè)下載成功則會(huì)打勾!SRCNetLinxStudio如何對(duì)繼電器操作程序編寫NI2100下面定義了一個(gè)自定義變量供下面的方法三使用:113,31213,如以下圖:Wait是表示一個(gè)命令的集合,假設(shè)不添加程序只跟著一個(gè)語句,ON[RELAY,3]和10。12Wait20Wait10器的開關(guān)狀態(tài)如何實(shí)現(xiàn)矩陣程序編程實(shí)例個(gè)輸出源,如以下圖:在程序中,道先定義要掌握的設(shè)備端口,需要一個(gè)串口,和一個(gè)觸摸屏,如下圖:vInput,一個(gè)為記錄vOutput,一個(gè)為記錄狀態(tài)的,vStatus接下來就實(shí)現(xiàn)如何執(zhí)行的程序,如以下圖:AMXAutopatch1212vStatus上面的這一步驟已經(jīng)可以實(shí)現(xiàn)程序的運(yùn)行了,接下來是實(shí)現(xiàn)如何在觸摸屏上看1如以下圖:這樣上面的程序就完成了。相關(guān)程序下載:Switch.rar4、60%、30%、0%,1亮度。16441、42、43、446定以記錄當(dāng)前燈光亮度的變量按鈕程序如下:BUTTON44SEND_COMMANDMC,“‘P6L0T0’“為掌握調(diào)光模塊的命令,注釋的為寫法不一樣,任取一種.P66,0,100T55SEND_LEVELTP,1,00-255,0255LIGHT_VALUE拉動(dòng)拉條掌握的程序如下:光的亮度0-2550-100itoa字符型對(duì)應(yīng)的反響如下:1004160423043相關(guān)程序如下:Level.rarDebug在調(diào)試過程中的用法假設(shè)我們要實(shí)時(shí)知道程序中自己定義的Debugging的值和你程序執(zhí)行的不一樣,說明您的程序可能有誤。NetLinxStudio點(diǎn)擊確定。如上圖點(diǎn)擊右鍵。添加程變量列表里的變量OK。顯示如上所示,X變量的值,假設(shè)有用到一些需要讀取設(shè)備狀態(tài)信息的值時(shí),如DIS,您就可以知道過來的信息。如何上傳主機(jī)程序這邊我們以NI-3100為例來實(shí)現(xiàn)如何上傳主機(jī)程序.在建立軟件與主機(jī)之間的通信之后,我們才可以上傳程序.程序的上傳必需編譯,由于主機(jī)里面運(yùn)行的是編譯生成的文件,而不是我們電腦里面運(yùn)行的文件,選擇NetLinx的編譯,編譯還會(huì)幫你查找錯(cuò)誤,假設(shè)有錯(cuò)誤,編譯之后是生不成的文件的.選擇傳程序的按鈕,如以下圖:點(diǎn)擊添加按鈕ADD,選擇要添加的類型,如以下圖:選擇Other選擇要找的類型文件,如以下圖選擇要添加文件的類型,主機(jī)程序?yàn)門KN文件,再選擇添加,如以下圖:選擇文件所在的名目,如以下圖:選擇文件,如以下圖:0,PortNumber1,System0,OK,如以下圖:再點(diǎn)OK,如以下圖:再點(diǎn)OK,如以下圖:Send發(fā)送傳輸狀態(tài)如上圖,X為傳輸失敗,打勾為傳輸正確.是相比照較簡(jiǎn)潔,在觸摸屏的按鈕上都有一個(gè)可設(shè)置的通道號(hào),如以下圖:1,ChannelCode2,假高觸摸屏的設(shè)備號(hào)為BUTTON_EVENT[10001:1:0,2]2ChannelCode,假設(shè)兩個(gè)按鈕通道號(hào)一樣,則執(zhí)行一樣的命令語句。如圖:PUSHON[RELAY,1ON[RELAY,1],程序?qū)懼鳲FF[RELAY,1],不同的按鈕執(zhí)行的程序是不一樣的,但同樣是由BUTTON_ENENT組成的大事語句,所以觸摸屏與主機(jī)間的通信其它就是由很多個(gè)按鈕大事組合成的程序。特別符號(hào){}大括號(hào)多條命令集的結(jié)合[DEVICE,CHANNEL];數(shù)組的定義,如:INTEGERVOL[NUMBER];SYSTEM_CALL:SYSTEM_CALL[1]”COSX”(45)()小括號(hào)IF(**)或/**/注釋對(duì)程序的必要說明,在程序中不起任何作用//運(yùn)算符號(hào)符號(hào)功能符號(hào)功能+加號(hào)<小于—減號(hào)>大于*乘號(hào)=等于/除號(hào)<=小于等于%模數(shù)&&AND||OR^^XORNOT&BAND|BOR^位規(guī)律異或BXOR位規(guī)律異或~位規(guī)律非BNOT位規(guī)律非<<位左移LSHIFTRSHIFT位右移常用關(guān)鍵字ON[DEVICE,CHANNEL]//OFF[DEVICE,CHANNEL]//關(guān)PULSE[DEVICE,CHANNEL]//TO[DEVICE,CHANNEL]//SEND_COMMANDDEV,”<commandstring>”SEND_STRINGDEV,”<string>”大事處理:BUTTON_EVENT這個(gè)關(guān)鍵字規(guī)定了一個(gè)按鈕大事的處理。它包括按下、釋放、持續(xù)三個(gè)事件,在一個(gè)指定的設(shè)備通道上,這三個(gè)大事與按下和釋放按鈕是嚴(yán)密相連的,按鈕大事包含一個(gè)可選擇的反響信息處理,它在大事處理完成之后馬上運(yùn)行。在任BUTTON_EVENT[<device>,<channel>]{PUSH:{/*當(dāng)按鈕按下去時(shí)執(zhí)行的動(dòng)作*/}RELEASE:{/*當(dāng)按鈕松手時(shí)執(zhí)行的動(dòng)作*/}HOLD[<time>,[REPEAT]]:{/*當(dāng)按鈕按住時(shí)過了多長(zhǎng)時(shí)間/或每隔多長(zhǎng)時(shí)間重復(fù)執(zhí)行的動(dòng)作*/}}Example:BUTTON_EVENT[TP,1]{PUSH:/*按下觸摸屏第一個(gè)通道時(shí)執(zhí)行的動(dòng)作*/{ON[RELAY,1]}}BUTTON_EVENTPropertyNameTypeDescriptionButton.InputDevice+ChannelDEVCHANButton.Input.ChannelChannelINTEGERButton.Input.DeviceDeviceDEVButton.Input.Device.NumberDevicenumberINTEGERButton.Input.Device.PortDeviceportINTEGERButton.Input.Device.SystemSystemnumberINTEGERLONGButton.HoldtimeCurrentholdtimein.10secondincrements.Note:Button.Holdtimereturnsarein1msincrements.DEVButton.SourceDevSourcedeviceofbuttoneventButton.SourceDev.NumberSourcedevicenumberINTEGERButton.SourceDev.PortSourcedeviceportINTEGERButton.SourceDev.SystemSourcedevicesystem.INTEGERDATA_EVENT這個(gè)關(guān)鍵字規(guī)定了一個(gè)數(shù)據(jù)大事的處理。在一個(gè)系統(tǒng)中,觸發(fā)信息傳到主機(jī)或者設(shè)備的時(shí)候,可分為五種類型:1、設(shè)備接收到數(shù)據(jù)字符串(RS-232device)2、設(shè)備從主機(jī)接收到SEND_COMMAND命令3、主機(jī)檢測(cè)到設(shè)備在線4、主機(jī)檢測(cè)到設(shè)備不在線5、被控設(shè)備發(fā)生錯(cuò)誤信息DATA_EVENT[<device>]{COMMAND:{/*設(shè)備從主機(jī)接收到SEND_COMMAND命令*/}STRING:{/*設(shè)備接收到數(shù)據(jù)字符串(RS-232device)*/}ONLINE:{/*主機(jī)檢測(cè)到設(shè)備在線*/}OFFLINE:{/*主機(jī)檢測(cè)到設(shè)備不在線*/}ONERROR:{/*被控設(shè)備發(fā)生錯(cuò)誤信息*/}}Example:DATA_EVENT[PROJECT]{ONLINE:{SEND_COMMANDPROJECT,”SET_BAUD19200,N,8,1”}}DATA_EVENT特性描述表:PropertyNameTypeDescriptionData.DeviceDeviceDEVData.Device.NumberDevicenumberINTEGERData.Device.PortDeviceportINTEGERData.Device.SystemSystemnumberINTEGERData.NumberEventnumberLONGCHARArrayData.TextTextassociatedwiththeeventLEVEL_EVENT化作為一個(gè)結(jié)果被接收,也就是拉條值的轉(zhuǎn)變引發(fā)的大事。定義格式如下:LEVEL_EVENT[<device>,<level>]{/*當(dāng)拉條發(fā)生變化時(shí)產(chǎn)生的語句*/}Example:LEVEL_EVENT[TP,1]{IF(LEVEL.VALUE>=COOL_POINT){ON[RELAY,FAN]}ELSEIF(LEVEL.VALUE<=HEAT_POINT){OFF[RELAY,FAN]}}個(gè)臨時(shí)設(shè)備。LEVEL_EVENTPropertyNameTypeDescriptionDEVLEVLevel.InputDevice+LevelthatcausedtheeventtooccurDEVLevel.Input.DeviceDeviceINTEGERLevel.Input.Device.NumberDevicenumberINTEGERLevel.Input.Device.PortDeviceportINTEGERLevel.Input.Device.SystemSystemnumberINTEGERLevel.Input.LevelLevelnumberDEVLevel.SourceDevSourceDeviceofLevelEventINTEGERLevel.SourceDev.NumberSourceDeviceNumberINTEGERLevel.SourceDev.PortSourceDevicePortINTEGERLevel.SourceDev.SystemSourceDeviceSystemNumericLevel.ValueLevelvalue附加:拉條的介紹LevelValues13580Level2Level100255255如:可以用來反響當(dāng)前燈光的亮度和音量的大小讀取的值要讀取拉條的設(shè)備讀取拉條數(shù)據(jù)的變量CREATE_LEVELdevice,levelnumber,variable要讀取拉條的通道號(hào)寫入SEND_LEVELTP,1,VOL_LEVEL要寫入拉條的通道號(hào)DEFINE_CONNECT_LEVEL這個(gè)關(guān)鍵字規(guī)定了拉條的聯(lián)結(jié)。定義格式如下:DEFINE_CONNECT_LEVEL/**/(device1,levelnumber1,device2,levelnumber2,...etc.)Example:DEFINE_CONNECT_LEVEL(TP,1,VOL,1,VOL,2)//關(guān)聯(lián)COMBINE_LEVELS(VIRTUAL1,1,TP1,1,TP2,1,TP3,1)//UNCOMBINE_LEVELS(VIRTUAL1,1)//取消關(guān)聯(lián)CHANNEL_EVENT生轉(zhuǎn)變時(shí),這個(gè)處理類型就被調(diào)用。定義格式如下:CHANNEL_EVENT[DEVICE,CHANNEL]{ON:{/*通道翻開的大事處理*/}OFF:{/*關(guān)閉通道的大事處理*/}}CHANNEL_EVENT特性描述表:PropertyNameTypeDescriptionDEVChannel.DeviceDeviceINTEGERChannel.Device.NumberDevicenumberINTEGERChannel.Device.PortDeviceportINTEGERChannel.Device.SystemSystemnumberINTEGERChannel.ChannelDevicechannelDEVChannel.SourceDevSourceDeviceofChannelEventINTEGERChannel.SourceDev.NumberSourceDeviceNumberINTEGERChannel.SourceDev.PortSourceDevicePortINTEGERChannel.SourceDev.SystemSourceDeviceSystemTIMELINE_EVENT被生成。定義格式如下:TIMELINE_EVENT[timelineID]Example:Define_DevicedvPanel=128:1:0DEFINE_VARIABLELONGTimeArray[100]DEFINE_CONSTANTTL1=1TL2=2DEFINE_EVENTTIMELINE_EVENT[TL1]/*TL1的時(shí)間線*/{switch(Timeline.Sequence)/**/{case1:{SEND_COMMANDdvPanel,“”TEXT1-11”“}case2:{SEND_COMMANDdvPanel,“”TEXT1-12”“}case3:{SEND_COMMANDdvPanel,“”TEXT1-13”“}case4:{SEND_COMMANDdvPanel,“”TEXT1-14”“}case5:{SEND_COMMANDdvPanel,“”TEXT1-15”“}}}TIMELINE_EVENT[TL2]/*TL2的時(shí)間線*/{switch(Timeline.Sequence)/**/{case1:{SEND_COMMANDdvPanel,“”TEXT2-21”“}case2:{SEND_COMMANDdvPanel,“”TEXT2-22”“}case3:{SEND_COMMANDdvPanel,“”TEXT2-23”“}case4:{SEND_COMMANDdvPanel,“”TEXT2-24”“}case5:{SEND_COMMANDdvPanel,“”TEXT2-25”“}}}DEFINE_PROGRAMPUSH[dvPanel,1]{TimeArray[1]=1000TimeArray[2]=2000TimeArray[3]=3000TimeArray[4]=4000TimeArray[5]=5000TIMELINE_CREATE(TL1,TimeArray,5,TIMELINE_ABSOLUTE,TIMELINE_REPEAT)}PUSH[dvPanel,2]{TimeArray[1]=1000TimeArray[2]=1000TimeArray[3]=1000TimeArray[4]=1000TimeArray[5]=1000TIMELINE_CREATE(TL2,TimeArray,5,TIMELINE_RELATIVE,TIMELINE_ONCE)}繼電器掌握ON[RELAY,1]/*翻開繼電器1*/1*/BUTTON_EVENT[TP,1]{PUSH:/*按下觸摸屏第一個(gè)通道時(shí)執(zhí)行的動(dòng)作*/{ON[RELAY,1]}}紅外掌握PULSE[DVD,1]/*PLAY*/TO[DVD,6]/*SCAN-FFWD*/BUTTON_EVENT[TP,11]{PUSH:/*DVD*/{PULSE[DVD,1]}}串口掌握SEND_COMMANDSWITCHER,?SETBAUD9600,N,8,1?8,1*/SEND_COMMANDSWITCHER,?SETBAUD9600,N,8,1485ENABLE?485DISABLE485422*/SEND_STRINGSWITCHER,”$AB,$CC,$AD,$5B”SEND_STRINGSWITCHER,“?CL0I1O2T?,$0D”SEND_STRINGSWITCHER,“?CL0I1O2T?,13”注釋:發(fā)出AB,CC,AD,5B1616“$”所開頭,SEND_STRING,ASCII模擬量掌握SEND_COMMANDD:P:S,?P2L100T2?BUTTON_EVENT[TP,12]{PUSH:/*12*/{SEND_COMMANDD:P:S,?P2L100T2?}}互鎖在定義了互鎖的通道號(hào)中,在同一時(shí)間內(nèi)只能有一個(gè)通道號(hào)翻開DEFINE_MUTUALLY_EXCLUSIVE([RELAY,1],[RELAY,2])([RELAY,3],[RELAY,4],[RELAY,5])([RELAY,3]...[RELAY,5])3、4、5三者也只能翻開一個(gè),下面兩句定義的繼電器3、4、5是等值的。*/DEFINE_PROGRAM這個(gè)程序段規(guī)定了主線代碼。這段代碼不斷地被執(zhí)行(處理輸入的數(shù)據(jù)和供給設(shè)DEFINE_PROGRAM[TP,1]=[RELAY,1]1*/DEFINE_PROGRAM[TP,1]=(POWERONOFF=1)1*/&在程序執(zhí)行過程中的反響ON[TP,1]OFF[TP,1]11*/變量與等待數(shù)據(jù)類型KeywordDataTypeSignSizeRangeCHARByteUnsigned8-bit0-255WIDECHARIntegerUnsigned16-bit0-65535INTEGERIntegerUnsigned16-bit0-65536SINTEGERIntegerSigned16-bit-32768to+32768LONGLongIntegerUnsigned32-bit4,294,967,295SLONGLongIntegerSigned32-bit+2,147,483,647FLOATFloatingSigned32-bit1.79769313E+308toPoint2.22507385E-308DOUBLEDoubleSigned64-bit3.40282347E+38toPrecision1.17549435E-38FloatingPoint數(shù)據(jù)類型之間的轉(zhuǎn)換ATOI/**/ITOA/**/ITOHEX/*十進(jìn)制轉(zhuǎn)十六進(jìn)制*/,如:?CL0I1O1T?表現(xiàn)類型變量的的分類型可分為NON_VOLATILE,VOLATILEorPERSISTENT.NON_VOLATILE存儲(chǔ)在不行變內(nèi)存中,當(dāng)系統(tǒng)關(guān)閉的時(shí)候,它的值是保持不變的;當(dāng)程序重載內(nèi)存區(qū)域中。DEFINE_VARIABLE/*設(shè)置變量*/INTEGERCURRENT_VOL_LEVEL/**/VOLATILE,適合存儲(chǔ)大型數(shù)據(jù)。-DEFINE_VARIABLE/*設(shè)置變量*/VOLATILEINTEGERCURRENT_VOL_LEVEL/**/PERSISTENT0。當(dāng)系統(tǒng)關(guān)閉或重載,它的值不變;當(dāng)與它相關(guān)的變量值發(fā)生變化時(shí),它的值將喪失。DEFINE_VARIABLE/*設(shè)置變量*/PERSISTENTINTEGERCURRENT_VOL_LEVEL/*定義音量值變量*/CONSTANTDEFINE_CONSTANTDLP_ON_FB=201DLP_OFF_FB=202局部變量和全局變量Localscope:LOCAL_VARINTEGERnGlobalscope:INTEGERmWAIT&CANCEL_WAIT這兩個(gè)關(guān)鍵字分別規(guī)定了一個(gè)時(shí)間的延時(shí)和取消。定義格式如下:WAITtime[?<name>?]/*延遲*/CANCEL_WAIT?<waitname>?/*取消延遲*/Example:Wait50ON[RELAY,1]/*51*/OFF[RELAY,1]51*/OFF[RELAY,1]CANCEL_WAIT?LIGHTON?/**/條件語句ConditionalsIF(conditionalexpression)/**/{/*1*/}expression1IF(conditionalexpression)/*推斷條件表達(dá)式*/{/*1*/}ELSE{/*2*/}expression1,否則執(zhí)2IF(conditionalexpression)/*1*/ELSEIF(conditionalexpression)ELSE/*執(zhí)行默認(rèn)語句*/Example:BUTTON_EVENT[TP,1]{PUSH:{IF(X=1)ON[RELAY,1]ELSEIF(X=2)ON[RELAY,2]ELSEON[RELAY,3]}}SELECT{ACTIVE(conditionalexpression1)://1ACTIVE(conditionalexpression2)://2ACTIVE(conditionalexpression3)://3// 等等.ACTIVE(1)://Example:BUTTON_EVENT[TP,1]{PUSH:{SELECT{1]}ACTIVE(X=1):{ON[RELAY,ACTIVE(X=2):{ON[RELAY,2]}ACTIVE(X=3):{ON[RELAY,3]}ACTIVE(1):{ON[RELAY,4]}}}}SWITCH(X){CASE10:{/*10*/}CASE11:{/*11*/}DEFAULT:{/*1011*/}}調(diào)用子程序DEFINE_CALL”<name>”[(P1,P2,...)]{/*子程序的主體*/}Example:DEFINE_CALL”SCREENSTOP?/*_停頓子程序?yàn)椤癝CREENUP“*/{ON[RELAY,SCREEN_STOP_FB]//OFF[RELAY,1]//12調(diào)用函數(shù)定義格式:DEFINE_FUNCTION[<returntype>]FnName[(Param1,Param2,...)]{/*要執(zhí)行的語句*/}Example:/*定義一個(gè)函數(shù)*/DEFINE_FUNCTIONINTEGERReadBuffer(CHARBuffer,INTEGERBufSize){INTEGERnBytes=0//0/*要執(zhí)行的函數(shù)語句*/RETURNnBytes//返回該函數(shù)類型}第一實(shí)例(***********************************************************)(*AMX*)(***********************************************************)PROGRAM_NAME=”BEIJING15-07-2000TRAINING2”(*程序文件名,最終修改日*)(*DATE:07/15/00TIME:18:14:34*)(***********************************************************)(*SystemType*)(***********************************************************)(***********************************************************)(*DEVICENUMBERDEFINITIONSGOBELOW*)(***********************************************************)DEFINE_DEVICE(*定義_設(shè)備號(hào)*)PROJ=1(*定義投影機(jī)_1#*)RELAY=7(*定義繼電器_7#*)VCD=8(*VCD_8#*)VOL=85(*定義調(diào)音合_85#*)WP=87(*定義墻身按鍵_87*)TP=128(*定義觸摸屏_128#*)DEFINE_CONNECT_LEVEL(*定義拉條與設(shè)備值相關(guān)聯(lián)*)(*TP,1VOL,1TVOL,2*)(***********************************************************)(*CONSTANTDEFINITIONSGOBELOW*)(***********************************************************)DEFINE_CONSTANT(*定義_常量*)SCREEN_UP_B=1(*定義電動(dòng)幕_向上_按鍵=1*)SCREEN_STOP_B=2(*定義電動(dòng)幕_停頓_按鍵=2*)SCREEN_DOWN_B=3*定義電動(dòng)幕_向下_按鍵=3*)SCREEN_UP_FB=101(*定義電動(dòng)幕_向上_按鍵反響=101*)RELAY79~255SCREEN_STOP_FB=102*定義電動(dòng)幕_停頓_按鍵反響=102*)SCREEN_DOWN_FB=103(*定義電動(dòng)幕_向下_按鍵反響=103*)PLAY_B=11(*定義播放_(tái)按鍵=11*)STOP_B=12(*定義停頓_按鍵=12*)PAUSE_B=13(*定義暫停_按鍵=13*)SKIP_FWD_B=14(*定義跳轉(zhuǎn)_快進(jìn)_按鍵=14*)SKIP_REW_B=15(*定義跳轉(zhuǎn)_快退_按鍵=15*)SCAN_FWD_B=16*定義搜尋_快進(jìn)=16*)SCAN_REW_B=17*定義搜尋_快退_按鍵=17*)POWER_B=19*定義電源_按鍵=19*)VOL_UP_B=21(*音量_增加_按鍵=21*)VOL_DOWN_B=22(*音量_削減_按鍵=22*)VOL_MUTE_B=23(*音量_靜音_按鍵=23*)VOL_SLIDER=24(*音量_拉條按鈕號(hào)=24*)VOL_PRESET_B=25(*音量_預(yù)置_按鍵=25*)PROJ_ON_B=31(*投影機(jī)_開_按鍵=21*)PROJ_OFF_B=32(*投影機(jī)_關(guān)_按鍵=21*)PROJ_VIDEO_B=33(*投影機(jī)_切換視頻_按鍵=21*)PROJ_RGB_B=34*投影機(jī)_VGA_按鍵=21*)PROJ_ON_FB=104(*投影機(jī)_開_按鍵反響=21*)PROJ_OFF_FB=105(*投影機(jī)_開_按鍵反響=21*)(***********************************************************)(*VARIABLEDEFINITIONSGOBELOW*)(***********************************************************)DEFINE_VARIABLE(*設(shè)置變量*)CURRENT_VOL_LEVEL(*定義音量值變量*)PRESET_VOL_LEVELSTORE_MODEPROJ_BUSY(*定義投影機(jī)輸入端子*)(***********************************************************)(*LATCHINGDEFINITIONSGOBELOW*)(***********************************************************)DEFINE_LATCHING)(***********************************************************)(*MUTUALLYEXCLUSIVEDEFINITIONSGOBELOW*)(***********************************************************)DEFINE_MUTUALLY_EXCLUSIVE(*定義互鎖*)([RELAY,SCREEN_UP_FB]..[RELAY,SCREEN_DOWN_FB])*定義電動(dòng)幕上_停_下按鈕反響互鎖*)([7,,[7,,[7,)([7,101]..[7,)([RELAY,PROJ_ON_FB],[RELAY,PROJ_OFF_FB])*定義投影機(jī)開_關(guān)按鈕反響互鎖*)(***********************************************************)(*SUBROUTINEDEFINITIONSGOBELOW*)(*定義子程序*)(*IFORDEFINE_START*)(*否則在第一次的起動(dòng)時(shí)其按鍵會(huì)沒有響應(yīng)*)DEFINE_CALL”SCREENUP”(*定義電動(dòng)幕_向上子程序?yàn)椤癝CREENUP“*){IF(NOT[RELAY,SCREEN_UP_FB])(*推斷電動(dòng)幕向上反響銨鈕不是開則運(yùn)行以下程序*)CANCEL_WAIT”SCREENWAIT”(*取消等待“SCREENWAIT”命令*)ON[RELAY,SCREEN_UP_FB](*將電動(dòng)幕向上反響按鈕置為開*)OFF[RELAY,1](*1*)2*)WAIT5(*0.5*){ON[RELAY,1](*1*)}101,2繼電器長(zhǎng)時(shí)間處于通電狀態(tài)*)WAIT100”SCREENWAIT”(*10?SCREENWAIT?子程序*){1*)2*)ON[RELAY,SCREEN_STOP_FB](*將電動(dòng)幕停頓反響按鈕置為開*)}}}DEFINE_CALL”SCREENSTOP”(*定義電動(dòng)幕_停頓子程序?yàn)椤癝CREENUP“*){ON[RELAY,SCREEN_STOP_FB](*將電動(dòng)幕停頓反響按鈕置為開*)OFF[RELAY,1](*1*)OFF[RELAY,2](*2*)}DEFINE_CALL”SCREENDOWN”(*定義電動(dòng)幕_下降子程序?yàn)椤癝CREENDOWN“*){IF(NOT[RELAY,SCREEN_DOWN_FB])(*推斷電動(dòng)幕向下反響銨鈕不是開則運(yùn)行以下程序*){CANCEL_WAIT”SCREENWAIT”(*取消等待“SCREENWAIT”命令*)ON[RELAY,SCREEN_DOWN_FB](*將電動(dòng)幕向下反響按鈕置為開*)OFF[RELAY,1](*1*)2*)*){ON[RELAY,2](*2*)這時(shí)是先將非供電繼電器翻開WAIT10.10.1ON[RELAY,1](*1*)再將供電繼電器翻開}WAIT100”SCREENWAIT”(*10?SCREENWAIT?子程序*){1*)2*)ON[RELAY,SCREEN_STOP_FB](*將電動(dòng)幕停頓反響按鈕置為開*)}}}(***********************************************************)(*STARTUPCODEGOESBELOW*)(***********************************************************)DEFINE_START(*設(shè)定初使?fàn)顟B(tài)*)BAUD19200,N,8,1”(**)PROJ_BUSY=0ON[RELAY,SCREEN_STOP_FB](*將電動(dòng)幕反響按鈕預(yù)置為開*)PRESET_VOL_LEVEL=50(*50*)(*VOL1CURRENT_VOL_LEVEL變量*)(***********************************************************)(*THEACTUALPROGRAMGOESBELOW*)(*主程序*)(***********************************************************)DEFINE_PROGRAM(*主程序*)PUSH[TP,SCREEN_UP_B](*當(dāng)按下觸摸屏(TP),電動(dòng)幕上升鍵(SCREEN_UP_B)執(zhí)行下面的程序*)PUSH[WP,SCREEN_UP_B](*當(dāng)按下墻身面板(WP),電動(dòng)幕上升鍵(SCREEN_UP_B)執(zhí)行下面的程序*){CALL”SCREENUP”(*CALL?SCREENUP?*)}PUSH[TP,SCREEN_STOP_B](*當(dāng)按下觸摸屏(TP),電動(dòng)幕停頓鍵執(zhí)行下面的程序*)PUSH[WP,SCREEN_STOP_B](*當(dāng)按下觸摸屏的電動(dòng)幕停頓鍵執(zhí)行下面的程序*){CALL”SCREENSTOP”(*CALL?SCREENSTOP?*)}PUSH[TP,SCREEN_DOWN_B](*當(dāng)按下觸摸屏的電動(dòng)幕下降鍵執(zhí)行下面的程序*)PUSH[WP,SCREEN_DOWN_B](*當(dāng)按下觸摸屏的電動(dòng)幕下降鍵執(zhí)行下面的程序*){CALL”SCREENDOWN”(*CALL?SCREENDOWN?*)}(*PUSH當(dāng)按其它鍵時(shí)其反響值雖然已變,但賦給觸摸屏的語句無法執(zhí)行所產(chǎn)生的。*)[TP,SCREEN_DOWN_B]=[RELAY,SCREEN_DOWN_FB]*將繼電器的電動(dòng)幕下降反響值送給觸摸屏電動(dòng)幕下降按鈕*)[TP,SCREEN_UP_B]=[RELAY,SCREEN_UP_FB]*將繼電器的電動(dòng)幕上升反響值送給觸摸屏電動(dòng)幕上升按鈕*)[TP,SCREEN_STOP_B]=[RELAY,SCREEN_STOP_FB]*將繼電器的電動(dòng)幕停頓反響值送給觸摸屏電動(dòng)幕停頓按鈕*)[WP,SCREEN_DOWN_B]=[RELAY,SCREEN_DOWN_FB]*將繼電器的電動(dòng)幕下降反響值送給墻身面板電動(dòng)幕下降按鈕*)[WP,SCREEN_UP_B]=[RELAY,SCREEN_UP_FB]*將繼電器的電動(dòng)幕上升反響值送給墻身面板電動(dòng)上升降按鈕*)[WP,SCREEN_STOP_B]=[RELAY,SCREEN_STOP_FB]*將繼電器的電動(dòng)幕停頓反響值送給墻身面板電動(dòng)幕停頓按鈕*)(*PUSH[TP,PLAY_B]{PULSE[VCD,1]PULSE[TP,PLAY_B]}PUSH[TP,STOP_B]{PULSE[VCD,2]PULSE[TP,STOP_B]}PUSH[TP,PAUSE_B]{PULSE[VCD,3]PULSE[TP,PAUSE_B]}PUSH[TP,SKIP_FWD_B]{(*PULSE0.1*)PULSE[VCD,4](*PULSE0.5*)PULSE[TP,SKIP_FWD_B]}PUSH[TP,SKIP_REW_B]{SET_PULSE_TIME(1)PULSE[VCD,5]SET_PULSE_TIME(5)PULSE[TP,SKIP_REW_B]}PUSH[TP,SCAN_FWD_B]{TO[VCD,6]TO[TP,SCAN_FWD_B]}PUSH[TP,SCAN_REW_B]{TO[VCD,7]TO[TP,SCAN_REW_B]}*)VCD,從觸摸屏輸入,播放鍵,停頓鍵,……,0(為無按鍵)*)SYSTEM_CALL”CD2”(VCD,TP,PLAY_B,STOP_B,PAUSE_B,(*注:PLAY_B,STOP_B名必需在定義常量?jī)?nèi)首先定義才可使用。*)PUSH[TP,POWER_B](*當(dāng)按下解摸屏的電源鍵執(zhí)行下面程序*){PULSE[VCD,9](*VCD9*)PULSE[TP,POWER_B](*反響已接收到指令到觸摸屏電源按鍵*)}PUSH[TP,VOL_UP_B](*當(dāng)按下觸摸屏音量上升鍵執(zhí)行下面程序*){OFF[VOL,3](*3*)12*)TO[TP,VOL_UP_B](*依據(jù)按下鍵的時(shí)間顯示觸摸屏音量上調(diào)按鈕*)}PUSH[TP,VOL_DOWN_B](*當(dāng)按下觸摸屏音量下調(diào)鍵執(zhí)行下面程序*){OFF[VOL,3](*VOL3*)TO[VOL,2](*12*)TO[TP,VOL_DOWN_B](*依據(jù)按下鍵的時(shí)間顯示觸摸屏音量下調(diào)按鈕*)PUSH[TP,VOL_MUTE_B](*當(dāng)按下觸摸屏靜音鍵執(zhí)行下面程序*){[VOL,3]=NOT[VOL,3](*VOL3*)}[TP,VOL_MUTE_B]=[VOL,3](*VOL3*)PUSH[TP,VOL_SLIDER](*當(dāng)按下觸摸屏的音量滑條時(shí)執(zhí)行下面的程序*){OFF[VOL,3](*VOL3*)}PUSH[TP,VOL_PRESET_B](*當(dāng)按下觸摸屏預(yù)置按時(shí)執(zhí)行下面的程序*){STORE_MODE=0(*STORE_MODE0*)(*2?STOREPRESET?*){STORE_MODE=1(*STORE_MODE1*)SEND_COMMANDTP,”ADBEEP”(*要求觸摸屏發(fā)一個(gè)聲音,告知已完成命令*)}}RELEASE[TP,VOL_PRESET_B](*當(dāng)長(zhǎng)時(shí)間按下觸摸屏音量重置鍵執(zhí)行下面的程序*){CANCEL_WAIT”STOREPRESET”(*取消等待?STOREPRESET?*)IF(STORE_MODE)(*STORE_MODEO*){(*CURRENT_VOL_LEVELPRESET_VOL_LEVEL*)}*){OFF[VOL,3](*VOL3*)SEND_COMMANDVOL,“”P0L”,ITOA(PRESET_VOL_LEVEL),”T20”“(*VOL令將其設(shè)定為所需顧預(yù)置值*)}}PRESET_VOL_LEVEL,再將其值賦VOL_PRESET_B*)[TP,VOL_PRESET_B]=(PRESET_VOL_LEVEL=CURRENT_VOL_LEVEL)PUSH[TP,PROJ_ON_B](*當(dāng)按下觸摸屏,投影機(jī)_開_鍵時(shí)執(zhí)行下面的程序*){IF(NOT[RELAY,PROJ_ON_FB])(*假設(shè)繼電器,投影機(jī)_開_反響按鍵為非開狀態(tài)時(shí)執(zhí)行下面的程序*){IF(NOT[PROJ_BUSY])(*假設(shè)投影機(jī)處于不忙狀態(tài)*){ON[RELAY,PROJ_ON_FB](*將投影機(jī)開反響鍵翻開*)PROJ_BUSY=1(*將投影機(jī)變量設(shè)置為忙狀態(tài)*)(*RS-232*)600(*60*)PROJ_BUSY=0(*將投影機(jī)變量設(shè)置為不忙狀態(tài)*)}}}PUSH[TP,PROJ_OFF_B](*當(dāng)按下觸摸屏,投影機(jī)_關(guān)_鍵時(shí)執(zhí)行下面的程序*){IF(NOT[RELAY,PROJ_OFF_FB])(*假設(shè)繼電器,投影機(jī)_關(guān)_反響按鍵為非開狀態(tài)時(shí)執(zhí)行下面的程序*){IF(NOT[PROJ_BUSY])(*假設(shè)投影機(jī)處于不忙狀態(tài)就執(zhí)行下面的程序*){ON[RELAY,PROJ_OFF_FB](*將投影機(jī)關(guān)反響鍵翻開*)PROJ_BUSY=1(*將投影機(jī)變量設(shè)置為忙狀態(tài)*)(*RS-232*)WAIT600(*60*)PROJ_BUSY=0(*將投影機(jī)變量設(shè)置為不忙狀態(tài)*)}}}[TP,PROJ_ON_B]=[RELAY,PROJ_ON_FB]*將投影機(jī)開反響值賦給觸摸屏的開按鈕*)[TP,PROJ_OFF_B]=[RELAY,PROJ_OFF_FB](*將投影機(jī)關(guān)反響值賦給觸摸屏的關(guān)按鈕*)IF([RELAY,PROJ_ON_FB])(*假設(shè)投影機(jī)開反響值為真就執(zhí)行下面的程序*){PUSH[TP,PROJ_VIDEO_B](*當(dāng)按下觸摸屏投影機(jī)視頻按鈕時(shí)執(zhí)行下面程序*){SEND_STRING1,“”C07”,13“(*1RS-232令*)PULSE[TP,PROJ_VIDEO_B](*將觸摸屏的投影機(jī)視頻按鍵按下*)}PUSH[TP,PROJ_RGB_B](*RGB*){SEND_STRING1,“”C05”,13“(*1RS-232RGB令*)PULSE[TP,PROJ_RGB_B](*RGB*)}}(*SEND¬_STRINGRS-232/485/422(1-6得,再按其編碼發(fā)送相應(yīng)指令。*)(***********************************************************)(*ENDOFPROGRAM*)(*DONOTPUTANYCODEBELOWTHISCOMMENT*)(***********************************************************)其次實(shí)例通過前面學(xué)習(xí),試分析下程序PROGRAM_NAME=”20101225SD(***********************************************************)(***********************************************************)(*FILE_LAST_MODIFIED_ON:04/05/2006AT:09:00:25*)(***********************************************************)Type:NetLinx*)(*System(***********************************************************)(*REVHISTORY:*)(***********************************************************)(*$History:$*)(***********************************************************)(*DEVICENUMBERDEFINITIONSGOBELOW*)(***********************************************************)DEFINE_DEVICEVTP=32768:1:0MVP_8400=10001:1:0VTRON=5001:1:0(*SONYFX40PROJ*)HDSDI=5001:2:0(*AUTOPATCHAVS-MD-1616-HD0*)VGA=5001:3:0(*AUTOPATCHAVS-MD-3232-840*)BIAMP=5001:4:0(*BIAMPFLEX*)CAM=5001:5:0(*SONYBRC-H700/Z330*)REL=5001:6:0DVD=5001:9:0TV_1=5001:10:0TV_2=5001:11:0TV_3=5001:12:0TV_4=5001:13:0(***********************************************************)(*CONSTANTDEFINITIONSGOBELOW*)(***********************************************************)DEFINE_CONSTANTVTRON_ON=20VTRON_OFF=21(***********************************************************)(*DATATYPEDEFINITIONSGOBELOW*)(***********************************************************)DEFINE_TYPE(***********************************************************)(*VARIABLEDEFINITIONSGOBELOW*)(***********************************************************)DEFINE_VARIABLEVTRON_BUSYD70P_SPEEDCAM_SELPRESETINTEGERVGA_INPUTINTEGERVGA_OUTPUTINTEGERVGA_ST[16]VVINTEGERVGA_Y_INPUTINTEGERVGA_Y_OUTPUTINTEGERVGA_Y_ST[16]YYintegertv_selINTEGERHDSDI_INPUTINTEGERHDSDI_OUTPUTINTEGERHDSDI_ST[16]HHDEVCRTL_DEV[]={VTP}INTEGERBIAMP_UP_TP[17]={901,902,903,904,905,906,907,908,909,910,911,912,913,914,915,916,917}//音量增加按鈕號(hào),ChannelCodeINTEGERBIAMP_MUTE_TP[17]={1001,1002,1003,1004,1005,1006,1007,1008,1009,1010,1011,1012,1013,1014,1015,1016,1017}//音量靜音按鈕號(hào),ChannelCodeINTEGERBIAMP_DOWN_TP[17]={1101,1102,1103,1104,1105,1106,1107,1108,1109,1110,1111,1112,1113,1114,1115,1116,1117}//音量減小按鈕號(hào),ChannelCodeINTEGERBIAMP_SHOW_TP[17]={1201,1202,1203,1204,1205,1206,1207,1208,1209,1210,1211,1212,1213,1214,1215,1216,1217}//音量顯示地址號(hào),AddressCodeINTEGERBIAMP_DEF_TP[17]={1301,1302,1303,1304,1305,1306,1307,1308,1309,1310,1311,1312,1313,1314,1315,1316,1317}//恢復(fù)默認(rèn)音量按鈕號(hào),ChannelCodeCHARBIAMP_ID_IDX[17][17]={”43”,”44”,”45”,”46”,”47”,”48”,”49”,”410”,”21”,”22”,”23”,”27”,”258”,”255”}//BiampInstanIDIndex1INTEGERBIAMP_VOL_MAX[17]={1030,1030,1030,1030,1030,1030,1030,1030,1030,1030,1030,1030,1030,1030,1030,1030,1030}//各通道最大音量值INTEGERBIAMP_VOL_MIN[17]={700,700,700,700,700,700,700,700,700,700,700,700,700,700,700,700,700}//各通道最小音量值INTEGERBIAMP_VOL_VAL[17]={900,900,900,900,900,900,900,900,900,900,900,900,900,900,900,900,900}//用來保存各個(gè)通道的當(dāng)前音量值INTEGERBIAMP_VOL_DEF[17]={1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000}//用來保存各個(gè)通道的當(dāng)前音量值INTEGERBIAMP_MUTE_VAL[17](***********************************************************)(*LATCHINGDEFINITIONSGOBELOW*)(***********************************************************)DEFINE_LATCHINGDEFINE_CALL”VTRONON”{IF(![VTP,VTRON_ON]AND(VTRON_BUSY=0)){ON[VTP,VTRON_ON]ON[VTP,9]VTRON_BUSY=600WAIT40SEND_STRINGVTRON,“$A9,$17,$2E,$00,$00,$00,$3F,$9A“WAIT50SEND_STRINGVTRON,“$A9,$17,$2E,$00,$00,$00,$3F,$9A“WAIT600{VTRON_BUSY=0SEND_COMMANDMVP_8400,“”TEXT”,ITOA(20),”-0”“}}}DEFINE_CALL”VTRONOFF”{IF(![VTP,VTRON_OFF]AND(VTRON_BUSY=0)){ON[VTP,VTRON_OFF]VTRON_BUSY=1200ON[VTP,10]WAIT20SEND_STRINGVTRON,“$A9,$17,$2F,$00,$00,$00,$3F,$9A“WAIT30SEND_STRINGVTRON,“$A9,$17,$2F,$00,$00,$00,$3F,$9A“WAIT1200{VTRON_BUSY=0SEND_COMMANDMVP_8400,“”TEXT”,ITOA(20),”-0”“}}}(***********************************************************)(*MUTUALLYEXCLUSIVEDEFINITIONSGOBELOW*)(***********************************************************)DEFINE_MUTUALLY_EXCLUSIVE([VTP,10],[VTP,11])([VTP,20],[VTP,21])([VTP,22],[VTP,23])([VTP,24]..[VTP,27])//([VTP,30],[VTP,31])([VTP,100]..[VTP,115])([VTP,140]..[VTP,155])([VTP,180]..[VTP,195])(***********************************************************)(*SUBROUTINE/FUNCTIONDEFINITIONSGOBELOW*)(***********************************************************)(*EXAMPLE:DEFINE_FUNCTION<RETURN_TYPE><NAME>(<PARAMETERS>)*)(*EXAMPLE:DEFINE_CALL”<NAME>”(<PARAMETERS>)*)DEFINE_CALL”SUB_VOL_CHANGE”(INTEGERv_ID,CHARv_CODE[2],INTEGERv_VOL)//ID,Command,Data{SELECT{ACTIVE(v_CODE=”++”)://音量遞增,遞增幅度由Data給定{IF(BIAMP_VOL_VAL[v_ID]<BIAMP_VOL_MAX[v_ID]){BIAMP_VOL_VAL[v_ID]=BIAMP_VOL_VAL[v_ID]+v_VOLWAIT2if(BIAMP_MUTE_VAL[v_ID]=0)SEND_STRINGBIAMP,“”SETL1FDRLVL”,BIAMP_ID_IDX[v_ID],””,ITOA(BIAMP_VOL_VAL[v_ID]),$0D“SEND_COMMANDCRTL_DEV,“”TEXT”,ITOA(BIAMP_SHOW_TP[v_ID]),”-”,ITOA((BIAMP_VOL_VAL[v_ID]-BIAMP_VOL_MIN[v_ID])*100/(BIAMP_VOL_MAX[v_ID]-BIAMP_VOL_MIN[v_ID])),”%”“}}ACTIVE(v_CODE=”--”)://音量遞減,遞減幅度由Data給定{IF(BIAMP_VOL_VAL[v_ID]>BIAMP_VOL_MIN[v_ID]){BIAMP_VOL_VAL[v_ID]=BIAMP_VOL_VAL[v_ID]-v_VOLWAIT2if(BIAMP_MUTE_VAL[v_ID]=0)SEND_STRINGBIAMP,“”SETL1FDRLVL”,BIAMP_ID_IDX[v_ID],””,ITOA(BIAMP_VOL_VAL[v_ID]),$0D“SEND_COMMANDCRTL_DEV,“”TEXT”,ITOA(BIAMP_SHOW_TP[v_ID]),”-”,ITOA((BIAMP_VOL_VAL[v_ID]-BIAMP_VOL_MIN[v_ID])*100/(BIAMP_VOL_MAX[v_ID]-BIAMP_VOL_MIN[v_ID])),”%”“}}ACTIVE(v_CODE=”MT”)://靜音/恢復(fù)靜音反復(fù){[CRTL_DEV,BIAMP_MUTE_TP[v_ID]]=![CRTL_DEV,BIAMP_MUTE_TP[v_ID]]IF([CRTL_DEV,BIAMP_MUTE_TP[v_ID]]){BIAMP_MUTE_VAL[v_ID]=1SEND_STRINGBIAMP,“”SETL1FDRMUTE”,BIAMP_ID_IDX[v_ID],”1”,$0D“}ELSE{BIAMP_MUTE_VAL[v_ID]=0SEND_STRINGBIAMP,“”SETL1FDRMUTE”,BIAMP_ID_IDX[v_ID],”0”,$0D“}}ACTIVE(v_CODE=”MU”)://靜音{ON[CRTL_DEV,BIAMP_MUTE_TP[v_ID]]BIAMP_MUTE_VAL[v_ID]=1SEND_STRINGBIAMP,“”SETL1FDRMUTE”,BIAMP_ID_IDX[v_ID],”1”,$0D“}ACTIVE(v_CODE=”UM”)://取消靜音{OFF[CRTL_DEV,BIAMP_MUTE_TP[v_ID]]BIAMP_MUTE_VAL[v_ID]=0SEND_STRINGBIAMP,“”SETL1FDRMUTE”,BIAMP_ID_IDX[v_ID],”0”,$0D“}ACTIVE(v_CODE=”GD”)://恢復(fù)到默認(rèn)音量值{BIAMP_VOL_VAL[v_ID]=BIAMP_VOL_DEF[v_ID]if(BIAMP_MUTE_VAL[v_ID]=0)SEND_STRINGBIAMP,“”SETL1FDRLVL”,BIAMP_ID_IDX[v_ID],””,ITOA(BIAMP_VOL_VAL[v_ID]),$0D“SEND_COMMANDCRTL_DEV,“”TEXT”,ITOA(BIAMP_SHOW_TP[v_ID]),”-”,ITOA((BIAMP_VOL_VAL[v_ID]-BIAMP_VOL_MIN[v_ID])*100/(BIAMP_VOL_MAX[v_ID]-BIAMP_VOL_MIN[v_ID])),”%”“}ACTIVE(v_CODE=”SD”)://將當(dāng)前音量設(shè)置為默認(rèn)音量值{BIAMP_VOL_DEF[v_ID]=BIAMP_VOL_VAL[v_ID]SEND_COMMANDCRTL_DEV,”ADBEEP”}ACTIVE(v_CODE=”SV”)://設(shè)置具體音量值(0%-100%){BIAMP_VOL_VAL[v_ID]=(BIAMP_VOL_MAX[v_ID]-BIAMP_VOL_MIN[v_ID])*v_VOL/100if(BIAMP_MUTE_VAL[v_ID]=0)SEND_STRINGBIAMP,“”SETL1FDRLVL”,BIAMP_ID_IDX[v_ID],””,ITOA(BIAMP_VOL_VAL[v_ID]),$0D“SEND_COMMANDCRTL_DEV,“”TEXT”,ITOA(BIAMP_SHOW_TP[v_ID]),”-”,ITOA((BIAMP_VOL_VAL[v_ID]-BIAMP_VOL_MIN[v_ID])*100/(BIAMP_VOL_MAX[v_ID]-BIAMP_VOL_MIN[v_ID])),”%”“}}}(***********************************************************)(*STARTUPCODEGOESBELOW*)(***********************************************************)DEFINE_STARTCOMBINE_DEVICES(VTP,MVP_8400)SET_VIRTUAL_CHANNEL_COUNT(VTP,4000)D70P_SPEED=$07CAM_SEL=1VTRON_BUSY=0SEND_STRINGCAM,“$88,$30,$01,$FF“(***********************************************************)(*THEEVENTSGOBELOW*)(***********************************************************)DEFINE_EVENTDATA_EVENT[VTRON]{ONLINE:{SEND_COMMANDVTRON,”SETBAUD38400,E,8,1485DISABLE”}}DATA_EVENT[VGA]{ONLINE:{SEND_COMMANDVGA,”SETBAUD9600,N,8,1485DISABLE”}}DATA_EVENT[CAM]{ONLINE:{SEND_COMMANDCAM,”SETBAUD9600,N,8,1485DISABLE”}}DATA_EVENT[REL]{ONLINE:{SEND_COMMANDREL,”SETBAUD2400,N,8,1485DISABLE”}}DATA_EVENT[BIAMP]{

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論