AMX编程软件介绍语法说明及实例

合集下载

matlab基础语法

matlab基础语法

matlab基础语法Matlab是一种高级的计算机编程语言和环境,广泛应用于科学、工程和数据分析领域。

它具有强大的数值计算能力和丰富的函数库,可以用于解决各种数学问题、数据处理和可视化等任务。

本文将介绍Matlab的基础语法,包括变量定义、运算符、控制流程、函数定义等内容。

# 1. 变量定义在Matlab中,可以使用等号(=)来定义变量,并且无需指定变量类型。

例如:```x = 10;y = 'Hello, world!';```上述代码定义了一个整型变量x,并赋值为10;同时也定义了一个字符串变量y,并赋值为'Hello, world!'。

# 2. 运算符Matlab支持常见的数学运算符,如加法(+)、减法(-)、乘法(*)、除法(/)等。

还有一些特殊的运算符需要注意:## 2.1 矩阵运算符Matlab中矩阵是一种重要的数据结构,因此提供了矩阵专用的运算符。

使用*可以进行矩阵乘法操作:```A = [1, 2; 3, 4];B = [5, 6; 7, 8];C = A * B;```上述代码定义了两个2x2的矩阵A和B,并将它们相乘得到结果矩阵C。

## 2.2 逻辑运算符Matlab提供了逻辑运算符用于比较和组合逻辑表达式。

常用的逻辑运算符有等于(==)、大于(>)、小于(<)、与(&&)、或(||)等。

例如:```a = 5;b = 10;c = (a > b) && (b < 20);```上述代码定义了两个变量a和b,并使用逻辑与运算符判断a是否大于b并且b是否小于20,结果赋值给变量c。

# 3. 控制流程控制流程是编程中常用的结构,用于根据不同条件执行不同的代码块。

Matlab提供了if语句、for循环和while循环等用于控制流程的语句。

## 3.1 if语句if语句用于根据条件选择性地执行不同的代码块。

AMX编程软件介绍语法说明及实例

AMX编程软件介绍语法说明及实例

从上可知我们定义一个串口来控制矩阵,一个继电器口控制灯光,一个触摸屏进 行控制。如下程序:
DEFINE_DEVICE 下定义为
AVSWITCH RELAY TP
= 5001:1:1 = 5001:8:1 = 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 代表的是本系统(上面所提到的)。
通常我们编译程序文件的时候会生成 2 个文件,一个是 TKN,一个是 TKO,但有些人 多生成了一个 SRC 文件
这个 SRC 文件是怎么来的呢?
SRC 文件就是程序在电脑上运行的,可编程的文件
TKN 文件是 AMX 主机上面运行的机器执行文件
TKO 文件主要是用来做模块程序间的调用
TKO 的主要用途是当一个程序分为好几块程序来写的时候,如果是用到 define_module 来调用另 一个文件的时候,可以直接来调用 TKO 文件,而不需要给别人源文件程序,也可做到,自己的程序 不让别人看到代码照样能运行.
S 就是系统号,通过软件来设置,在一个系统的情况下,一例写 0,代表本系统, 肯定没错。所有的设备系统号都是跟着所连接的主机定义的。
还有一个更快捷的方法,把整个系统连接起来,通过编程软件涮新一下在线列表, 所有的设备号,系统号都会在在线列表里面显示出来。这样您定义设备的时候就 一目了然了。

AMX模块使用说明

AMX模块使用说明

AMX中控主机使用Xpanel Pro 控制操作说明一、Xpanel Pro的功能简介Xpanel Pro是一款第三方的iPhone&iPad端的控制软件,并提供接口,兼容各种品牌的可编程中控系统。

使用户可以将Apple iPad当触摸屏使用。

无论身处何处,只要轻击Apple平板触摸屏,就可以实时控制中控控制系统,如投影,灯光,信号切换、音响等。

二、Xpanel Pro的安装Xpanel Pro可以在App Stroe中免费下载。

只需在App Store中搜索Xpanel Pro 就能下载到iPad&iPhone中。

Xpanel Pro支持按钮、进度条、滑动条(AMX称拉条)、网页、天气预报、实时视频、动画、语音控制等功能。

Xpanel Pro自带演示界面,您也可以通过Xpanel Designer界面编写软件自行编写合适的界面。

关于Xpanel Designer 软件的使用说明,请参考<<Xpanel Designer 使用方法>>一文。

这里不详细介绍Xpanel Designer的使用方法。

三、无缝控制AMX NetLinx主机我们提供了AMX的模块包。

只需导入模块包,就可以实现通过Xpanel Pro软件控制AMX主机。

操作过程如下:1、运行NetLinx Studio AMX中控主机程序编写软件。

点击“File->New”,在弹出的窗口中选择新建一个Source。

并点击OK按钮,输入工程名称及保存路径后软件就会自动生成主机程序的框架。

2、根据实际情况添加设备。

(注意红色部份)3、定义端口变量(我们这里使用了15000这个端口)这个端口必须要和Xpanel Pro中设置的中控主机端口相同。

4、定义拉条、按钮的通道数。

(Xpanel_Pro暂时只支持999个按钮及999个拉条)经过上面4步,我们就实现了Xpanel_Pro模块的无缝接入了。

可编写按钮事件或拉条事件。

AMX指令教程

