电机控制 编程笔记 event1.c
来源:互联网 发布:js判断上传文件格式 编辑:程序博客网 时间:2024/06/06 20:47
ParseCommandLine的作用主要是分析命令行参数,如果没有命令行参数,ParseCommandLine()就假定用户想新建一个文档,于是设置一个FileNew命令,如果命令行参数中有一个文件名,ParseCommandLine()就假定用户想打开该文件,于是设置一个FileOpen命令。
一、EventMask对象
eventMask对象决定从controller发送到notify对象的事件类型。通过设置或者擦出eventmask的某个标志位,可以将发生的特定的事件发送到notify对象。事件可以被忽略。默认地,直到eventmask被设置之前没有事件发生。
数据类型
MPIEventMask 是一个无符号整型数组。要使用mpiEventMask()函数设置或者清除某个标志位。主要的宏:
mpiEventMaskCLEAR 清除event mask的所有位
mpiEventMaskALL 设置所有的和MPI事件相关的标志位。MPI事件的定义在MPIEventType枚举类中定义。在事件mask初始化之后,这个mask可以通过mpiXxxxxEventNotifySet(...)传送到控制器生成事件。
二、notify对象
一个线程使用notify对象等待事件的确认。对于一个对象中每一个等待事件的线程来说,都需要创建一个notify对象。固件事件的源是motion、sequence、recorder对象。当当一个源(比如对象句柄)等待事件确认时,可以将这个源作为 mpiNotifyCreate的第二个参数。当这个notify对象斧架到事件列表中后,调用
mpiNotifyEventWait指示notify对象等待事件的确认。
实施:
notify对象维护一个先进先出的事件buffer。每次调用mpiNotifyEventWait,都移除一个事件。如果事件buffer是空的,mpiNotifyEventWait会等待一个事件发送过来。着保证事件不会丢失,因为有mpiNotifyEventWait调用之间有事件发送过来的情况。然而,一个应用在int时间内不会调用mpiNotifyEventWait,这时在适当的时间需要使用mpiNotifyEventMaskSet。
方法:
mpiNotifyEventMaskGet
int32_t mpiNotifyEventMaskGet(MPINotify notify,MPIEventMask *mask)
将一个已经被notify对象确认过的事件写到mask指针指向的位置。
mpiNotifyEventMaskSet
int32_t mpiNotifyEventMaskSet(MPINotify notify, //notify对象句柄MPIEventMask mask) //一个事件mask,通过MPIEventType枚举定义
设置一个事件类型。mask必须经过MPIEventMask宏的设置或擦除。
示例:
/*取消event确认,复制最近使用过的event mask成为oldMask。oldMask以后可能重新通过另外一个mpiNotifyEventMaskSet()调用被使能。*/ void NotifyDisable(MPINotify notify, MPIEventMask* oldMask){ MPIEventMask newMask; int32_t returnValue; returnValue = mpiNotifyEventMaskGet(notify, oldMask);//这个oldMask以后可能还有用 msgCheck(returnValue); mpiEventMaskCLEAR(newMask); returnValue = mpiNotifyEventMaskSet(notify, newMask);//设置确认一个新的mask事件 msgCheck(returnValue);}
外部方法:
mpiControlNotifyCreate
MPI_RESULT
mpiControlNotifyCreate(MPIControl control,
MPINotify *notify,
MPIEventMask eventMask,
MPIObject source);//如果是NULL,就接受所有源产生的事件
创建一个新的notify对象,然后将它添加到notify列表上。
mpiMotionEventNotifySet
mpiMotionEventNotifySet int32_t mpiMotionEventNotifySet(MPIMotion motion, const MPIEventMask *eventMask, const MPIEventNotifyData *eventNotifyData) 请求事件确认,这个事件室友motion产生,并有eventMask特殊化,并且也经过implementation-specific location特殊化。
阅读全文
0 0
- 电机控制 编程笔记 event1.c
- 电机控制项目-重要笔记
- Arduino编程->步进电机角度控制
- 电机控制 学习文件 path1.c
- 利用树莓派控制步进电机——C语言
- msp430f149单片机控制步进电机C语言程序
- 【Arduino学习笔记】ULN2003APG步进电机控制代码
- AVR446 :线性速度控制步进电机--研究笔记
- Arduino学习笔记一,电位器控制步进电机。
- webots自学笔记(三)控制器与电机控制
- Event1-事件
- 电机控制基本原理
- L298n控制步进电机
- 步进电机的控制
- 压力传感器控制步进电机
- dsPIC33F电机控制Motor
- 电机PID稳定控制
- 步进电机转速控制
- MyBatis 拦截器(3)
- 【BZOJ2796】【贪心】 Fibonacci Representation题解
- Cocoapods 使用
- 初学JavaScript,整理整理笔记(一)
- Android Service
- 电机控制 编程笔记 event1.c
- Leetcode50. Pow(x, n)
- CSS 技巧
- #if, #elif, #else, #endif 使用
- 线程的状态学习
- 关于自动化的一些问题
- Cramfs、JFFS2、YAFFS2
- axios的拦截请求与响应
- 数据结构练手