标准名称

Similar documents
「西醫基層總額支付委員會《第28次委員會議紀錄

C 1

考 試 日 期 :2016/04/24 教 室 名 稱 :602 電 腦 教 室 考 試 時 間 :09: 二 技 企 管 一 胡 宗 兒 中 文 輸 入 四 技 企 四 甲 林 姿 瑄 中 文 輸 入 二 技 企 管 一

C++ 程序设计 告别 OJ1 - 参考答案 MASTER 2019 年 5 月 3 日 1

计算机网络实验说明

团 学 要 闻 我 校 召 开 共 青 团 五 届 九 次 全 委 ( 扩 大 ) 会 议 3 月 17 日, 我 校 共 青 团 五 届 九 次 全 委 ( 扩 大 ) 会 议 在 行 政 办 公 楼 五 楼 会 议 室 举 行, 校 团 委 委 员 各 院 ( 系 ) 团 委 书 记 校 学 生

目 次 寫 在 前 面 李 世 宜... 3 第 一 組 Is this true love- 由 愛 生 恨... 4 曾 毓 皓 丁 士 甫 邱 俐 綺 姜 季 芸 黃 子 芹... 4 第 二 組 流 年 方 學 緯 邱 子 銘 施 酈 庭 曾 柏 陞 黃 勻 琪 羅 凱 騰...

CC213

1 Project New Project 1 2 Windows 1 3 N C test Windows uv2 KEIL uvision2 1 2 New Project Ateml AT89C AT89C51 3 KEIL Demo C C File

}; "P2VTKNvTAnYNwBrqXbgxRSFQs6FTEhNJ", " " string imagedata; if(0!= read_image("a.jpg",imagedata)) { return -1; } string rsp; ytopen_sdk m_sd

Microsoft Word - 在VMWare-5.5+RedHat-9下建立本机QTopia-2.1.1虚拟平台a.doc

帝国CMS下在PHP文件中调用数据库类执行SQL语句实例

一 登录 crm Mobile 系统 : 输入 ShijiCare 用户名和密码, 登录系统, 如图所示 : 第 2 页共 32 页

2013 C 1 # include <stdio.h> 2 int main ( void ) 3 { 4 int cases, a, b, i; 5 scanf ("%d", & cases ); 6 for (i = 0;i < cases ;i ++) 7 { 8 scanf ("%d %d

FY.DOC

untitled

51 C 51 isp 10 C PCB C C C C KEIL

/ / (FC 3)...

目录

<B0B8C0FDCAD6B2E15FD3A1CBA2B0E6>

BOOL EnumWindows(WNDENUMPROC lparam); lpenumfunc, LPARAM (Native Interface) PowerBuilder PowerBuilder PBNI 2

通过Hive将数据写入到ElasticSearch

哈尔滨应用职业技术学院2012年教育教学质量报告

untitled

ebook

untitled

C/C++语言 - C/C++数据

SDK 概要 使用 Maven 的用户可以从 Maven 库中搜索 "odps-sdk" 获取不同版本的 Java SDK: 包名 odps-sdk-core odps-sdk-commons odps-sdk-udf odps-sdk-mapred odps-sdk-graph 描述 ODPS 基

OOP with Java 通知 Project 4: 4 月 19 日晚 9 点

新・明解C言語入門編『索引』

本实验需要用到两个特征值, 两个特征值的属性各不相同, 我们同样在 SimpleGATTProfile 中新建即可, 接下来就开始吧 新建特征值表 : 表 3.3 串口透传特征值属性 长度 属性 UUID 功能 (byte) SIMPLEPROFILE_CHA R6 15 可读可写 FFF6 服务器

说 : 荀 子 极 偏 驳, 只 一 句 性 恶, 大 本 已 失 5 朱 熹 说 : 荀 扬 不 惟 说 性 不 是, 从 头 到 底 皆 不 识 6 采 取 的 都 是 这 种 理 论 框 架 另 一 种 理 论 框 架 始 于 20 世 纪 前 期, 这 便 是 诸 子 学 研 究 的 框 架