AMX指令教程

}
OFFLINE:
理。
{ // OffLine 处理机制用于当设备离线了做哪些处
}
ONERROR:
{ // OnError 当设务出现错误时需要做哪些处理。
}
STANDBY:
{ // 此处理机制一般比较少用到
} AWAKE:
{ // 此处理机制一般比较少用到
}
} BUTTON_EVENT:此事件为处理当用户点击触摸屏指定通道号
控后可在软件的"OnLine Tree"栏中查看到设备的设备号; P 为中控的端口号。此处需要注意两点。 一:当被定义的设备为中控自身时,其端口号为中控自身的一
些端口,例如串口对应的端口号为(1-7)、红外口对应的端口号为 (9-15)、继电器口等端口;
二:当被定义的设备为扩展设备时该端口多数为 1,取决于该 扩展设备有多少路输出。
当互锁的通道号为单独的两个时使用逗号",",当互锁的通道号 为连续的多个时可使用两点"..",程序中一但设置好后,当前状态的 Projector_Off 的通道为 ON 状态时,人为的设置 Projector_On 的通道
为 ON,则 Projector_Off 将被自动设置为 OFF 状态。 7)、关键字 DEFINE_START
1)、关键字 DEFINE_DEVICE 。 此关键字为定义设备,需注意的是所定义的设备均为 AMX 的
设备。 定义的格式为" Device = D:S: P " Device 为可任意定义的名称,为方便自己或别人日后查看程序,
可将此名称定义为设备的型号; D:S: P 中的 D 为设备的设备号,可通过 NetLinx Studio 联上中

AMX编程命令集说明

AMX编程命令集说明

Boolean Keywords
SELECT..ACTIVE 格式:SELECT {ACTIVE (条件 1):(命令) ACTIVE (条件 2):(命令) …… }
IF 格式:IF(条件) {命令}
ELES 格式:IF(条件) {命令} ELES (命令)
布尔关键字
选择
如果 否则
While Keywords
取消等待 取消等待…..直到
Time/Date/Day Keywords
DATE DAY TIME
Local Variables and Parameter Keywords
CALL
调用
DEFINE_CALL
定义被调用子程序
LOCAL_VAR
本地变量
Include File and System Call Keywords
取得脉冲时间
设备脉冲时间 定义联合
定义互锁
字符串控制关键字
查找字符串 取从左第一个到第 N 个字符串 取字符串的长度 大写转小写 取从 N 个字符开始取 M 个 取待查字符串之前的字符串(包含待查) 取从右第一个到第 N 个字符串 设置字符串长度 小写转大写
String Keywords
REDIRECT_STRING SEND_COMMAND SEND_STRING
BAND(&) BNOT(-) BOR(|) BXOR(^)
位操作
Variable and Conversion Keywords
ATOI INTEGER ITOA ITOHEX RANDOM_NUMBER 格式:RANDOM_NUMBER(10 整位数)
字符转换
字或字符串转换成整数 定义长整数变量(0-65536) 整数转换成字符串 将整数(10 进)转换成 16 进制 随机变量函数

AMX软件使用说明-bak

AMX软件使用说明-bak

AMX软件使用说明-bakAMX软件使用说明一、介绍AMX软件是一款功能强大的计算机辅助设计工具,用于创建和管理各种项目。

本文档将详细介绍AMX软件的安装、配置和使用方法。

二、安装1、确保计算机满足最低系统要求。

2、AMX软件安装程序。

3、执行安装程序并按照提示完成安装。

三、配置1、打开AMX软件。

2、在设置菜单中,选择适当的语言和界面选项。

3、设置用户权限和访问控制。

4、配置数据库连接,以便AMX软件可以连接到您的项目数据库。

四、创建项目1、在AMX软件中,“新建项目”按钮。

2、输入项目名称、描述和其他相关信息。

3、选择适当的项目类型。

4、配置项目属性和设置。

五、管理项目1、在项目列表中,选择要管理的项目。

2、在项目管理界面中,可以进行项目文件的、和删除操作。

3、添加和管理项目成员及其权限。

4、跟踪项目进度和任务分配。

六、导入和导出数据1、在AMX软件中,选择“导入”或“导出”选项。

2、选择要导入或导出的文件类型。

3、配置文件路径和其他相关参数。

4、执行导入或导出操作。

七、其他功能1、AMX软件提供了丰富的图形绘制和编辑工具,可以使用这些工具创建和编辑项目图表。

2、支持多种数据分析和报表功能,可根据需要进行统计和分析。

3、提供了协作和通信工具,方便项目团队成员之间的交流和协作。

附件:- AMX软件安装包- AMX软件用户手册法律名词及注释:1、著作权:指作者对其原创作品所享有的权利。

2、商标:指用于区别商品来源的标识、名称、符号或设计。

3、许可证:指授权他人使用特定权利或执行特定行为的证书。

4、法律责任:指依法承担因违反法律规定而产生的法律责任。

AMX Mod X之系列说明(相关指令)

AMX Mod X之系列说明(相关指令)
stop <文件名> - 停用指定插件
pause <文件名> - 暂停指定插件
enable <文件名> - 启用指定插件
save - 保存所有已停用的插件
clear - 清除停用插件列表
list [id] - 列出插件
add <标题>- 将插件标记为不可暂停
amx_statscfgmenu ADMIN_CFG 显示统计配置菜单
配置指令 指令: amx_pausecfg
格式: <指令> [插件名]
权限: ADMIN_CFG
注释: 可用指令列表:
off - 暂停使用所有未包含在停用列表中的插件
on - 恢复使用所有插件
amx_chat <message> ADMIN_CHAT 以普通模式向所有管理员发送消息
amx_psay <名字 或 #userid> <消息> ADMIN_CHAT 向指定文件发送私人消息
amx_tsay <颜色> <消息> ADMIN_CHAT 向所有玩家发送一条置左显示的HUD消息
add <名字> <变量> - 添加统计变量
远程控制指令 指令: amxx
格式: <指令> [参数]
权限:
注释: 可用指令列表:
amxx version - 显示版本信息
amxx modules - 显示模块信息
amxx plugins - 显示插件信息
amx_rcon <rcon 命令行> ADMIN_RCON 在服务器控制台中运行指定命令

AMX系统编程一

AMX系统编程一

