PowerSys程序员手册-消息驱动接口
PowerSys程序员手册消息驱动访问接口上海拓启信息技术有限公司目录1编程概述 (2)1.1基本定义 (2)1.1.1基本宏定义 (2)1.1.2消息响应函数的格式定义 (4)1.2属性说明 (6)2编程接口 (6)2.1头文件及库 (6)2.2消息系统的管理 (6)2.2.1StartGmsMsgDriver (6)2.2.2SetGmsMsgGrpDriveMode (7)2.3消息发送 (7)2.3.1本地消息发送 (7)2.3.2发送网络消息 (8)2.4消息响应 (12)2.4.1StartGmsMessageMap (12)2.4.2EndGmsMessageMap (12)2.4.3GetGmsObjID (12)2.5消息定时器 (12)2.5.1SetGmsTimer (13)2.5.2SetGmsOnceTimer (13)2.5.3SetGmsMinuteTimer (13)2.5.4SetGmsHourTimer (14)2.5.5SetGmsDayTimer (14)2.5.6KillGmsTimer (14)2.5.7KillGmsAllTimer (14)3例子 (15)1 编程概述消息驱动访问接口提供对本系统中消息的发送、接收响应的通用接口。
该接口通过多线程并发消息映射方式进行消息处理。
类CGmsMsgTarget为消息响应的基类,所有需要响应消息的类均需从该类派生。
类CGmsTimerObj为消息定时器的基类,所有需要使用消息定时器的类均需从该类派生。
消息的发送可分为两种类型:本地消息和网络消息。
本地消息指该消息只在本节点有效,不进行网络传播。
而网络消息是指该消息件传播到网络中的所有节点或部分节点(由消息发送者指定)。
消息的响应通过一系列的宏和CGmsMsgTarget或CGmsTimerObj类实现消息的自动响应,因此调用程序只需将消息与该消息对应的响应函数关联即可,当消息到达时,系统自动执行该消息的响应函数。
为保证消息响应的实时性,本消息系统的消息驱动可对消息进行分组(分线程)进行驱动,避免了一般的消息系统因为一个消息响应时间长导致其它消息得不到及时响应的缺陷。
消息调用者也可以指定该消息在窗口的主进程中响应(对窗口的数据刷新大多采用该方式)。
本消息系统中所有从CGmsMsgTarget派生的对象均自动获得一个在本节点上唯一的ID号,该ID号称为消息对象ID号,用于身份识别。
通过GetGmsObjID 可获得该对象的消息对象ID号。
程序可对指定ID的消息对象进行发送消息,也可对所有消息对象发送消息(广播消息)。
消息响应者也可得到消息发送者的定位信息(包括节点名、进程ID、消息对象ID),所以消息响应者可直接对对方发送点对点消息。
本消息系统中对于识别一个消息通过该消息的消息ID、消息子ID两级进行标识。
注:本消息系统中消息的发送和响应均为异步方式。
1.1 基本定义1.1.1 基本宏定义1) 宏:GMS_DECLARE_MESSAGE_MAP()说明:该宏在消息对象中定义了一个消息映射表,用于消息的响应。
2) 宏:GMS_BEGIN_MESSAGE_MAP(theClass, baseClass)说明:该宏声明了消息映射表的开始。
参数: theClass本消息响应类的类名。
baseClass本消息响应类的派生类的类名3) 宏:GMS_END_MESSAGE_MAP()说明:该宏声明了消息映射表的结束。
4) 宏:ON_GMS_MESSAGE (MsgID, memberFxn,MapGrpNo,ParaCount)说明:该宏声明了一个指定的ID的消息的响应函数及其方法。
参数: MsgID指定消息的ID号memberFxn 对应的消息响应的类中成员函数MapGrpNo 该消息响应的分组号(那个线程)ParaCount 该消息所携带的参数的个数。
注:消息响应函数格式见后面的《普通消息响应函数格式》5) 宏:ON_GMS_SUB_MESSAGE(MsgID,SubMsgID,memberFxn,MapGrpNo,ParaCount) 说明:该宏声明了一个指定的ID及子ID的消息的响应函数及其方法。
参数: MsgID指定消息的ID号SubMsgID 指定消息的子ID号memberFxn 对应的消息响应的类中成员函数MapGrpNo 该消息响应的分组号(那个线程)ParaCount 该消息所携带的参数的个数注:消息响应函数格式见后面的《普通消息响应函数格式》6) ON_GMS_SUB_MESSAGE_RANGE(MsgID,StartSubMsgID,EndSubMsgID, memberFxn,MapGrpNo,ParaCount)说明:该宏声明了指定子ID范围的消息的响应函数及其方法。
参数: MsgID指定消息的ID号StartSubMsgID 起始消息子ID号EndSubMsgID 终消息止子ID号memberFxn 对应的消息响应的类中成员函数MapGrpNo 该消息响应的分组号(那个线程)ParaCount 该消息所携带的参数的个数注:消息响应函数格式见后面的《普通消息响应函数格式》7) ON_GMS_MESSAGE_RANGE (StartMsgID,EndMsgID,memberFxn,MapGrpNo,ParaCount)说明:该宏声明了指定ID范围的消息的响应函数及其方法。
参数: StartMsgID 起始消息ID号EndMsgID 终消息止ID号memberFxn 对应的消息响应的类中成员函数MapGrpNo 该消息响应的分组号(那个线程)ParaCount 该消息所携带的参数的个数注:消息响应函数格式见后面的《普通消息响应函数格式》8) 宏:ON_GMS_OBJMSG (MsgID, memberFxn,MapGrpNo,ParaCount)说明:该宏声明了一个指定的ID的消息的对象消息响应函数及其方法。
参数: MsgID指定消息的ID号memberFxn 对应的消息响应的类中成员函数MapGrpNo 该消息响应的分组号(那个线程)ParaCount 该消息所携带的参数的个数。
注:消息响应函数格式见后面的《对象消息响应函数格式》1.1.2 消息响应函数的格式定义消息响应函数必须是类CGmsMsgTarget派生类的成员函数1) 普通消息响应函数格式无参数的消息响应函数格式:int32 (CGmsMsgTarget::*)(int32 iMsgID,int32 iSubMsgID)iMsgID 消息的ID号iSubMsgID 消息的子ID号带一个参数的消息响应函数格式:int32 (CGmsMsgTarget::*)(int32 iMsgID,int32 iSubMsgID,int32 paralen1,void *param1)iMsgID 消息的ID号iSubMsgID 消息的子ID号paralen1 参数长度param1 参数内容带二个参数的消息响应函数格式:int32 (CGmsMsgTarget::*)(int32 iMsgID,int32 iSubMsgID,int32 paralen1,void *param1, int32 paralen2,void *param2)iMsgID 消息的ID号iSubMsgID 消息的子ID号paralen1 参数一的长度param1 参数一的内容paralen2 参数二的长度param2 参数二的内容带三个参数的消息响应函数格式:int32 (CGmsMsgTarget::*)(int32 iMsgID,int32 iSubMsgID,int32 paralen1,void *param1, int32 paralen2,void *param2,int32 paralen3,void *param3)iMsgID 消息的ID号iSubMsgID 消息的子ID号paralen1 参数一的长度param1 参数一的内容paralen2 参数二的长度param2 参数二的内容paralen3 参数三的长度param3 参数三的内容2) 对象消息响应函数格式无参数的消息响应函数格式:int32 (CGmsMsgTarget::*)( SGmsSenderInfo SenderInfo,int32 iMsgID,int32 iSubMsgID)SenderInfo 消息发送者的信息iMsgID 消息的ID号iSubMsgID 消息的子ID号带一个参数的消息响应函数格式:int32 (CGmsMsgTarget::*)( SGmsSenderInfo SenderInfo,int32 iMsgID,int32 iSubMsgID,int32 paralen1,void *param1)SenderInfo 消息发送者的信息iMsgID 消息的ID号iSubMsgID 消息的子ID号paralen1 参数长度param1 参数内容带二个参数的消息响应函数格式:int32 (CGmsMsgTarget::*pfn_msg)( SGmsSenderInfo SenderInfo, int32 iMsgID,int32 iSubMsgID,int32 paralen1,void *param1,int32 paralen2,void *param2)SenderInfo 消息发送者的信息iMsgID 消息的ID号iSubMsgID 消息的子ID号paralen1 参数一的长度param1 参数一的内容paralen2 参数二的长度param2 参数二的内容带三个参数的消息响应函数格式:int32 (CGmsMsgTarget::*)( SGmsSenderInfo SenderInfo,int32 iMsgID,int32 iSubMsgID,int32 paralen1,void *param1,int32 paralen2,void *param2,int32 paralen3,void *param3)SenderInfo 消息发送者的信息iMsgID 消息的ID号iSubMsgID 消息的子ID号paralen1 参数一的长度param1 参数一的内容paralen2 参数二的长度param2 参数二的内容paralen3 参数三的长度param3 参数三的内容3) 定时器消息响应函数格式void (CGmsMsgTarget::*)(int32 id)id 定时器的ID号1.2 属性说明2 编程接口2.1 头文件及库#include “psmsl.h”库: win32 : psmsl.libunix: libpsmsl.so2.2 消息系统的管理2.2.1 StartGmsMsgDriver函数说明消息系统的启动函数原型void StartGmsMsgDriver(int32 iDriveMode = GMS_MSG_DRIVE_MAINLOOP)参数说明iDriveMode: 驱动方式GMS_MSG_DRIVE_MAINLOOP 进入主同步驱动方式,即调用本函数后,函数永不返回GMS_MSG_DRIVE_ALLTHREAD 进入线程循环驱动方式,本函数立即返回,由其它线程进行消息驱动2.2.2 SetGmsMsgGrpDriveMode函数说明设置消息驱动分组的驱动方式函数原型void SetGmsMsgGrpDriveMode(int32 iGrpNo,int32 iMode) 参数说明iGrpNo: 消息驱动的分组号iMode: 驱动模式GMS_GRPDRIVE_MODE_NORMAL 普通驱动方式GMS_GRPDRIVE_MODE_WINMSG 由窗口的主进程驱动2.3 消息发送2.3.1 本地消息发送1) SendGmsMessage函数说明发送本地广播消息函数原型int32 SendGmsMessage(int32 iMsgID,int32 iSubMsgID,*param1=NULL,paralen1=0,voidint32*param2=NULL,paralen2=0,voidint32*param3=NULL);int32paralen3=0,void参数说明iMsgID:发送消息的ID号iSubMsgID:发送消息的子ID号paralen1:参数一的长度param1:参数一的内容paralen2:参数二的长度param2:参数二的内容paralen3:参数三的长度param3:参数三的内容返回:TRUE 成功2) SendGmsMsgToObj函数说明发送本地消息给指定的消息对象函数原型int32 SendGmsMessage(int32 iMsgID,int32 iSubMsgID,SGmsRecverInfo *pRecverInfo,*pSenderInfo=NULL,SGmsSenderInfo*param1=NULL,paralen1=0,voidint32paralen2=0,void*param2=NULL,int32*param3=NULL);paralen3=0,voidint32参数说明iMsgID:发送消息的ID号iSubMsgID:发送消息的子ID号pRecverInfo:指定接收者的定位信息pSenderInfo:发送者的信息paralen1:参数一的长度param1:参数一的内容paralen2:参数二的长度param2:参数二的内容paralen3:参数三的长度param3:参数三的内容返回:TRUE 成功2.3.2 发送网络消息1) SendGmsMsgToAllHost函数说明对所有节点发送广播消息函数原型int32 SendGmsMsgToAllHost (int32 iMsgID,int32 iSubMsgID,int32 iSenderGmsObjID=GMS_OBJID_ALL,*param1=NULL,int32paralen1=0,void*param2=NULL,int32paralen2=0,void*param3=NULL);paralen3=0,voidint32参数说明iMsgID:发送消息的ID号iSubMsgID:发送消息的子ID号iSenderGmsObjID:发送者的消息对象IDparalen1:参数一的长度param1:参数一的内容paralen2:参数二的长度param2:参数二的内容paralen3:参数三的长度param3:参数三的内容返回:TRUE 成功2) SendGmsMsgToOtherHost函数说明对除本机外的其他节点发送广播消息函数原型int32 SendGmsMsgToOtherHost (int32 iMsgID,int32 iSubMsgID,int32 iSenderGmsObjID=GMS_OBJID_ALL,*param1=NULL,paralen1=0,voidint32*param2=NULL,paralen2=0,voidint32*param3=NULL);paralen3=0,voidint32参数说明iMsgID:发送消息的ID号iSubMsgID:发送消息的子ID号iSenderGmsObjID:发送者的消息对象IDparalen1:参数一的长度param1:参数一的内容paralen2:参数二的长度param2:参数二的内容paralen3:参数三的长度param3:参数三的内容返回:TRUE 成功3) SendGmsMsgToHost函数说明对指定节点发送广播消息函数原型int32 SendGmsMsgToHost (char * cHostName,int32 iMsgID,int32 iSubMsgID,int32 iSenderGmsObjID=GMS_OBJID_ALL,*param1=NULL,int32paralen1=0,void*param2=NULL,paralen2=0,voidint32*param3=NULL);paralen3=0,voidint32参数说明cHostName:目的节点的机器名iMsgID:发送消息的ID号iSubMsgID:发送消息的子ID号iSenderGmsObjID:发送者的消息对象IDparalen1:参数一的长度param1:参数一的内容paralen2:参数二的长度param2:参数二的内容paralen3:参数三的长度param3:参数三的内容返回:TRUE 成功4) SendGmsMsgToHostObj函数说明对指定节点指定消息对象发送消息函数原型int32 SendGmsMsgToHostObj (char * cHostName,int32 iMsgID,int32 iSubMsgID,SGmsRecverInfo *pRecvInfo,int32 iSenderGmsObjID=GMS_OBJID_ALL,*param1=NULL,paralen1=0,voidint32paralen2=0,void*param2=NULL,int32*param3=NULL);int32paralen3=0,void参数说明cHostName:目的节点的机器名iMsgID:发送消息的ID号iSubMsgID:发送消息的子ID号pRecvInfo:指定接收者的定位信息iSenderGmsObjID:发送者的消息对象IDparalen1:参数一的长度param1:参数一的内容paralen2:参数二的长度param2:参数二的内容paralen3:参数三的长度param3:参数三的内容返回:TRUE 成功5) SendGmsMsgToSrv函数说明对指定服务器发送广播消息函数原型int32 SendGmsMessage(char *cServerName,int32 iOnlyMainFlag,int32 iMsgID,int32 iSubMsgID,int32 iSenderGmsObjID=GMS_OBJID_ALL,*param1=NULL,int32paralen1=0,void*param2=NULL,int32paralen2=0,void*param3=NULL);paralen3=0,voidint32参数说明cServerName:应用服务器的名字iOnlyMainFlag:是否仅发给主服务器iMsgID:发送消息的ID号iSubMsgID:发送消息的子ID号iSenderGmsObjID:发送者的消息对象IDparalen1:参数一的长度param1:参数一的内容paralen2:参数二的长度param2:参数二的内容paralen3:参数三的长度param3:参数三的内容返回:TRUE 成功6) SendGmsMsgToSrvObj函数说明对指定服务器指定消息对象发送消息函数原型int32 SendGmsMessage(char *cServerName,int32 iOnlyMainFlag,int32 iMsgID,int32 iSubMsgID,SGmsRecverInfo *pRecvInfo,int32 iSenderGmsObjID=GMS_OBJID_ALL,*param1=NULL,int32paralen1=0,void*param2=NULL,paralen2=0,voidint32*param3=NULL);paralen3=0,voidint32参数说明cServerName:应用服务器的名字iOnlyMainFlag:是否仅发给主服务器iMsgID:发送消息的ID号iSubMsgID:发送消息的子ID号pRecvInfo:指定接收者的定位信息iSenderGmsObjID:发送者的消息对象IDparalen1:参数一的长度param1:参数一的内容paralen2:参数二的长度param2:参数二的内容paralen3:参数三的长度param3:参数三的内容返回:TRUE 成功2.4 消息响应由类CGmsMsgTarget的派生类进行消息的响应2.4.1 StartGmsMessageMap函数说明把本派生类加入消息驱动队列中函数原型void StartGmsMessageMap(void)参数说明2.4.2 EndGmsMessageMap函数说明把本派生类退出消息驱动队列中,对象在析构时自动调用该函数,因此一般不必主动调用函数原型void EndGmsMessageMap(void)参数说明2.4.3 GetGmsObjID函数说明获得本消息对象的ID号函数原型int32 GetGmsObjID(void)参数说明返回本消息对象的ID号2.5 消息定时器类CGmsTimerObj是CGmsMsgTarget的派生类,提供了以下函数进行定时器的设置。
通过设备接口打开设备的步骤
通过设备接口打开设备的步骤一、驱动程序1.驱动程序框架的创建(1)用VC建立一个新工程。
在VC IDE环境中选择File|New,弹出New对话框。
在对话框中,选择Project选项卡。
在Project选项卡中,选择Win32 Application 。
设置工程名为OpenGuid.如图1所示,单击OK,进入下一个对话框,在对话框中选择一个空的工程。
如图2。
图1图2(2).新建两个文件GuidOpen.h与GuidOpen.cpp.这两个文件的具体写法,详见程序编写。
也能够直接添加现成的已经写好的文件,张帆这本书中,通常都是用的HelloWDM.h与HelloWDM.cpp.(3).增加新的编译版本,去掉Debug与Release版本。
在Build | Configuration如图3与图4。
图3图4(4).修改工程属性。
选择Project|Setting,在弹出的对话框中,选择General选项卡,将Intermediate files 与Output files改为MyDriver_Check,这个名字英语C/C++中,所设置的Fo与Fd后面的文件名相一致。
如图5。
图5将C/C++选项卡中,原有的Project Options内容全部删掉,换成一下内容。
/nologo /Gz /MLd /W3 /WX /Z7 /Od /D WIN32=100 /D_X86_=1 /D WINVER=0x500 /D DBG=1/Fo"MyDriver_Check/" /Fd"MyDriver_Check/" /FD /c其中:/nologo:表示不显示编译的版本信息/Gz:默认函数调用使用标准调用(_stdcall)/MLd/W3:使用第三级警告模式/WX:将警告信息转换为错误信息,最大程度保证代码可靠/Z7:用Z7模式产生调试信息?/Od:关闭调试模式,VC的调试命令不能调试内核下的程序/D WIN32=100 /D_X86_=1 /D WINVER=0x500 /D DBG=1:定义4个宏(不明白为什么)/Fo"MyDriver_Check/:MyDriver_Check/为Output Directories中“创建”的文件夹,存放中间生成的目标代码路径/Fd"MyDriver_Check/": MyDriver_Check/为存放.PDB文件的文件夹/FD:生成文件依奈/c:只进行编译,不连接图6选择Link选项卡,将原有的Project Options 内容全部删除,替换成如下内容:wdm.lib /nologo /base:"0x10000" /stack:0x400000,0x1000 /entry:"DriverEntry" /subsystem:console/incremental:no /pdb:"MyDriver_Check/GuidOpen.pdb" /debug /machine:I386 /nodefaultlib/out:"MyDriver_Check/GuiOpen.sys" /pdbtype:sept /subsystem:native /driver /SECTION:INIT,D /IGNORE:4078 其中:wdm.lib:链接WDM库/nologo:链接时不显示版本信息/base:"0x10000":加载驱动时,设定加载到虚拟内存的地址/stack:0x400000,0x1000:设定函数使用堆栈的地址与大小/entry:"DriverEntry":入口函数的地址(为符合标准函数调用的)/subsystem:console:设置子系统/incremental:no:非递曾式链接/pdb:"MyDriver_Check/GuidOpen.pdb":设置pdb文件的文件名为GuidOpen,储存于MyDriver_Check文件夹下面C/C++属性页中的设置一样。
OS引导记录手册
引导记录手册OS撰写整理:Killer前言应该说,这是一个未完成的作品,在我整理硬盘资料的时候,发现自己几年前学习所作的笔记,部分都是自己当年的心血,删之可惜。
尽管在某些细节地方仍可能存在技术错误。
我简单修改并整理了一下,作出这个文件,希望能给需要的朋友一些参考。
PDF部分来自网络的资料均在标题以(来自网络)字样注明未经许可,请勿用于商业目的killer2003-7-21第页2目录、引导流程.....................1PC.4、核心引导流程分析................2DOS.5、引导区代码分析................3DOS.. . 9、引导流程.................114Windows ... 、引导流程...............5Windows NT. ..14、引导流程...................6Linux ..17、文件系统详解....................731、分区表详解.....................838、文件分配表详解..................9141、文件分配表详解..................10246、文件目录表详解..................1147、磁盘的结构....................12..51、和文件段寄存器差异............13COM EXE.53、程序加载详解................14MSDOS55、声音判断故障...................15..73、开机错误代码分析.................16..74、引导程序的获取..................17..76、...................18BIOS SETUP.81、..8419Win9x 长文件名的存储分析.............、中断.......................20..88、配置分析...............21MSDOS.SYS..89、知识技巧精粹...................22..91、手工修复分区表实例分析..............23..102第页3PC引导流程图当计算机加电时,电源产生“”低电位信号,该信号通POWER GOOD过时钟产生驱动器输出有效的信号,使进入复位状态并强8284A RESET CPU置。
WDM驱动程序
建立驱动开发环境建立驱动开发环境,所需的软件为DriverStudio3.2 + DDK2003 + VC。
DDK建议使用最新的DDK2003,因为可以减少很多麻烦。
使用DDK2600的话,很多人反映会碰到一个编译出错的问题。
这是我使用DDK2600时碰到的同样的问题,然后在EDNchina网站上发的贴:--------------我在用DriverStudio开发驱动时,碰到了这样的问题:--------------------Configuration: KFileWrite - Win32Free--------------------d:\DESIGN~1\DRIVER~1\DRIVER~4\include\kcsq.h(35): Could not find the file csq.h.d:\DESIGN~1\DRIVER~1\DRIVER~4\include\kcsq.h(35): Could not find the file csq.h.Linking with DDK linker...LINK : fatal error LNK1181: cannot open input file 'ntstrsafe.lib' Error executing link.exe.KFileWrite.sys - 1 error(s), 0 warning(s)关键是这个ntstrsafe.lib.我在网上一搜,碰到这种问题的人还不少呢,虽然解决方法是很多,但都差不了几个字,要么从DDK2003那拷一个,或者是在project-->setting-->link下去掉对ntstrsafe.lib的链接,也不知他们自己到底有没有试,我在project-->setting-->link下压根就没看到ntstrsafe.lib几个字...很郁闷啊--------------网上所说的解决方法是对的,但没有说清楚,使人无法一时明白。
周立功CANalyst Manual用户手册
广州周立功单片机发展有限公司
w w w. z l g m c u . c o m
一、 版权信息
CANalyst CAN 分析仪及相关软件产品均属广州市周立功单片机发展有限公司所有,其产权受国家法 律绝对保护,未经本公司授权,其他公司、单位、代理商及个人不得非法使用和拷贝,否则将受到国家法 律的严厉制裁。
发光管代表的具体意义如下:
表 4.2 指示灯状态说明
指示灯
状态
指示状态
红
系统初始化状态指示
SYS
绿
USB 接口信号指示
CAN1
红 CAN1 接口运行状态
绿
CAN2
红 CAN2 接口运行状态
绿
CANalyst 分析仪上电后,系统初始化状态指示灯 SYS(红)点亮,表明系统正在初始化;否则,表 示存在系统电源故障或系统发生有严重的错误。
4.1 硬件连接
CANalyst CAN 分析仪具有体积小、支持即插即用的特点。用户可以选择 CANalyst 的供电方式为下列 两种方式之一:
外部供电模式:将外部+9~+25V 的电源连接到 CANalyst 分析仪的电源插座 POWER,然后将 PC 与 CANalyst 分析仪通过 USB 电缆连接;此时,指示灯 SYS 点亮红色。这种模式适合 CANalyst 分析仪使用 USB 总线集线器、或同一 PC 连接多个 USB 设备的场合。 USB 总线供电模式:将 PC 与 CANalyst 分析仪通过 USB 电缆连接,由 USB 电缆向 CANalyst 分 析仪提供+5V 电源,此时,指示灯 SYS 点亮,先显示红色,稍后将闪烁数次绿色,最终稳定显 示绿色。这种模式适合于大多数场合,例如 CANalyst 分析仪是 USB 总线上的唯一设备时。 CANalyst 分析仪在工作时,指示灯 CAN1 表示第 1 路 CAN 通道的状态:绿色表示正在运行,红色表 示发生错误。同理,指示灯 CAN2 表示第 2 路 CAN 通道的状态。
Power2000自动化监控系统技术手册-使用指南新
『Power2000 自动化集成监控系统』由“开发环境”及“运行环境”两大主要部分组成, 开发环境和运行环境同时存在,可独立使用,可随时切换;在开发环境中开发完成的工程, 必须在运行环境中才能运行。『Power2000 自动化集成监控系统』还提供了其他辅助工具,如: 工程管理、规约管理、管理中心等。
—5 —
Power2000 自动化集成监控系统
使用指南
串行通讯 数据处理
告警处理 远端遥控
事故跳闸总信号 保护预告信号 保护动作信号 有载调压变压器分接头位置 保护测控装置通讯状态 智能设备通讯状态 其他遥信点 与上级调度或监控系统通信或数据转发 通信规约的转换(CDT、1810、DNP3.0、101 及各种非电力规约) 与各种智能设备或保护测控装置通信 通信状态统计、显示、计算 原始值、工程值转换 报文显示(上行、下行) 主备通道切换 电网有功功率总加ΣP 电网无功功率总加ΣQ 电网有功电能总加 各线路功率因数计算 各线路负荷率统计 断路器分合闸统计 母线电压越限及合格率统计 内存遥测、内存遥信 系统变量、系统时间、用户函数 其他后台四则运算、逻辑判断、函数调用 分闸告警 合闸告警 变位告警(事故变位、正常变位) 越上限告警 越下限告警 越限告警 串行通讯异常告警 网络通讯异常告警 告警自动推出画面 告警自动音响播放 断路器分合闸 电容器投切
第三章、安全管理 ............................................................. 15 第四章、系统界面 ............................................................. 17 第五章、用户界面 ............................................................. 19
PSoC 62 数据手册说明书
■ 1 MB 应用闪存,32 KB EEPROM 区域和 32 KB 监控闪存
■ 6 个过压容限 (OVT) 引脚
■ 128 位宽闪存访问降低功耗
封装
■ SRAM 具有可选择的保留粒度
■ 124-BGA (评定中)
■ 288 KB 集成 SRAM
■ 80-WLCSP
■ 32 KB 保留边界 (可以保留 32K 到 288K,增量为 32K)
■ 锁相环 (PLL),用于倍增时钟频率 ■ 8 MHz 内部主振荡器 (IMO),精度为2% ■ 超低功耗 32-kHz 内部低速振荡器 (ILO),精度为±10% ■ 频率锁定环 (FLL),用于倍增 IMO 频率
串行通信 ■ 九个独立的运行时可重配置串行通信模块 (SCB),每个都可以
软件配置为 I2C,SPI 或 UART
■ 提供具有 Smart_IO 块的两个端口,能力; 这些在深度睡眠期间 可用
■ 安全引导不间断,直到系统保护属性建立 ■ 在引导期间使用硬件散列 (Hashing) 进行身份验证 ■ 逐步验证执行映像
电容式感应
■ 在受保护程序的只执行模式下安全执行代码
■ 赛普拉斯 CapSense Sigma-Delta (CSD) 提供一流的 SNR, 液体容差和接近感应
■ 12 位 1 Msps 的 SAR ADC 包括差分模式、单端模式和具有信 ■ 集成开发环境提供原理图设计输入和构建 (具有模拟和数字自动
号求平均功能的 16 通道序列发生器。
路由) 和代码开发和调试功能
■ 一个 12 位电压模式 DAC,稳定时间小于 5μs
■ 应用编程接口 (API) 可用于所有固定功能和可编程的外设
特性
32位双核CPU子系统 ■ 具有单周期倍频的 150-MHz Arm Cortex-M4F CPU (浮点和存
C201控制器快速手册
OpenPCS 编程简介
2009/5/26
二、USB-CAN 模块的使用
� 简单说明
SYS TEC USB-CAN 模块主要用于连接 PC 机的 USB 接口与控制器 C201 的 CAN 接口, 实现 PC 与控制器的通讯。 模块的详细说明参阅 《USB-CANmodul.pdf》。 USB-CAN 模块 CAN 接口
二、程序结构
在一个 OpenPCS 工程中包含了资源、POUS、数据类型。POUS 可以有多个程 序(至少包含 1 个程序) 。程序中可以调用功能块、函数。功能块可以调用功能块 、 函数。
OpenPCS 编程简介
2009/5/26
三、变量声明
OpenPCS 工程中,有两大类变量:全局变量和局部变量。 � 全局变量的声明:在整个工程中起作用 点击“文件”→“新建”,在“创建新文件”对话框中,选择“声明文件”, 在样板中,可以看到有两种类型的全局变量。一种是不使用物理地址(控制器 寄存器地址)的“全局变量”,另一种是使用物理地址的“直接全局变量”。
许可证 1 输入: Serial Number : 679M005 Code / Key : 0709-167h-3YPD3L-0000-1DFD9CAD-JG2SRH3 许可证 2 输入: Serial Number :679M006 Code / Key : 0709-PWM-ST36XZ-0000-00000000-7EHP101
OpenPCS 编程简介 � 运行 PcanView 软件
2009/5/26
运行 PcanView (USBCAN)。 运行该软件之前, 将 USB-CAN 模块连接到 PC 机。USB-CAN 模块红灯由闪烁变为常亮时,说明连接正常。
广州周立功单片机发展有限公 usbcan-i ii 智能can 接口卡说明书
USBCAN-I/II 智能CAN接口卡用户手册V1.2广州周立功单片机发展有限公司2003年11月26日目录一、版权信息-------------------------------------------------------1二、功能特点-------------------------------------------------------1三、硬件参数-------------------------------------------------------13.1外观-------------------------------------------------------13.2参数-------------------------------------------------------13.3软件支持---------------------------------------------------13.4产品清单---------------------------------------------------23.5典型应用---------------------------------------------------2四、设备安装-------------------------------------------------------24.1供电模式---------------------------------------------------24.2 DB9插座引脚----------------------------------------------24.3信号指示灯-------------------------------------------------34.4系统连接---------------------------------------------------44.5驱动程序安装----------------------------------------------4五、常见问题-------------------------------------------------------7六、产品服务-------------------------------------------------------86.1 保修期----------------------------------------------------86.2 保修政策包括的范围---------------------------------------86.3 保修政策不包括的范围-------------------------------------86.4 软件升级--------------------------------------------------86.5 技术支持--------------------------------------------------8附录A、ZLGCAN产品简介-------------------------------------------9 附录B、CAN2.0B协议帧格式-------------------------------------------11 附录C、SJA1000标准波特率----------------------------------------12一、版权信息USBCAN-I/II智能CAN接口卡及相关软件均属广州市周立功单片机发展有限公司所有,其产权受国家法律绝对保护,未经本公司授权,其他公司、单位、代理商及个人不得非法使用和拷贝,否则将受到国家法律的严厉制裁。
EMBC1000-USB1553B-1 USB 接口 1553B 测试模块 使用说明书
EMBC1000-USB1553B-1 USB接口1553B测试模块使用说明书版本:V2.0珠海欧比特控制工程股份有限公司地址:广东省珠海市唐家东岸白沙路1号欧比特科技园邮编:519080 电话*************传真*************网址:前 言感谢您选择了珠海欧比特控制工程股份有限公司的产品:USB接口1553B测试模块,型号EMBC1000-USB1553B-1。
为了使您能尽快熟练地使用EMBC1000-USB1553B-1产品,随产品配备了内容详细的使用说明书,在您第一次安装和使用本产品时,请务必仔细阅读随产品配备光盘里的相关资料。
注:在使用本产品之前必须安装两个驱动,驱动程序在光盘的“:\DRIVER”文件夹下,详细的说明请参阅3.2章节。
本使用说明书中如有错误和疏漏之处,热切欢迎您的指正。
珠海欧比特控制工程股份有限公司- i -目录第一章概述 (1)1.1关于EMBC1000-USB1553B-1 (1)1.2应用 (2)1.3特点 (3)1.4建议的计算机配置 (4)1.5光盘资源 (5)1.6注意事项 (6)第二章 1553B总线网络 (7)2.1接口定义 (7)2.21553B电缆和连接器 (9)2.31553B网络 (10)第三章模块的安装 (11)3.1硬件安装 (11)3.2软件驱动安装 (11)3.3应用软件安装 (15)第四章应用软件操作 (21)4.1BC模式 (22)4.1.1 创建消息 (23)4.1.2 用创建好的消息组建帧 (24)4.1.2 BC参数设置 (25)4.1.3 BC运行 (26)4.2RT接收模式 (26)4.2.1 RT设置 (27)4.2.3 RT运行 (28)4.3RT发送模式 (29)4.3.1 RT设置 (29)4.3.2 RT消息设置 (30)4.3.3 RT运行 (31)4.4BM模式 (32)4.4.1 BM过滤选择 (33)4.4.2 BM参数设置 (33)4.4.3 BM运行 (34)第五章固件升级软件 (36)第六章开发应用软件 (37)6.1API库 (37)6.2函数说明 (38)6.3示例程序 (42)第七章产品维护和故障检修 (43)珠海欧比特控制工程股份有限公司- ii -7.1维护 (43)7.2故障检修 (43)附录A 产品装箱清单 (44)附录B 产品订购信息 (45)附录C 1553B总线介绍 (46)珠海欧比特控制工程股份有限公司- iii -第一章 概述1.1 关于EMBC1000-USB1553B-1图 1-1 EMBC1000-USB1553B-1模块实物图EMBC1000-USB1553B-1是一款基于USB接口形式的、具有标准MIL-STD-1553B 总线数据接口的模块,能让计算机方便的连接到MIL-STD-1553B总线上,实现MIL-STD-1553B总线协议的通讯模块,可广泛应用于航空电子中的系统、设备的搭建、维护、测试及故障检修等工作;同时,该模块也可为科研机构和高校开发、应用MIL-STD-1553B总线提供测试。
WinCE 6.0设备驱动程序基本知识
设备驱动程序基础
b)
混合驱动程序
同样使用两层的MDD/PDD模型,这意味着会持续使用MDD, 也就是对于所有的PDD来说都使用相同的MDD,但是这个 MDD还提供了额外的独特功能(这个功能是给定设备类型的 MDD/PDD实现的一种逻辑扩展)。
使用混合驱动程序的优点: 使用混合驱动程序的优点:与分层架构相同。
接上页... 接上页...
这种架构通常在下列情况中使用: 当某个设备类型没有可用的分层模型时; 当设备硬件是不常见的定制硬件时; 当没有可以重用的分层驱动程序代码时; 当使用MDD/PDD模型,但不能达到需要的效率水平时。 当使用MDD/PDD模型,但不能达到需要的效率水平时。 优点: 可以避免在各个层之间切换,并且能最大化使用硬件,这些都 优点: 带来了高效率。
XXX_Seek
— 调用SetFilePointer函数时调用此函数 调用SetFilePointer函数时调用此函数
实现流接口驱动程序
XXX_IOControl
— 调用DeviceIoControl函数时调用此函数 调用DeviceIoControl函数时调用此函数 — 提供了支持自定义驱动程序操作的机制 — 大多数驱动程序都具有的多用途函数 — 通过I/O控制代码来识别具体的操作 通过I/O控制代码来识别具体的操作 — I/O控制代码是每个设备特定的 I/O控制代码是每个设备特定的
设备驱动程序基础
GWES(图形、窗口以及事件子系统) GWES(图形、窗口以及事件子系统):
支持窗口、对话框、控件、菜单、以及其他和用户界面相关的资源。控 制窗口管理器和窗口消息管理器,包括键盘消息、鼠标消息、触摸屏消 息等等。 GWES(gwes.dll)模块会加载由本系统独占使用的设备驱动程序,也就 是下列以任何方式与用户界面相关联的驱动程序:键盘、视频适配器、 触摸屏、打印机、鼠标。