c_cpp

新版 明解C++入門編

untitled

int *p int a 0x00C7 0x00C7 0x00C int I[2], *pi = &I[0]; pi++; char C[2], *pc = &C[0]; pc++; float F[2], *pf = &F[0]; pf++;

chap07.key

<4D F736F F D20C9EEDBDACAD0BAA3D4C2CDA8D0C5B6AFCCACC3DCC2EBBDE2BEF6B7BDB0B82E646F63>

C/C++ - 文件IO

FPGAs in Next Generation Wireless Networks WPChinese

《C语言程序设计》教材习题参考答案

C C

untitled

untitled

Microsoft Word - MAN2023A_CH_APPONE.doc

提问袁小兵:

// HDevelopTemplateWPF projects located under %HALCONEXAMPLES%\c# using System; using HalconDotNet; public partial class HDevelopExport public HTuple

嵌入式Linux块设备驱动开发解析

JLX

<4D F736F F D E4345C6BDCCA84323B1E0B3CCD2AAB5E3D6AED2BB2E646F63>

Microsoft Word - MSP430 Launchpad 指导书.docx

目录 1 H3C R4900 G2 服务器可选部件与操作系统兼容性列表 控制卡 GPU 卡 网卡 FC HBA 卡 TPM/TCM 模块 NVMe SSD PCle 加速卡 1-31 i

Microsoft Word - 把时间当作朋友(2011第3版)3.0.b.07.doc

6020

C++ 程序设计 实验 2 - 参考答案 MASTER 2017 年 5 月 21 日 1

OOP with Java 通知 Project 2 提交时间 : 3 月 14 日晚 9 点 另一名助教 : 王桢 学习使用文本编辑器 学习使用 cmd: Power shell 阅读参考资料

概述

Microsoft Word - MAN2011A_CH_RTT.doc

在挑选合适的 SDK 的时候需要注意, 标准 windows 平台应用选择 FBX SDK VS2015,windows 应用商店和全平台通用的不用考虑 windows 全平台通用的应用是 windows10 新推出的功能, 可以打通 windows phone windows s

手册 doc

Fun Time (1) What happens in memory? 1 i n t i ; 2 s h o r t j ; 3 double k ; 4 char c = a ; 5 i = 3; j = 2; 6 k = i j ; H.-T. Lin (NTU CSIE) Referenc

untitled

C 1 # include <stdio.h> 2 int main ( void ) { 4 int cases, i; 5 long long a, b; 6 scanf ("%d", & cases ); 7 for (i = 0;i < cases ;i ++) 8 { 9

概述

财务制度

Microsoft Word - 正文.doc

res/layout 目录下的 main.xml 源码 : <?xml version="1.0" encoding="utf 8"?> <TabHost android:layout_height="fill_parent" xml

Microsoft Word - 实用案例.doc

_汪_文前新ok[3.1].doc

Chapter #

绘制OpenCascade中的曲线

驱动组开发人员工作手册

untitled

Microsoft Word - CIN-DLL.doc

2015年第五届“华为杯”全国大学生智能设计竞赛通知

Microsoft PowerPoint - BECKHOFF技术_ADS通讯 [Compatibility Mode]

Transcription:

设计文件 名称 编号 版本 Qtouch 驱动文件设计说明 V2.2.0 版权专有违者必究 标准模板 :Q/ST41.34-2010

编制 校核 审核 工艺 标准化 批准 版本号更改人更改日期更改说明变更编号 I