TRAINING
Programming One
Programming I 系統編程一
Using Keywords 使用關鍵詞
Keywords are reserved commands use in AXCESS program. A complete AXCESS program consists of many keywords combination to perform a certain task.
TRAINING
Programming One
Programming I 系統編程一
III. Using RS-232 使用RS-232串口
Example : Controlling a Matrix Switcher / 控制矩陣切換器 Steps to do / 操作步驟 : 1. Get the RS-232 control protocols 取得 RS-232 控制編碼 2. Make the control cable connection 連接好控制線 3. Set the baud rate, data bits & parity of the control port 設定控制口的速率、數據位及校驗方法 4. Program the user interface & central controller 設計用戶介面及編寫中控器程序
TRAINING
Programming One
Programming I 系統編程一
Keywords to work with Strings 字符串編程的常用關鍵詞
SEND_STRING / 發送字符串 CREATE_BUFFER / 建立緩衝 CLEAR_BUFFER / 清除緩衝 FIND_STRING / 尋找字符串 LENGTH_STRING / 字符串長度 LEFT_STRING / 左字符串 RIGHT_STRING / 右字符串 MID_STRING / 中字符串

AMX编程案例(编程快速入门)

AMX编程案例(编程快速入门)
(*以下的赋值语句必须放在外面,因如放在PASH语句里面,当程序下一次扫描程序时,将无法执行里面的赋值语句,即触摸屏上的按键会全部亮起来,这是因为当按其它键时其反馈值虽然已变,但赋给触摸屏的语句无法执行所产生的。*)
[TP,SCREEN_DOWN_B]=[RELAY,SCREEN_DOWN_FB] (*将继电器的电动幕下降反馈值送给触摸屏电动幕下降按钮*)
}
PUSH[TP,SCREEN_STOP_B] (*当按下触摸屏(TP),电动幕停止键执行下面的程序*)
PUSH[WP,SCREEN_STOP_B] (*当按下触摸屏的电动幕停止键执行下面的程序*)
{
CALL 'SCREEN STOP' (*用CALL命令调用电动幕停止子程序’SCREEN STOP’*)
{ON[RELAY,1] (*将继电器1置为开*)}
(*下面的一段程序是执行屏幕下降10秒钟后将继电器1,2关闭,这样可防止继电器长时间处于通电状态*)
WAIT 100 'SCREEN WAIT' (*等待10秒,并将其定义为‘SCREEN WAIT’子程序*)
{OFF[RELAY,1] (*将继电器1置为关*)
PROJ_RGB_B=34 (*投影机_切换VGA_按键=21*)
PROJ_ON_FB=104 (*投影机_开_按键反馈=21*)
PROJ_OFF_FB=105 (*投影机_开_按键反馈=21*)
(***********************************************************)
(***********************************************************)

AMX语法功能说明

AMX语法功能说明

特别符号{ }大括号多条命令集的结合[ ]中括号设备,通道号[DEVICE,CHANNEL];数组的定义,如:INTEGER VOL[NUMBER];SYSTEM_CALL系统调用,如:SYSTEM_CALL[1] 'COSX'(45) ( )小括号IF条件语句;定义互锁语句(* *)或/* */注释对程序的必要说明,在程序中不起任何作用//注释单句注释运算符号常用关键字ON[DEVICE,CHANNEL] // 开OFF[DEVICE,CHANNEL] // 关PULSE[DEVICE,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_EVENT[TP,1]{PUSH: /* 按下触摸屏第一个通道时执行的动作*/{ON[RELAY,1]}}BUTTON_EVENT特性描述表:DATA_EVENT这个关键字规定了一个数据事件的处理。

AMX基础编程

AMX基础编程
BUTTON_EVENT[TP,1]{ //开机 HOLD[20]:{ IF(PROJ_BUSY=0){ PROJ_BUSY=1 ON[RELAY,1] ON[TP,1] OFF[TP,2] WAIT 30 SEND_STRING PROJ,’PWR ON’ WAIT 1200 PROJ_BUSY=0 } } } BUTTON_EVENT[TP,2]{ //关机 HOLD[20]:{ IF(PROJ_BUSY=0){ PROJ_BUSY=1 ON[TP,2] }
串口设备控制
• 矩阵控制
• 需要实现的主要功能: 信号切换
矩阵
功能设计:重现矩阵控制面板功能,即先选择切换模式, 再选择输入信号,然后选择输出信号,最后按确定,实现 切换。
串口设备控制
DEFINE_DEVICE SWITCH=5001:1:0 TP=10001:1:0 DEFINE_VARIABLE MODE=0 INPUT OUTPUT DEFINE_EVENT DATA_EVENT[SWITCH]{ ONLINE:{ SEND_COMMAND SWITCH,’SET BAUD 9600,N,8,1’ } } BUTTON_EVENT[TP,1]{ //同步模式 PUSH:{ MODE=0 } } BUTTON_EVENT[TP,2]{ //视频模式 PUSH:{ MODE=1 }
串口设备控制
DEFINE_PROGRAM IF(MODE=0){ [TP,8]=(AV_STATE[1]=INPUT) [TP,9]=(AV_STATE[2]=INPUT) [TP,10]=((AV_STATE[3]=INPUT) [TP,11]=((AV_STATE[4]=INPUT) } IF(MODE=1){ [TP,8]=( ( VIDEO_STATE[1]=INPUT) [TP,9]=( ( VIDEO_STATE[2]=INPUT) [TP,10]=(( VIDEO_STATE[3]=INPUT) [TP,11]=( ( VIDEO_STATE[4]=INPUT) } IF(MODE=2){ [TP,8]=( ( AUDIO_STATE[1]=INPUT) [TP,9]=( ( AUDIO_STATE[2]=INPUT) [TP,10]=( ( AUDIO_STATE[3]=INPUT) [TP,11]=( ( AUDIO_STATE[4]=INPUT) }

《AMX系列简单中文操作手册》

《AMX系列简单中文操作手册》

AM检列简单中文操作手册本操作手册适用于AM麻列模拟矩阵设备实现本地化(300米范围内)控制,用户端通过OSCARI单对服务器进行操作访问。

1、硬件连接AMX^列设备硬件包括三个组成部分:1)AMIQ- (PS/2、USB、VSN、WSN、SRL)服务器接口线缆2)AMX5000、AMX5010、AMX5020 模拟矩阵交换机3)AMX5110、AMX5120 用户工作站硬件安装步骤:1)把AMIQ-xxx服务器接口线缆与机房内的被控服务器的键盘、鼠标、显示器或console 口相连;2)把AMIQ-xxx服务器接口线缆用普通五类线连接到AMX5000/AMX5010/AMX5020 模拟矩阵交换机的被控端服务器端口;3)把AMX5000/AMX5010/AMX5020 模拟矩阵交换机的用户控制端口用普通五类线连接到AMX5110/AMX5120 用户工作站两个端口中的任意一个端口;4)把AMIQ-xxx服务器接口线缆与本地PC的键盘、鼠标、显示器;5)把(4)中的AMIQ-xxx服务器接口线缆用普通五类线与AMX5110/AMX5120 的另一端口相连接;6)把控制终端(键盘、鼠标、显示器)连接到AMX5110/AMX5120 用户工作站的控制端口,提供用户操作访问(本地PC或机房内的服务器)。

连接示意图,如下:1) 双击“ CTRL”键,击活 AMX 的OSCAR 菜单;2) 输入用户名和密码(用户帐号由系统管理员分配)3)点击“ok”登陆系统,出现 OSCAR 用户菜单界面。

2.2 OSCAR!单介绍登陆AMX 系统后,出现 OSCAR 菜单界面,基本切换操作--选择相应的服务器,用鼠 标点击"Connect”按钮或按键盘的回车键即可(见下图)。

OSCA 麋单还具有其它一些功能,具体分为五个页面 :"Target” 、"User”、"Console ”、2、 OSCAR On-Screen Configuration and Activity Reporting单介绍2.1登陆系统(初始状态没有设定登陆界面)如下图所示: interface"Admin”和"?"下面分别做一一介绍:2.2.1 Target 选项在此页面为OSCA麋单的主控界面,用户用键盘、鼠标在列表中选择服务器,左边栏显示所连接服务器的AMIQ的UID编码(此编码为出厂时所烧录的唯一编码,用户可根据需要对名称进行更改,将在后面做详细说明);在右边栏选择相应的模式(4种)点击“Connect”切换连接;(如果列表中服务器很多,可直接在键盘上敲击所想要寻找的已经修改过的服务器的名称,系统会将自动选中所键入服务器名称并快速锁定服务器)。

锚定的AMX操作系统认知手册及TRACE32在线帮助说明书

锚定的AMX操作系统认知手册及TRACE32在线帮助说明书

OS Awareness Manual AMX Release 09.2023OS Awareness Manual AMXTRACE32 Online HelpTRACE32 DirectoryTRACE32 IndexTRACE32 Documents ......................................................................................................................OS Awareness Manuals ................................................................................................................OS Awareness Manual AMX (1)History (4)Overview (4)Brief Overview of Documents for New Users5 Supported Versions5Configuration (6)Manual Configuration6 Automatic Configuration7 Quick Configuration Guide7 Hooks & Internals of AMX8Features (9)Display of Kernel Resources9 Task Stack Coverage9 Task-Related Breakpoints10 Task Context Display11 Dynamic Task Performance Measurement12 Task Runtime Statistics13 Task State Analysis14 Function Runtime Statistics15 AMX specific Menu17AMX Commands (18)TASK.DBPool Display buffer pools18 TASK.DEVent Display event groups18 TASK.DEXChange Display message exchanges18 TASK.DMailBoX Display mailboxes19 TASK.DMPool Display memory pools20 TASK.DSEMaphore Display semaphores21 TASK.DSYStem Display system state21 TASK.DTask Display tasks22 TASK.DTIMer Display timers23AMX PRACTICE Functions (24)TASK.CONFIG()OS Awareness configuration information24OS Awareness Manual AMXVersion 09-Oct-2023 History04-Feb-21Removing legacy command T ASK.T ASKState.OverviewThe OS Awareness for AMX contains special extensions to the TRACE32 Debugger. This manual describes the additional features, such as additional commands and statistic evaluations.Brief Overview of Documents for New UsersArchitecture-independent information:•“Training Basic Debugging” (training_debugger.pdf): Get familiar with the basic features of a TRACE32 debugger.•“T32Start” (app_t32start.pdf): T32Start assists you in starting TRACE32 PowerView instances for different configurations of the debugger. T32Start is only available for Windows.•“General Commands” (general_ref_<x>.pdf): Alphabetic list of debug commands.Architecture-specific information:•“Processor Architecture Manuals”: These manuals describe commands that are specific for the processor architecture supported by your Debug Cable. T o access the manual for your processorarchitecture, proceed as follows:-Choose Help menu > Processor Architecture Manual.•“OS Awareness Manuals” (rtos_<os>.pdf): TRACE32 PowerView can be extended for operating system-aware debugging. The appropriate OS Awareness manual informs you how to enable theOS-aware debugging.Supported VersionsCurrently AMX is supported for:•AMX Version 3.04a on the Freescale Semiconductor 68332•AMX on the ARM 7•AMX on Freescale Semiconductor PowerPCConfigurationThe TASK.CONFIG command loads an extension definition file called “amx.t32” (directory“~~/demo/<processor>/kernel/amx”). It contains all necessary extensions.Automatic configuration tries to locate the AMX internals automatically. For this purpose all symbol tables must be loaded and accessible at any time the OS Awareness is used.If a system symbol is not available or if another address should be used for a specific system variable then the corresponding argument must be set manually with the appropriate address. In this case, use the manual configuration, which can require some additional arguments.If you want to display the OS objects “On The Fly” while the target is running, you need to have access to memory while the target is running. In case of ICD, you have to enable SYStem.MemAccess orSYStem.CpuAccess (CPU dependent).Manual ConfigurationFormat:TASK.CONFIG amx.t32 <magic_address> <args><magic_address>Specifies a memory location that contains the current running task. Thisaddress can be found at “cj_kdata+14”.<args>The configuration requires one additional argument that specifies an AMXinternal pointer. Give the label “cj_kdatp”.Manual configuration for the OS Awareness for AMX can be used to explicitly define some memorylocations. It is recommended to use automatic configuration.; manual configuration for AMX supporttask.config amx.t32 cj_kdata+14 cj_kdatpSee Hooks & Internals for details on the used symbols.Automatic ConfigurationFormat:TASK.CONFIG amx.t32For system resource display and trace functionality, you can do an automatic configuration of the OSAwareness. For this purpose it is necessary that all system internal symbols are loaded and accessible at any time, the OS Awareness is used. Each of the TASK.CONFIG arguments can be substituted by '0', which means that this argument will be searched and configured automatically. For a fully automatic configuration omit all arguments:; fully automatic configuration for AMX supporttask.config amxIf a system symbol is not available, or if another address should be used for a specific system variable, then the corresponding argument must be set manually with the appropriate address (see Manual Configura-tion).See also “Hooks & Internals” for details on the used symbols.Quick Configuration GuideT o get a quick access to the features of the OS Awareness for AMX with your application, follow the following roadmap:1.Copy the files “amx.t32” and “amx.men” to your project directory(from TRACE32 directory “~~/demo/<processor>/kernel/amx”).2.Start the TRACE32 Debugger.3.Load your application as normal.4.Execute the command “TASK.CONFIG ~~/demo/<cpu>/kernel/amx/amx.t32”(See “Automatic Configuration”).5.Execute the command “MENU.ReProgram ~~/demo/<cpu>/kernel/amx.men”(See “AMX Specific Menu”).6.Start your application.Now you can access the AMX extensions through the menu.In case of any problems, please carefully read the previous Configuration chapters.Hooks & Internals of AMXAll kernel resources are accessed through the kernel data pointer “cj_kdatp”.The magic location is calculated from “(*c_kdatp+0x14)”.For detecting a message exchanger task, the entry point of that task is compared to the message exchanger task entry point “cj_kpmxtask”). If this symbol is not available, the message exchanger tasks won’t be detected.In the statistics evaluations, the kernel state is derived from the location at “(*cj_kdatp)”.FeaturesThe OS Awareness for AMX supports the following features.Display of Kernel ResourcesThe extension defines new commands to display various kernel resources. Information on the following AMX components can be displayed:TASK.DSYStem system stateTASK.DTask T asksTASK.DTIMer TimerTASK.DMailBoX MailboxesTASK.DESChange Message exchangesTASK.DSEMaphor SemaphoresTASK.DEVent Event groupsTASK.DBPool Buffer poolsTASK.DMPool Memory poolsFor a description of the commands, refer to chapter “AMX Commands”.If your hardware allows memory access while the target is running, these resources can be displayed “On The Fly”, i.e. while the application is running, without any intrusion to the application.Without this capability, the information will only be displayed if the target application is stopped.Task Stack CoverageFor stack usage coverage of tasks, you can use the TASK.STacK command. Without any parameter, this command will open a window displaying with all active tasks. If you specify only a task magic number as parameter, the stack area of this task will be automatically calculated.T o use the calculation of the maximum stack usage, a stack pattern must be defined with the command TASK.STacK.PATtern (default value is zero).T o add/remove one task to/from the task stack coverage, you can either call the TASK.STacK.ADD or TASK.STacK.ReMove commands with the task magic number as the parameter, or omit the parameter and select the task from the TASK.STacK.* window.It is recommended to display only the tasks you are interested in because the evaluation of the used stack space is very time consuming and slows down the debugger display.Task-Related BreakpointsAny breakpoint set in the debugger can be restricted to fire only if a specific task hits that breakpoint. This is especially useful when debugging code which is shared between several tasks. T o set a task-related breakpoint, use the command:•Use a magic number, task ID, or task name for <task>. For information about the parameters, see “What to know about the Task Parameters” (general_ref_t.pdf).•For a general description of the Break.Set command, please see its documentation.By default, the task-related breakpoint will be implemented by a conditional breakpoint inside the debugger. This means that the target will always halt at that breakpoint, but the debugger immediately resumes execution if the current running task is not equal to the specified task.On some architectures, however, it is possible to set a task-related breakpoint with on-chip debug logic that is less intrusive. T o do this, include the option /Onchip in the Break.Set command. The debugger then uses the on-chip resources to reduce the number of breaks to the minimum by pre-filtering the tasks.Break.Set <address>|<range>[/<option>] /TASK <task>Set task-related breakpoint.NOTE:T ask-related breakpoints impact the real-time behavior of the application.For example, on ARM architectures: If the RTOS serves the Context ID register at task switches, and if the debug logic provides the Context ID comparison, you may use Context ID register for less intrusive task-related breakpoints:When single stepping, the debugger halts at the next instruction, regardless of which task hits this breakpoint. When debugging shared code, stepping over an OS function may cause a task switch andcoming back to the same place - but with a different task. If you want to restrict debugging to the current task, you can set up the debugger with SETUP .StepWithinTask ON to use task-related breakpoints for single stepping. In this case, single stepping will always stay within the current task. Other tasks using the same code will not be halted on these breakpoints.If you want to halt program execution as soon as a specific task is scheduled to run by the OS, you can use the Break.SetTask command.Task Context DisplayY ou can switch the whole viewing context to a task that is currently not being executed. This means that all register and stack-related information displayed, e.g. in Register , Data.List , Frame etc. windows, will refer to this task. Be aware that this is only for displaying information. When you continue debugging the application (Step or Go ), the debugger will switch back to the current context.T o display a specific task context, use the command:•Use a magic number, task ID, or task name for <task>. For information about the parameters, see “What to know about the Task Parameters” (general_ref_t.pdf).•To switch back to the current context, omit all parameters.T o display the call stack of a specific task, use the following command:If you’d like to see the application code where the task was preempted, then take these steps:eContextID ONEnables the comparison to the whole Context ID register.Break.CONFIG.MatchASID ONEnables the comparison to the ASID part only.TASK.List.tasks If TASK.List.tasks provides a trace ID (traceid column), thedebugger will use this ID for comparison. Without the trace ID,it uses the magic number (magic column) for comparison.Frame.TASK [<task>]Display task context.Frame /Task <task> Display call stack of a task.1.Open the Frame /Caller /Task<task> window.2.Double-click the line showing the OS service call.Dynamic Task Performance MeasurementThe debugger can execute a dynamic performance measurement by evaluating the current running task in changing time intervals. Start the measurement with the commands PERF.Mode TASK and PERF.Arm, and view the contents with PERF.ListTASK. The evaluation is done by reading the ‘magic’ location (= current running task) in memory. This memory read may be non-intrusive or intrusive, depending on the PERF.METHOD used.If PERF collects the PC for function profiling of processes in MMU-based operating systems(SYStem.Option.MMUSPACES ON), then you need to set PERF.MMUSPACES, too.For a general description of the PERF command group, refer to “General Commands Reference Guide P” (general_ref_p.pdf).Task Runtime StatisticsNOTE:This feature is only available, if your debug environment is able to trace taskswitches (program flow trace is not sufficient). It requires either an on-chip tracelogic that is able to generate task information (eg. data trace), or a softwareinstrumentation feeding one of TRACE32 software based traces (e.g. FDX orLogger). For details, refer to “OS-aware Tracing” (glossary.pdf).Based on the recordings made by the Trace (if available), the debugger is able to evaluate the time spent ina task and display it statistically and graphically.T o evaluate the contents of the trace buffer, use these commands:Trace.List List.TASK DEFault Display trace buffer and task switchesTrace.STATistic.TASK Display task runtime statistic evaluationTrace.Chart.TASK Display task runtime timechartTrace.PROfileSTATistic.TASK Display task runtime within fixed time intervalsstatisticallyTrace.PROfileChart.TASK Display task runtime within fixed time intervals ascolored graphTrace.FindAll Address TASK.CONFIG(magic) Display all data access records to the “magic”locationTrace.FindAll CYcle owner OR CYcle context Display all context ID records The start of the recording time, when the calculation doesn’t know which task is running, is calculated as “(unknown)”.Task State AnalysisThe time different tasks are in a certain state (running, ready , suspended or waiting) can be evaluated statistically or displayed graphically .This feature requires that the following data accesses are recorded:•All accesses to the status words of all tasks •Accesses to the current task variable (= magic address)Adjust your trace logic to record all data write accesses, or limit the recorded data to the area where all TCBs are located (plus the current task pointer).NOTE:This feature isonly available, if your debug environment is able to trace task switches and data accesses (program flow trace is not sufficient). It requires either an on-chip trace logic that is able to generate a data trace, or a softwareinstrumentation feeding one of TRACE32 software based traces (e.g. FDX orLogger ). For details, refer to “OS-aware Tracing” (glossary.pdf).Example: This script assumes that the TCBs are located in an array named TCB_array and consequently limits the tracing to data write accesses on the TCBs and the task switch.Break.Set Var.RANGE(TCB_array) /Write /TraceDataBreak.Set TASK.CONFIG(magic) /Write /TraceDataT o evaluate the contents of the trace buffer, use these commands:Trace.STATistic.TASKState Display task state statisticTrace.Chart.TASKState Display task state timechartThe start of the recording time, when the calculation doesn’t know which task is running, is calculated as “(unknown)”.Function Runtime StatisticsNOTE:This feature is only available, if your debug environment is able to trace taskswitches (program flow trace is not sufficient). It requires either an on-chip tracelogic that is able to generate task information (eg. data trace), or a softwareinstrumentation feeding one of TRACE32 software based traces (e.g. FDX orLogger). For details, refer to “OS-aware Tracing” (glossary.pdf).All function-related statistic and time chart evaluations can be used with task-specific information. The function timings will be calculated dependent on the task that called this function. T o do this, in addition to the function entries and exits, the task switches must be recorded.T o do a selective recording on task-related function runtimes based on the data accesses, use the following command:; Enable flow trace and accesses to the magic locationBreak.Set TASK.CONFIG(magic) /TraceDataT o do a selective recording on task-related function runtimes, based on the Arm Context ID, use the following command:; Enable flow trace with Arm Context ID (e.g. 32bit)ETM.ContextID 32T o evaluate the contents of the trace buffer, use these commands:The start of the recording time, when the calculation doesn’t know which task is running, is calculated as “(unknown)”.Trace.ListNesting Display function nestingTrace.STATistic.FuncDisplay function runtime statistic Trace.STATistic.TREEDisplay functions as call tree Trace.STATistic.sYmbol /SplitTASKDisplay flat runtime analysis Trace.Chart.FuncDisplay function timechart Trace.Chart.sYmbol /SplitTASK Display flat runtime timechartAMX specific MenuThe menu file “amx.men” contains a menu with AMX specific menu items. Load this menu with theMENU.ReProgram command.Y ou will find a new menu called AMX.•The Display menu items launch the kernel resource display windows.•The Stack Coverage submenu starts and resets the AMX specific stack coverage and provides an easy way to add or remove tasks from the stack coverage window.In addition, the menu file (*.men) modifies these menus on the TRACE32 main menu bar:•The Trace -> List submenu is changed. Y ou can additionally choose if you want a trace list window to show only task switches (if any) or task switches and defaults.•The Perf menu contains the additional submenus for task runtime statistics, task-related function runtime statistics and statistics on task states. For the function runtime statistics, a PRACTICEscript file called “men_ptfp.cmm” is used. This script file must be adapted to your application.AMX CommandsTASK.DBPoolDisplay buffer poolsDisplays a table with all created AMX buffer pools.TASK.DEVentDisplay event groups Displays a table with all created AMX event groups.TASK.DEXChangeDisplay message exchangesDisplays a table with all created AMX message exchanges.Format:TASK.DBPool Format:TASK.DEVent Format:TASK.DEXChangeTASK.DMailBoX Display mailboxes Format:TASK.DMailBoXDisplays a table with all created AMX mailboxes.TASK.DMPool Display memory pools Format:TASK.DMPoolDisplays a table with all created AMX memory pools.TASK.DSEMaphore Display semaphores Format:TASK.DSEMaphoreDisplays a table with all created AMX semaphores.TASK.DSYStem Display system state Format:TASK.DSYStemDisplays a system state summary for the current AMX system state.TASK.DTaskDisplay tasksDisplays a table with all AMX tasks or one task in detail.Without any parameters, a summary table of all created tasks is shown.The magic number is a unique ID to the OS Awareness to specify a specific task. It is notequal to the AMX task ID. A double click on the magic number or on the tag opens the detailed task window.If you specify a task magic number, a task ID or a task tag as parameter, this task is shown in detailed. Enclose a task tag in quotation marks. If a numerical parameter is detected to be a AMX task ID, this one will be used. All other numerical parameters are supposed to be a task magic number and are not checked for validation.Format:TASK.DispTask [<task >]<task >:<task_magic> | <task_id> | <task_name>TASK.DTIMer Display timers Format:TASK.DTIMerDisplays a table showing all defined AMX timers.Double click on the parameter to see a dump window on this address. Double click on the procedure to seea list window on this address.AMX PRACTICE FunctionsThere are special definitions for AMX specific PRACTICE functions.See also general TASK functions.TASK.CONFIG()OS Awareness configuration information Syntax:TASK.CONFIG(magic | magicsize | kdata)Parameter and Description:magic Parameter Type: String (without quotation marks).Returns the magic address, which is the location that contains thecurrently running task (i.e. its task magic number).magicsize Parameter Type: String (without quotation marks).Returns the size of the task magic number (1, 2 or 4).kdata Parameter Type: String (without quotation marks).Returns the address of the kernel data area.Return Value Type: Hex value.。

AMXX插件编写教程

AMXX插件编写教程

强烈推荐此教程!此教程是我费尽心血从网上找来的!/////////////////////////////////////////////////////////AMX MOD X DocumentationScripting Tutorial (Introduction & Pawn Language Basics)–Translated by Shaman.Kaler介绍Pawn是一种“脚本”语言,用于将各种功能嵌入其他程序。

这种语言共有两种,一种类似C或C++,是“汇编”语言,通常是用于输出可执行二进制文件;另一种是“解释”语言,通过虚拟机动态地运行代码(VB那样的—译者注)。

AMX Pawn是两者的混合体:写AMX 是解释型的,但编译过程是汇编的。

(说明了为什么amxx文件没法打开,因为是汇编语言—译者注)在你开始编程之前你要知道一些重要的结构。

第一是“变量”。

变量可以说是含有数据的一个符号或记号(symbol or marker,中文太相似了—译者注)。

比如,变量a可能会含有值2、16、0等等等等。

变量是一个程序创造的存储空间,在使用前必须声明它们的名字(和类型)。

给予变量数据称为“赋值”。

变量的赋值使用的是一个等号:new a,b,c,d //这里是声明a=5 //把a赋值为5b=16c=0d=500另一个重要的概念是函数。

函数是完成某种功能时引用的符号或记号。

这意味着当你使用它们时,它们会处理你所给的数据(“传递”的数据)。

函数有几种,但是使用方法是一致的。

例如,”show”函数把一个数字显示在屏幕上:show(56) //启动”show”函数, 并传递数据”56”。

show() //启动”show”函数, 没有数据(或不需要数据)。

show(a) //启动”show”函数, 并传递变量a包含的数据。

注意任何前面带有”//”符号的文字都属于“注释”,不是真正的代码。

任何传递给函数的数据都被称为“参数”,一个函数可能有任意多的参数,你必须保证你所传递的每个参数的正确性。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

以 NI3100 主机为例:
设备号:
Studio)
默认设备号为 5001;(可以通过软件进行修改,如 NetLinx
端口号:
固定死的,1-7 为串号,8 为继电器口,9-16 为红外口,17 为 I/O 口(在设备的后面版有标记为 Port 几)
系统号:
默认为 1;(可以通过软件进行修改,如 NetLinx Studio,也可以 为“0”表示为本系统,程序所上传的系统)
也可以把 SRC 后缀后改成 RAR 后缀名,直接用压缩包的格式打开.
如何对继电器操作程序编写
我们要实现的是把下触摸屏或面板的按钮就实现继电器的开关动作 下面是定义的一个控制面板和 NI2100 设备上的继电器接口进行控制,如下图:
下面定义了一个自定义变量供下面的方法三使用:
下图功能为:按下按钮 11 打开继电器 3,如果继电器 3 接的是灯光的控制,则 打开灯光,如果是某设置的电源刚是控制设备的电源开,按下按钮 12 则是关闭, 按下按钮 13 的功能为,按一下开,再按一下关,一直循环下去。有如下三种方 法,如下图:
下面是触摸屏或按钮状态跟着程序走,看到按钮状态,相应的也就知道了继电 器的开关状态
如何实现矩阵程序编程实例
实现 8X8 矩阵的自由切换,先选择输入源,再选择输出源,可以一次性选择多个 输出源,如下图:
D 就是每个设备的设备号,主要分为两种,一种是在硬件上就可以直接设置的, 如触摸屏,在触摸屏的设置菜单上就可以设置了,护展盒,有 8 位拨码开关,通 过二进制算法,算出地址,另一种是直接在软件上就可以设置设备的设备号,每 个设备都是有一个默认的设备号。
P 就是设备的端口号,大部分都是相对固定的,中控主机都有在后面标明着,触 摸屏则可以自己设置。
以上现像足可以表示您的软件已经连中控主机连接上了,如果还是连接不上,可 能您的电脑串口存在被其它程序占用的可能,或者您的连接线有问题。(连接线 为 23 交叉的连接线)。 接下来我们就可以对中控进行 IP 地址的修改,点击如下图:
点击进入:
选择 Get IP Information 可以获取到主机的 IP 信息,如下图可以对主机进行设 置:
如何实现程序下载
在设置好 NetLinx Studio 软件与主机连接的情况下,步骤如下: 选择 Receive 接收
选择 ADD,添加程序
选择要下载的文件类型,如中控主机的程序,选择 SRC 文件,再选择 ADD 添加文件
选择保存路径,填好文件名,再按保存
输入设备号,端口号,系统号 主机为:0:1:0 (任何主机都一样) 触摸屏为:10001:1:0 (假设触摸屏的设备号是 10001) 红外文件为:5001:9:0(假设主机为 NI3100,从第一个红外端抽红外程序) 可见本例应为 0:1:0 再点 OK 确定
如下显示为:NetLinx-COM1,38400,8,N,1,是不是您想要的设置,如果不是 刚表示您设置的有问题,请重新设置。 如果设置是正确,我们可以检测一下是否能连接上,涮新一下在线列表如下图:
点击 OnLine Tree
点击右键 Refresh System 涮新在线更表
所有系统里面的设置都会显示出来,而且状态栏也相应的变绿。
在 AMX 系统里面主要涉及到 3 个号,即所谓的 D:P:S
D:DEVICE 就是每个设备的设备号;P:PORT 即端口号,每个设备可能又会分为 好几个端口,如 NI3100 有 17 个端口,包括 7 个串口,1 个继电品口,8 个红外 口,1 个 I/O 口,NI2100 则有 9 个端口;S:SYSTEM 即系统号,我们可以大致上 这么说,每台主机可以当成一个系统。
在软件的 Settings??》Master Communication Settings
No Active System Default Setting 是设置软件的连接,Terminal Settings 为设置软件自带的超级终端的连接。所以我们选择前者,点击??》Communication Settings
NetLinx 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 Compiler 文件的编程进行设置
Compile With Debug In 代表着,可以在程序里面执行 Debug,可以设置断点程序, 让程序一步步执行 Compile With Source 代表着可以编程程序的时候生成 SRC 文件 Compile With Password Protec 代表着生成的 SRC 文件,需要设置的密码才能打 开
看到下面列表多了 E\Project\Working\Sunkai...这个就是刚设置好保存的文 件信息,Mapping 为 0:1:0,点击 OK 确定
下面新增出现即将要保存的文件信息,连接主机的 IP 为 192.168.1.21 再点击 Receive 进行程序下载
如下图所示为下载程序的信息,下图为下载失败,如果下载成功则会打勾! 下载完成后,到保存的目录下打开程序,如果是主机程序,是 SRC 格式,打开的方 式可以用 NetLinx Studio 来打开
如何设置连接并设置固定 IP
如何实现 NetLinx Studio 软件与中控主机的第一次连接: 我们可以通过如下几种方式来进行连接:
1. TCP/IP 2. COM 3. Moderom 4. USB 由于设备的出厂 IP 地址是设置为 DHCP 的,所以刚开始我们无法用网络来连接, 如果您可以用分配 IP 的式给中控主机分配一个 IP,就可以用刚络连上主机,再 对主机进行固定 IP 设置,就可以直接用网络进行连接,因为通过串口或其它方 式,在遇到大文件时传输得太慢,或者可能因为传输文件太大而导致传输失败。 所以一般我们通常是通过串口对主机进行 IP 设置,再用网络实现传输,那么我 们如何实现设置呢,如下图:
从上可知我们定义一个串口来控制矩阵,一个继电器口控制灯光,一个触摸屏进 行控制。如下程序:
DEFINE_DEVICE 下定义为
AVSWITCH RELAY TP
= 5001:1:1 = 5001:8:1 = 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 代表的是本系统(上面所提到的)。
通常我们编译程序文件的时候会生成 2 个文件,一个是 TKN,一个是 TKO,但有些人 多生成了一个 SRC 文件
这个 SRC 文件是怎么来的呢?
SRC 文件就是程序在电脑上运行的,可编程的文件
TKN 文件是 AMX 主机上面运行的机器执行文件
TKO 文件主要是用来做模块程序间的调用
TKO 的主要用途是当一个程序分为好几块程序来写的时候,如果是用到 define_module 来调用另 一个文件的时候,可以直接来调用 TKO 文件,而不需要给别人源文件程序,也可做到,自己的程序 不让别人看到代码照样能运行.
下面功能为继电器时间顺序的开关,注意 Wait 后面的大括号一定要添加,它是 表示一个命令的集合,如果不添加程序只跟着一个语句,ON[RELAY,3]和[RELAY, 5]会马上打开,10 是 1 秒,它是以 0。1 秒为单位的,所有的时间都是从刚按下 按钮的时候算起的,所以第 2 秒应该是 Wait 20,而不是紧接着 Wait 10
}
上面两段程序执行的效果是一样的,可定我们定义设备接口其实可以这么理解 为,用自己定义的名字来代替现有的设备端口,这样也有一个好处,如果你改接 口了,只要改定义设备的定义,也不需要全部修改程序里面的设备接口,而且您 通过自己命名的名字,程序的可读性也比较好。
我们刚才说到的 D:P:S 的定义规则,那么我们如何来知道,每个设备的 D,每 个设备的 P,每个设备的 S 呢?
是否创建新文件,选择 Yes 选择,主机的标准模版,网络型主机则选择 NetLinx Standard Template
输入文件名 选择要保存的路径,按下一步。 点击完成,创建出新文件。
把蓝色的字给收起来,总体上我们可以看出分如下几块:
PROGRAME_NAME 为文件 DEFINE_DEVICE 为定义要控制设计的控制接口 DEFINE_CONSTANT 为定义常量 DEFINE_TYPE 为定义类型文件 DEFINE_VARIABLE 为定义变量
我们在接下来的程序设计的按钮事件里面可能会出现如下语句:
BUTTON_ENENT[TP,1]
{
PUSH:ON[RELAY,1]
}
上面这小段程序的意思是,触发 1 号通道按钮的时候,打开断电器第 1 路。
我们同样也是可以这么写的:
BUTTON_ENENT[10001:1:1,1]
{
PUSH:ON[5001:8:1,1]
设置完之后,选择 Set IP Information 提示成功,如下图:
相关文档
最新文档