1 目的和范围 1.1 目的 本文档详细介绍了 Qtouch 驱动文件设计的基本格式和接口, 使用这些接口函数可实现与设备的通 讯 QTouch 通讯配置的连接和实时数据库的交互 2 规范性引用文件 表 1 序号标准 / 文件号标准 / 文件名称备注 1 软件编码规范 -C++ 语言 2 C 语言编码规范使用手册 3 术语和缩略语 表 2 序号术语 / 缩略语描述 1 Qt 一种图形系统 2 Linux 嵌入式操作系统 3 QT3 Qt 的版本号 4 4 驱动开发包组成 ( 以 modbusrtu 为例 ) 表 3 序号一级文件二级文件 1 Bin ioitem.dll io 连接属性设置 dll 2 modusrtu linux 下执行程序 3 modbusrtu.exe windows 下执行程序 4 modbusrtu.chm chm 格式帮助文档 共 8 页第 1 页

序号一级文件二级文件 5 Source modbusrtu_linv2.2 lin 下源程序 6 modbusrtu_winv2.2 win 下源程序 驱动包文件组成如下图 : Bin 文件夹下组成如下图 : Source 文件夹下组成如下图 : 5 驱动执行依赖关系 ( 以 modbustcp 为例 ) 表 4 序号文件依赖关系 1 modbustcp 增加一个 modustcp 驱动之后, 从 drive 包中拷贝出来的 linux 下执行程序 2 modbustcp.exe 增加一个 modustcp 驱动之后, 从 drive 包中拷贝出来的 win 下执行程序 3 modbustcp.xml 增加一个 modustcp 驱动之后, 由驱动设置窗口配置的初始化参数 4 modbustcp_reg.xml 由数据库管理配置的 IO 关联参数, 根据这个文件进行发送帧配置 工程文件包组成如下 : 6 结构分解 6.1 顶层包 共 8 页第 2 页

驱动协议模板 ( 串口设备 ) 主程序框架 QCtDrive Xml 配置文件读取 QDomParser 串口操作 QextSerialBase QextSerialPort CSerial 发送接收帧处理 CQueryItem 通讯协议处理 CCom CModbus 实时共享内存 QRamDrive 远程端口连接 SimpleServer ClientSocket 表 5 序号主要接口文件描述 1 ramrt.h,ramrt.cpp 实时数据库系统函数封装 2 domparser.h,domparser.cpp XML 文件读取, 获取用户配置信息的接口 3 serial.h,serial.cpp 串口操作封装, 对串口读写之调用 4 qextserialbase.h,qextserialbase.cpp qextserialport.h,qextserialport.cpp 串口操作基本类 5 win_qextserialport.h,win_qextserialport.cpp Windows 下串口设置和操作类, 与 linux 下而选一 6 posix_qextserialport.h,posix_qextserialport.cpp Linux 下串口设置和操作类, 与 windows 下而选一 7 ctsocket.h,ctsocket.cpp TCP 服务器端封装类 8 socketclient.h,socketclient.cpp TCP 客户端封装类 9 trayicon.h,trayicon.cpp trayicon_win.h,trayicon_win.cpp Windows 下驱动程序显示图标类, 仅 windows 下使用 10 comm.h,comm.cpp 对驱动程序处理的父类, 共有特性初始化 11 Modbus.h,Modbus.cpp 特定 Modbus 程序通讯处理类 12 ctdrive.h,ctdrive.cpp 主框架处理类 共 8 页第 3 页

序号主要接口文件描述 13 main.cpp 程序 main 入口 6.2 执行流程 main QCtDrive 读取 XML 文件 Qtimer 定时器 QDomParser CModbus display CCom CQueryItem CSerial QextSerialPort QextSerialBase QRamDrive SimpleServer ClientSocket 6.3 主要函数说明 1 bool CreateRam( int istationnum ); * 打开实时数据库共享内存, 在操作实时数据库之前必须先打开共享内存 * 参数 istationnum * 站号, 默认为 0 true 表示成功, 否则表示失败 2 double GetItemValue( int istationid, int id ) * 获取实时数据库指定编号的数据 * 参数 istationid * 站号, 默认为 0 * 参数 id 共 8 页第 4 页

* 指定数据在内存中编号 数据值 3 void SetItemValue( int istationid, int id, double dvalue ) * 设置实时数据库指定类型指定编号的数据值 * 参数 istationid * 站号, 默认为 0 * 参数 id * 指定数据在内存中编号 * 参数 dvalue * 设置的数值 * 无返回值 4 int GetKcFlag( int istationid ) * 获取实时数据库下发控制标志 * 参数 istationid * 站号, 默认为 0 int 实时数据库下发控制标志, 为 1 表示有控制要下发, 否则为空 5 StructKcData GetKcData( int istationid ) * 获取实时数据库下发控制信息, 一般在 GetKcFlag( 0 ) 返回 1 后调用 * 参数 istationid * 控制量编号 StructKcData * struct StructKcData { int kcno; // 下发控制的数据内存序号 共 8 页第 5 页

char datakc[200]; // 传递下来的数值 * }; 6 void SetKcFlag(int istationid, int flag) * 设置实时数据库下发控制信息, 一般在 GetKcData(0) 获取到控制信息后清空标志 * 参数 istationid * 站号, 默认为 0 * 参数 flag * 需要被设置的值 * 无返回值 7 void SetKcClear(int istationid,int flag) * 清除数据库下发控制信息 * 参数 istationid * 站号, 默认为 0 * 参数 flag * 为 0 时, 表示清空, 否则无效 * 无返回值 8. bool readethernetlinklayer_reg(qstring path,qstring sname) * 打开 XML 文件, 并读取信息 * 参数 path * 文件路径 * 参数 sname * 文件名 true 表示成功, 否则表示失败 共 8 页第 6 页

9. bool CSerial::OpenCom( ) * 打开串口, 此前需要先配置好 PortSettings settings 结构的串口参数 * 参数 * 无 true 表示成功, 否则表示失败 10. int CSerial::ReadCom( unsigned char * lpbuf, int datalen ) * 读取串口信息 * 参数 lpbuf * 接收数据的结构 * 参数 datalen * 接收数据的最大长度, 函数会在接收到此长度的数据或 1S 未响应后返回 int * 接收到的数据字节长度 11. int CSerial::WriteCom( const void* lpbuf, int dwcount ) * 写入串口信息 * 参数 lpbuf * 写入的数据结构 * 参数 dwcount * 被写入的数据串长度 int * 写入的数据字节长度 共 8 页第 7 页

12. int QSocketClient::readSocketBlock( unsigned char* Buf,int maxlen) * 读取网口接收到的数据 * 参数 Buf * 用以接收数据的结构 * 参数 maxlen * 接收最大长度 int * 接收到的数据字节长度 13. int QSocketClient::writeSocketBlock(unsigned char *Buf,int ilen) * 写入数据到网口 * 参数 Buf * 传入的数据结构 * 参数 ilen * 传入的数据最大长度 int * 写入数据字节长度 7 用户自定义驱动方法 用户可以将自己定义的驱动文件放到 QTouch 的 drives 目录下, 按照一定的规格保存, 即可以实现自定 义驱动的添加,QTouch 的参数系统就会找到这个文件 规则文件为 DrivesConfig.ini, 主要对 drives 下面的文件夹进行管理, 用户可以增加一个专用的文件夹 文件夹分为 2 级管理, 如上图所示为一级文件夹, 主要是对设备的分类, 一般用户可以不新建一级文件夹, 在一级文件夹之下, 可以新建自己的文件夹, 用于将自定义的程序保存进来 以 ModBus 设备为例 : 共 8 页第 8 页

如上表明 : 在 ModBus 设备这个文件夹下面有 5 个子文件夹, 如用户要增加一个专用文件夹则可以如下操作 : 完成这个设置之后, 在 Modbus 设备下就可以建立一个自定义文件夹了 : 在自定义文件夹下, 用户就可以添加自定义驱动, 需要增加一个配置文件 CONFIG.ini: 文件夹内容如下 : 完成后在 QTouch 的设备选择中就会出现自定义的选项 : 共 8 页第 9 页

协议选择中就会出现自定义协议的选项 : A 共 8 页第 10 页