基于AT89S52单片机的实时温度采集系统

Size: px
Start display at page:

Download "基于AT89S52单片机的实时温度采集系统"

Transcription

1 基于嵌入式 Linux 的串口与 Socket 端口转发程序设 计 数学与计算机科学学院电子信息科学与技术专业 郑远指导教师 : 张美平 摘要 在传统工业控制和数据采集设备中, 运用最多的是符合 RS232 标准的串口通信 利用串口进行通信有着许多其他方法所没有的便利, 串口设备成本低廉, 设计安装方便等 然而串口通信也有着一些缺点, 比如传输距离短, 控制端设备必须带串口, 而且不能做到随时随地的控制 本课题基于 EmBee 无线传感器网络, 针对这些问题, 设计一个转换程序, 将串口数据和 socket 数据进行转换, 利用 Internet 做到随时随地接收数据 发送控制指令等 将程序移植到嵌入式 Linux 下, 降低实际运用的成本 关键词 Linux; 串口 ;socket; 无线传感器网络

2 目录 1 引言 课题背景 主要工作内容 论文结构 设计思路 系统组成框图 服务端 无线传感器网络 数据格式说明 服务端实现 客户端 客户端思路 客户端实现 服务端移植 嵌入式 Linux 服务端移植至 liod270 开发平台 测试结果 测试环境 测试结果 总结...29 I

3 1 引言 1.1 课题背景随着信息科学地飞速发展, 互联网的使用越来越便利, 基于互联网的应用也越来越多 然而在工业控制 数据采集等领域依旧是采取低成本的串口或一些总线协议做应用 这类方式虽然成本低廉, 但是由于本身对硬件有很大的依赖性, 以及技术本身的缺陷, 使得它们无法做到随时随地, 特别是数据采集领域 随着无线传感器网络的兴起, 基于无线传感器网络的数据采集也有较大的发展, 然而由于其应用环境多是很苛刻的, 即要求传感器节点性能高, 可靠性强, 又要求节点的功耗尽量的低, 成本尽量低, 因此大多数节点采用的是超低功耗的单片机作为主控单元 网络内的数据统一由汇聚节点向上传输, 由于传输方式的限制, 汇聚节点所能传输的距离很有限, 而往往人们又需要能远程得到这些数据 本设计利用嵌入式 Linux 平台的优点提出了一种有限的解决方法, 通过将串口数据与 socket 数据互相转换后转发出去, 这样就可以实现远程接收与控制 1.2 主要工作内容本文主要利用无线传感器网络 EmBee 模块, 在 PC 的 Linux 下编写 C 程序, 实现基本的串口转 Socket 的功能, 并在此基础上, 改进程序的功能 由于本文所用嵌入式 Linux 平台为亿道的 liod 平台, 采用 PXA270 处理器, 内核与文件系统以及相关驱动均已提供, 将程序及所用的库进行移植即可 1.3 论文结构论文分为八章, 内容安排如下 : 第一章, 主要介绍本文研究背景, 并粗略介绍本文的主要工作内容 第二章, 介绍本设计的设计思路 第三章, 介绍本设计应用的框图 第四章, 详细介绍服务端的实现过程 第五章, 详细介绍配套的客户端的实现 第六章, 介绍程序移植过程 第七章, 在设备上测试程序, 观察运行结果, 验证程序功能 第八章, 总结 2 设计思路 无线传感器网络的数据, 汇集到根节点后, 由根节点通过串口发送出去 嵌入式 Linux 平台硬件应起码具备通信串口和以太网口, 这样, 串口接收到根节点发送来的数据, 通过程序已经建立好的 Socket 连接发送出去, 由远程客户端接收 由于服务端是在嵌入式 Linux 平台下运行, 运算能力有限, 为了能使串口数据高效地转发出去, 服务端不对数据进行处理 而考虑到串口数据若不完整, 那么在客户端就无法正确解析, 轻则部分数据丢失, 重则客户端不会收到任何有效数据, 所以服务端应在串口数据完整的情况下转发 客户端连接时发送模式标识, 服务端阻塞在 accept 上, 客户端连接后, 服务端先接收 1

4 模式标识, 据此开启线程 开启线程后, 在串口回调函数的触发下, 每次触发就发送一次串口接收来的数据, 为了使客户端与服务器端进行一些基本的错误处理能力, 本文采用如下的格式进行 Socket 数据传输 : 表 2-1 本文 Socket 数据格式约定本次发送的 Socket 数据长度本次发送的 Socket 数据其中本次发送的真实长度为数据长度加 1 这样就可以根据实际发送长度和要发送长度进行判断, 以处理 Socket 通信异常的一些基本情况, 例如客户端异常断开 服务端异常断开等 根据无线传感器网络 EmBee 模块的相关材料中了解到, 网络内和串口所传输的数据包为如下格式 : 表 2-2 基于 tinyos 操作系统的无线传感器网络数据包格式开始字段 MSG_HEADER MSG_DATA 校验结束字段 (2 Bytes) (10 Bytes) ( 长度不固定 ) (2 Bytes) (1 Bytes) 0x7E 0x42 Header Data CCS 0x7E 其中开始字段和结束字段是固定不变的, 故可将有开始字段和结束字段所包含的数据长度是否大于 0 用来判断数据完整性 客户端运行在 PC 上, 将完成数据解析提取 显示 存储等工作, 另外, 通过一些简单的协定, 将系统扩展为可由客户端生成数据, 由服务端从 Socket 接收后转发到串口, 本文的具体实现是客户端根据用户需求生成控制命令发给服务端, 由服务端转发至串口, 思路不失一般性 在互联网上, 服务器处理的客户端可能往往不只一个, 故将服务端设计成多客户端连接模式 3 系统组成框图 系统分为两部分, 一是服务端程序, 这是主要部分, 运行在嵌入式 Linux 平台下, 本文测试平台为 liod 平台 ; 二是客户端, 这是与服务端配套的部分, 运行在 PC 上, 本文测试程序为 MFC 对话框程序, 运行在 Windows 下 2

5 图 3-1 系统框图 4 服务端 4.1 无线传感器网络 无线传感器网络传感器技术 微机电系统 现代网络和无线通信等技术的进步, 推动了具有现代意义的无线传感器网络的产生和发展 无线传感器网络涉及众多学科, 成为目前 IT 领域中的研究热点之一 现在, 互联网为人们提供了快捷的通信平台, 极大地方便了人们的信息交流 无线传感器网络扩展了人们的信息获取能力, 将客观世界的物理信息同传输网络连接在一起, 在下一代互联网中将为人们提供最直接 最有效 最真实的信息 无线传感器网络能够获取客观物理信息, 具有十分广阔的应用前景, 能应用于军事国防 工农业控制 城市管理 生物医疗 环境监测 抢险救灾 防恐反恐 危险区域远程控制等诸多领域 美国在 20 世纪 90 年代就开始了传感器网络的研究工作, 并首先在军方应用和推广 我国也非常重视无线传感器网络的发展, 国家自然科学基金委员会已经审批了无线传感器网络相关的一个重点课题和多个面上课题, 在国家发展改革委员会的下一代互联网示范工程中, 也部署了无线传感器网络相关的课题 EmBee 模块本文所应用的无线传感器网络, 节点为 EmBee 模块 EmBee 模块是一款集成了传感器 无线电收发装置 天线 微控制器和具有编程能力的超低功耗模块 EmBee 模块的低功耗是由于采用了 TI 的 MSP430 F1611 超低功耗微处理器, 具有 10kB 3

6 的 RAM 48KB Flash 和 128B 的 information flash 除此之外还提供了 8 个数模转换的控制器端口 以及一系列的外设 ( 例如 SPI UART 数字 I/O 端口 看门狗等 ) EmBee 使用 Chipcon CC2420 的 RF 进行无线通讯 CC2420 可由 TI MSP430 微控制器通过 SPI 口 一系列的数字 I/O 线路和中断来控制 EmBee 有 2 种可选择的天线, 一种是内置于 PCB 板的内部天线, 一种是通过 SMA 连接器连接的外部天线 默认情况下 EmBee 使用内部天线, 如果应用程序需要使用外部天线, 那么 SMA 连接器必须安装, 外部天线就可以直接通过 SMA 连接上 EmBee 了 EmBee 采用 DS1820 温度传感器, 可提供 9 位温度读数 4.2 数据格式说明 EmBee 模块上位机和下位机通信时, 所有的命令 应答均以如下数据包格式进行 : 表 4-1 数据包格式 开始字段 (2 Bytes) MSG_HEADER (10 Bytes) MSG_DATA ( 长度不固定 ) 校验 (2 Bytes) 结束字段 (1 Bytes) 0x7E 0x42 Header Data CCS 0x7E 所有的包有着固定的开始字段和结束字段, 负载数据包括 MSG_HEADER 和 MSG_DATA 两部分, 其中 MSG_HEADER 是 10 个字节, 主要包括以下 8 个字段 : 表 4-2 MSG_HEADER 各字段意义 字段名 字段类型 意义 length UINT8 MSG_DATA 的长度 ( 字节数 ) fcfhi UINT8 FCF 的高字节, 始终为 0 fcflo UINT8 FCF 的低字节, 始终为 0 dsn UINT8 Data Sequence Number, 始终为 0 destpan UINT16 目标 PAN, 始终为 0xff addr UINT16 目标地址, 这里为广播地址, 始终为 0xff type UINT8 数据包类型 group UINT8 当前节点所在的组, 始终为 0 其中,type 字段包含如下 4 种类型 : 表 4-3 type 字段的可能值及意义 类型名 值 意义 DataMSG 0x11 数据 OrderMSG 0x12 命令 DataACK 0x13 数据应答 OrderACK 0x14 命令应答 实际应用中, 下位机将采集的数据, 包括温度 湿度和灯的状态等信息封装在一个数据 包内, 其数据部分格式为 : 表 4-4 数据包 MSG_DATA 格式 MSG_DATA Node ID Parent Epoch Voltage Temp Humi Light 各字段意义如下 : 表 4-5 数据包 MSG_DATA 各字段意义 字段名 字段类型 意义 Node ID UINT16 节点号 4

7 Parent UINT16 父节点号 Epoch UINT16 显示放大 缩小倍数, 始终为 0 Voltage UINT16 电压值, 始终为 0 Temp UINT16 温度值, 实际采集的 AD 值 Humi UINT16 湿度值, 实际采集的 AD 值 Light UINT16 灯的状态 其中, 温度值包含两个字节,Light 字段各个位的意义如下 : 表 4-6 Light 字段各个位的说明 位 意义 b15~b12 默认值为 0; 保留 b11~b8 红灯的状态 0000 = 熄灭 1111 = 亮 1100 = 闪烁 b7~b4 黄灯的状态 0000 = 熄灭 1111 = 亮 1100 = 闪烁 b3~b0 绿灯的状态 0000 = 熄灭 1111 = 亮 1100 = 闪烁 上位机可以向下位机发送命令设置某个节点的节点号 上传数据的速率 灯的状态和发 射功率等 命令的头部结构与数据相同,MSG_DATA 格式如下 : 表 4-7 命令包 MSG_DATA 格式 MSG_DATA SeqNO NodeID ParentPath Order Orderdata 各个字段意义如下 : 表 4-8 命令包 MSG_DATA 各字段意义 字段名 字段类型 意义 SeqNO UINT16 命令序号 NodeID UINT16 节点号 ParentPath UINT16*n 到达该节点的路径 Parent[0]:UINT16 根节点的节点号 Parent[i]:UINT16 Parent[i+1] 的父节点号 Order UINT8 命令名称 Orderdata UINT16 命令数据 上位机向下位机发送的命令是通过路由路径中的节点一级一级的转发完成的 关于 Order 和 Orderdata 的定义, 如下 : 表 4-9 Order 和 Orderdata 字段的可能值 Order Name 命令值 Orderdata 意义 SetLight 0x00 参见灯状态说明 用于设置控制灯的状态 SetNodeID 0x01 新的节点号 设置新的节点号 5

8 SetDataRate 0x02 n 设置节点上传数据的速率,n 的单 位为毫秒 SetRFPower 0x03 n=0~255 设置新的 Radio Frequency Power 4.3 服务端实现 服务端设计思路程序的基本目的是为了实现串口 /Socket 端口数据的互相转换, 一方数据一到来, 先存在缓冲区, 再立即发送到另一方, 涉及到 Linux 下的串口编程 Socket 编程和 POSIX 多线程编程 Linux 系统中, 设备作为一种特殊的文件管理, 设备分为字符设备 块设备文件, 串口编程以往的经验是打开串口文件, 如 /dev/ttys0, 代表打开 COM1, 进行相关数据结构各个字段的设置, 即可用基本的读写函数进行串口的读写 但这样有个缺点, 往往人们在刚接触 Linux 串口编程时, 经常会因为那些数据结构设置的问题而使效率变低 Windows 下的串口编程模式, 特别是 VC++, 对串口编程方法提供了很多解决方法, 值得借鉴的是封装 封装简化了串口编程的工作过程, 往往只需做些简单的调用, 即可完成很多工作 鉴于此, 在网上找到一个 Linux 串口编程库 libcssl, 该库提供了串口的基本接口, 为使用者简化了设置的问题, 而且源码开放, 利于移植, 很适合本文应用 Linux 下的 Socket 编程, 有很多书籍都有介绍, 流程也大同小异, 但多是一个服务端对一个客户端, 而实际又是需要多客户端连接 本文提出一种多客户端的解决方案, 利用 Linux 对多线程的支持, 为每个客户端分配一个线程 将服务端程序阻塞在 accept 函数上, 当函数返回时, 将连接的客户端标识符作为参数, 新建一个处理客户端的线程, 传入客户端标识 使用 POSIX 线程库实现, 具有良好的移植性 程序多线程化了以后, 就要充分考虑线程同步的问题, 比如一个变量 data 是对所有线程共享的, 那么如果线程 1 有分别两次读取 data 的值, 并进行比较, 如果第一次读取后, 另外一个线程 2 将 data 的值改写, 那么线程 1 再次读取 data 的值, 比较的结果将是不等, 而线程 1 的本意是希望这两次读取到的值是相等的 这就需要慎重对共享数据的写入 本文中串口回调函数写入缓冲区和 Socket 线程读取缓冲区所采用的是将缓冲区锁定后读写, 既在写的时候不能读, 在读的时候不能写 为防止当客户端数目多的时候, 单个缓冲区的读写等待造成串口数据的丢失, 本文采用多缓冲区的方式来避免这中情况发生 由于在 Linux 下的 Socket 程序, 服务端会因为客户端的异常退出而退出, 这种情况若出现在多客户端的情况下, 一个客户端异常退出, 导致服务端退出, 进而使得其他客户端出现异常 这是因为在客户端异常退出时, 服务端会收到系统的 SIGPIPE 信号, 而应用程序默认对该信号的处理是程序退出 利用 Linux 下的信号屏蔽, 在服务端屏蔽 SIGPIPE 信号, 即可避免上述情况发生 服务端流程图 6

9 图 4-1 服务端流程图由于服务端是运行在嵌入式 Linux 平台下, 服务器参数可能不是固定的, 可以使用的串口也不是固定的, 故将这些作为主函数的参数传入 采用了多线程技术, 缓冲区供多个线程的使用, 包括串口线程的写, 和 Socket 客户端线程的读, 因此需要有较好的线程同步方法来避免同时被读和写 这里采用 4 个缓冲区, 并用一个 4 元素的数组标识是否正在读取 如果此缓冲区正在读取, 则不会被写入, 而是等待读取完毕 缓冲区结构如下 : #define BUFNUM 4 struct buffer_t unsigned char *data[bufnum]; // 指针数组, 分别指向 4 个缓冲区 pthread_mutex_t m_lock; // 写锁 int lock[bufnum]; //4 个读取标识, 非 0 表示对应的缓冲区有线程正在读取, volatile int cw; // 写入位置 ; struct buffer_t b; int init_buffer() // 初始化缓冲区 int i; for(i=0;i<bufnum;i++) b.data[i]=(unsigned char *)malloc(60*sizeof(unsigned char)); b.lock[i]=0; b.cw=0; pthread_mutex_init(&(b.m_lock),null); 屏蔽 SIGPIPE 的代码如下 : signal(sigpipe, SIG_IGN); wait_for_connect 线程 wait_for_connect 线程负责创建 Socket 绑定 监听 等待连接 分配客户端线程 本文为客户端定义了两种模式, 因为不一定每个客户端都有权控制节点, 所以, 服务器应能对客户端类型进行判断, 并为其启动相应的线程 本文中的客户端为 MFC 对话框程序实现的, 操作方便, 故采取客户端选择模式后发送模式标识串, 服务端等到客户端连接时, 先收模式标识, 然后判断该启动些什么线程 如果 7

10 是接收模式, 只需开启 sock_deal 线程 ; 如果是控制模式, 则多开启 sock_deal_ctrl 线程 ; 如 果是其他模式, 则客户端无效, 不开启线程 处理完客户端连接后继续等待客户端连接 其流程图如下 : 图 4-2 wait_for_connect 线程流程图 wait_for_connect 实现多线程的关键代码如下 : while(1) memset(mod,0,60); if((clientfd = accept(servfd, (struct sockaddr *)&client_sockaddr, (socklen_t *)&sin_size)) == -1) // 阻塞地等待客户端连接 if(errno == EINTR) // 多客户端后可能会出现这种错误, 应屏蔽掉 continue; perror("accept"); // 其他错误则退出线程 pthread_exit(null); else recvlen = recv(clientfd, mod, 60, 0); // 接收客户端模式的标识 if(-1 == recvlen)// 如果接收出错, 那么可能客户端退出, 应继续等待下一个连接 continue; else if(0 == recvlen)// 如果收到的数据长度为 0, 说明客户端此时异常 break; else if(0 == strcmp(mod,"ctrlmod")) // 控制模式, pthread_create(&conn_th, NULL, sock_deal_ctrl, &clientfd); 8

11 pthread_create(&conn_th, NULL, sock_deal, &clientfd); else if(0 == strcmp(mod,"recvmod")) // 接收模式 pthread_create(&conn_th, NULL, sock_deal, &clientfd); Else // 其他未知模式, 退出程序 printf("unknown client type, server quit\n"); exit(1); sock_count++; // 成功处理一个客户端连接时, 客户端计数应加 serial 线程 serial 线程使用 cssl 库, 负责打开串口, 设置串口回调函数, 等待串口事件 由于对很对数据结构和读写操作进行封装, 使用 cssl 库进行串口编程并没有像以往 Linux 下的串口编程那么麻烦, 只需简单设置即可, 其用法如下 : 1. 串口回调函数的声明, 这是由串口事件触发自动运行的 2. cssl_start(), 启用 cssl 库 3. cssl_open(), 打开一个串口, 设置回调函数等 4. 串口的读写操作 其中, 若要重新设置串口参数, 可调用 cssl_setup 函数来进行设置 在进行串口写操作时, 可在写函数之后加 cssl_drain 函数, 等待数据全部送出, 防止过快的调用写函数, 造成数据丢失 由于串口驱动模式为事件驱动, 回调函数的调用不像普通函数那样需要显式调用, 它由事件触发, 即串口收到数据后会自动调用回调函数 本文中的服务器要实现串口 /Socket 端口互相转换, 那么 serial 线程就不只是等待串口数据, 也等待 Socket 的控制命令 这里采用线程同步函数对 serila 线程进行阻塞, 等待 Socket 的控制命令, 同时也等待串口接收到数据触发回调函数 流程图如下 : 图 4-3 serial 线程流程图 9

12 serial 线程实现阻塞等待命令及串口事件的关键代码 : while(1) pthread_mutex_lock(&mm); pthread_cond_wait(&cc, &mm); // 每次循环都阻塞在此, 由 Socket 接收到命令数据后解除阻塞 cssl_putdata(ser,recvdat+1,recvdat[0]); //Socket 收到命令数据, 由串口转发 cssl_drain(ser); pthread_mutex_unlock(&mm); 串口回调函数串口回调函数负责将串口缓冲区的数据提取转存至数据缓冲区, 供客户端线程读取 客户端采取等待条件变量的方式阻塞地等待新数据, 回调函数在更新完缓冲区后, 解除客户端线程对特定条件变量的阻塞, 这样,Socket 每次发送的数据都是新的 由于是 4 块缓冲区, 回调函数每写一次, 下次写的位置就后移一个, 顺序循环地写入 4 块缓冲区, 当当前写入的缓冲区正在读, 说明其他缓冲区也已经写入过数据但还未被读取, 则稍做延时等待数据读取完 其流程图如下 : 图 4-4 串口回调函数流程图串口回调函数关键代码如下 : int cur=b.cw; // 取得上次改写的写入位置, 为这次的写入位置 while(b.lock[cur]!=0) usleep(1000);// 如果当前要写的位置有线程正在读, 则等待 1 毫秒 10

13 pthread_mutex_lock(&b.m_lock); // 缓冲区可写, 取得写锁 if(buf[0]==0x7e && buf[length-1]==0x7e) // 数据包是否完整 b.data[cur][0]=length; // 转存串口数据, 缓冲区第一个字符为串口数据长度 int i; for(i=0;i<length;i++) b.data[cur][i+1]=buf[i]; b.cw=(b.cw+1)%bufnum; // 位置后移, pthread_cond_broadcast(&c); // 发送通知, 解除客户端线程对读取缓冲区的阻塞 pthread_mutex_unlock(&b.m_lock); // 释放写锁 sock_deal 线程 sock_deal 线程有 wait_for_connect 线程开启, 每个客户端对应一个 sock_deal 线程 sock_deal 线程负责将新的数据发送给对应客户端 sock_deal 线程将自己设置成分离后阻塞至互斥锁可获取, 得到互斥锁后等待条件变量以判断缓冲区的数据是否有更新, 如果条件变量被解除了, 则说明数据有更新, 则重新获取互斥锁并发送给自己的客户端, 如果发送失败 ( 实际发送的长度和数据本身的长度不合 ) 则说明客户端退出, 则释放互斥锁, 退出线程, 资源被自动回收 如果发送成功, 则释放互斥锁, 继续等待缓冲区更新 由于采用 4 块缓冲区, 读取位置也是一块一块往后移, 因此如果要读的缓冲区如果正在写, 那么则等待写完后再读取 其流程图如下 : 图 4-5 sock_deal 线程流程图 sock_deal 线程读取缓冲区并发送的关键代码 : void *sock_deal(void *arg) int *id = (int *)arg; // 取得客户端标识 11

14 int sock; sock = *id; int cread=(b.cw-1+bufbun)%bufnum; // 初始化读取位置为写入位置的前一个 printf("sock_deal: dealing with new clienct which was connected, id = %d\n",sock); if(pthread_detach(pthread_self())) // 设置线程分离 return NULL; for(;;) pthread_mutex_lock(&m); while(b.cw==cread) usleep(1000); // 如果缓冲区正在写, 则等待 pthread_cond_wait(&c, &m); b.lock[cread]++; // 读取标识加 1, 非 0 说明有线程正在读取该缓冲区 if((b.data[cread][0]+1)!= send(sock,b.data[cread],b.data[cread][0]+1,0)) printf("send error\n"); // 如果发送的实际长度和要求的不一样, 说明客户端异常退出, 则客户端数目减 1, 退出线程 sock_count--; break; b.lock[cread]--; // 读取结束, 读取标识减 1 cread=(cread+1)%bufnum; // 读取位置后移 pthread_mutex_unlock(&m); b.lock[cread]--; 客户端异常退出时的处理, if(b.lock[cread]==0) cread=(cread+1)%bufnum; pthread_mutex_unlock(&m); return NULL; sock_deal_ctrl 线程 sock_deal_ctrl 线程也由 wait_for_connect 线程创建, 在客户端模式选择控制模式时, 服务端为其开启 sock_deal_ctrl 线程和 sock_deal 线程, sock_deal_ctrl 线程将自己设置成分离后, 阻塞在接收数据, 接收到数据后, 判断接收是否成功 若不成功, 则继续接收 若接收到的数据长度为 0, 说明是客户端异常退出, 则退出线程 接收成功时判断接收的数据是否是客户端退出消息, 是则退出线程, 否则将接收到的数据传到命令的缓冲区, 然后解除 serial 的阻塞, 继续接收数据 其流程图如下 : 12

15 图 4-6 sock_deal_ctrl 线程流程图 sock_deal_ctrl 线程关键代码 : void *sock_deal_ctrl(void *arg) int *id = (int *)arg; // 取得客户端标识 int sock,recvlen; unsigned char buf[60]=0; sock = *id; printf("sock_deal_ctrl: dealing with new clienct which was connected, id = %d\n",sock); if(pthread_detach(pthread_self())) // 设置线程分离 return NULL; while(1) recvlen = recv(sock, buf, 60, 0); // 读取数据 if(-1 == recvlen) // 如果读取出错则做相应处理 continue; else if(0 == recvlen) break; else // 收到数据 if(0 == strcmp(buf,"client quit")) // 客户端退出标识, 则退出线程 printf("ctrlmod thread quit"); return NULL; pthread_mutex_lock(&mm); // 否则转存数据, 通知串口线程以转发数 13

16 据 memcpy(recvdat,buf,60); pthread_cond_broadcast(&cc); pthread_mutex_unlock(&mm); return NULL; 5 客户端 5.1 客户端思路客户端是同服务端配套的, 服务端实现串口数据向 Socket 端口的转发, 客户端要能接收到转发的数据 服务端要实现 Socket 端口向串口转发数据控制节点行为, 客户端要能发送正确控制命令 客户端分为两种模式 : 接收模式和控制模式 为方便以后的扩展, 客户端还可以选择将数据存储到数据库中 利用 MFC 编程, 很容易实现这些操作 设计对话框程序, 连接时设置服务器地址, 端口号, 选择客户端类型, 是否写数据库, 写入的数据库类型 连接成功后,Socket 接收到数据后解析提取出节点号 父节点号和温度信息, 用列表显示出来 客户端通过可视化界面, 实现对节点发送命令控制节点 程序根据用户的选择, 自动生成命令数据并计算校验, 发送给服务端, 由服务端转发 客户端使用接收线程接收数据, 接收到数据后发送更新消息, 由更新消息处理函数负责更新列表 存储数据等 5.2 客户端实现 客户端主界面 客户端主界面包括一个菜单 一个节点设置按钮 一个列表 菜单包括退出 连接设置和断开连接, 节点设置按钮只在客户端为控制模式时才可用 界面如下所示 : 14

17 图 5-1 客户端主界面 连接设置界面连接设置界面包含服务器地址 端口号 客户端模式 启用数据库和数据库选择设置, 数据库选择只在启用数据库时才可供选择, 提供 ACCESS 和 SQL SERVER 两种数据库 具体界面如下 : 图 5-2 连接设置界面 节点设置界面 节点设置界面提供 4 种可用设置以及目标节点号输入, 选择相应设置后自动显示相应设置的详细设置选项 界面如下 : 15

18 设置灯状态 : 图 5-3 节点设置界面 设置节点号 : 图 5-4 设置灯状态界面 设置数据上传速率 图 5-5 设置节点号界面 16

19 设置无线发送功率 图 5-6 设置数据上传速率界面 图 5-7 设置无线发射功率界面 连接代码连接代码在连接设置返回 IDOK 后运行, 获取相关参数, 建立 Socket, 连接服务器, 启动接收线程, 使能相关控件, 决定是否连接数据库 部分代码如下 : CSetConn setdlg; // 连接设置对话框 if (setdlg.domodal()==idok) // 设置对话框确定后返回 IDOK m_enabledb=setdlg.m_enabledb; // 获取启用数据库参数 db=setdlg.setdb; CMenu *DlgMenu=GetMenu(); DlgMenu->EnableMenuItem(ID_MENU_CLOSECON,MF_ENABLED); // 使能断开连接命令 m_hsocket = socket(af_inet,sock_stream,0); // 创建 Socket if (m_hsocket == INVALID_SOCKET) AfxMessageBox("socket error"); return; 17

20 SocketFuncSuc = TRUE; m_addr.sin_addr.s_addr=inet_addr(setdlg.m_servaddr); m_addr.sin_family=af_inet; m_addr.sin_port=htons(atoi(setdlg.m_servport)); int ret; ret = connect(m_hsocket,(lpsockaddr)&m_addr,sizeof(m_addr)); // 连接服务器 if (SOCKET_ERROR == ret) AfxMessageBox("connect error"); closesocket(m_hsocket); SocketFuncSuc=FALSE; return; m_info.setwindowtext(" 服务器已连接 "); // 设置提示信息 rthread = AfxBeginThread(RecvThread, (LPVOID)&m_hSocket); // 启动接收线程 CButton *pbtn=(cbutton*)getdlgitem(idc_set_node); // 选择设置使能节点设置按钮 int mod=setdlg.setmod; switch (mod) case 1: pbtn->enablewindow(true); send(m_hsocket,"ctrlmod",strlen("ctrlmod"),0); break; // 控制模式 case 2: //AfxMessageBox("fff"); send(m_hsocket,"recvmod",strlen("recvmod"),0); break; // 接收模式 DlgMenu->EnableMenuItem(ID_MENU_SETCON,MF_DISABLED MF_GRAYED); if (m_enabledb) // 选择是否启用数据库, 启用那种数据库 switch (db) case 1: //access ADOConn(1); break; case 2: //sql server ADOConn(2); break; default: //none break; 18

21 5.2.5 接收线程代码接收线程阻塞地等待 Socket 数据, 收到数据后解析提取并发送更新消息, 接着继续等待数据 部分代码如下 : UINT RecvThread(LPVOID pparam) SOCKET *s; // 传递客户端标识符参数 s=(socket *)pparam; SOCKET sockfd=(*s); char buf[60]=0; // 接收缓冲区 unsigned char tmp[60]=0; // 缓存解析后的数据 int i,j; byte res[6]; // 最终提取的数据 int recvlen; while (1) recvlen=recv(sockfd, buf, 60, 0); // 阻塞在此, 等待 Socket 数据 if(-1 == recvlen) //printf("recv error\n"); else if (0 == recvlen) // 服务器异常后的处理, 防止客户端因服务器异常而异常 ::SendMessage((AfxGetMainWnd())->m_hWnd,SERVER_ERROR_QUIT,(WPARAM)0,(LP ARAM)0); break; else // 正常接收, 做解析 提取数据 j=0; for(i=1;i<=(unsigned char)buf[0];i++) if(((unsigned char)buf[i])==0x7d) if(((unsigned char)buf[i+1])==0x5d) tmp[j]=0x7d; if(((unsigned char)buf[i+1])==0x5e) tmp[j]=0x7e; 19

22 i++; else tmp[j]=(unsigned char)buf[i]; j++; res[0]=tmp[13]; res[1]=tmp[12]; res[2]=tmp[15]; res[3]=tmp[14]; res[4]=tmp[21]; res[5]=tmp[20]; ::SendMessage((AfxGetMainWnd())->m_hWnd,UPDATE_LIST_DATA,(WPARAM)res,(LP ARAM)0); // 发送数据更新消息 return 0; 更新消息处理代码 LONG CClient2Dlg::OnUpdateListData(WPARAM wparam, LPARAM lparam) int res[6]; // 传递新数据参数 byte *t=(byte *)wparam; int i; for (i=0;i<6;i++) res[i]=(int)t[i]; int listcount=m_nodeinfo.getitemcount(); // 更新列表 CString nodeid=inttocstr(res[0]*256+res[1]); CString parentid=inttocstr(res[2]*256+res[3]); CString tempr=inttocstr(res[4])+"."+inttocstr(res[5]); for (i=0;i<listcount;i++) if (nodeid==m_nodeinfo.getitemtext(i,0)) // 节点号相同, 不更改并判断父节点, 操作结束退出循环 if (parentid!=m_nodeinfo.getitemtext(i,1)) // 父节点号不同, 更改 m_nodeinfo.setitemtext(i,1,(lpctstr)parentid); if (tempr!=m_nodeinfo.getitemtext(i,2)) // 温度不等, 更新 20

23 m_nodeinfo.setitemtext(i,2,(lpctstr)tempr); break; if (i==listcount) // 如果列表中没有这个节点号, 则添加 m_nodeinfo.insertitem(listcount,(lpctstr)nodeid); m_nodeinfo.setitemtext(listcount,1,(lpctstr)parentid); m_nodeinfo.setitemtext(listcount,2,(lpctstr)tempr); CTime time; // 获取当前时间 time=ctime::getcurrenttime(); CString ti; ti=time.format("%y-%m-%d %H:%M:%S"); if (m_enabledb) // 如果启用数据库, 则生成 sql 语句并写入数据库 CString sql; sql.format("insert into wsn(node,fnode,tep,savetime) values("); sql+=nodeid+","+parentid+","+tempr+",'"+ti+"');"; m_pconnection->execute((_bstr_t)sql,null,adcmdtext); return 0; 节点设置处理代码节点设置对话框返回后, 提取相应的设置信息, 生成相应的命令并发送, 节点路径由列表得出 void CClient2Dlg::OnSetNode() // TODO: Add your control notification handler code here CSetNode dlg; if (dlg.domodal()==idok) if (dlg.finalorder=="") // 如果没选择设置内容, 则不处理, 弹出提示并返回 AfxMessageBox("empty order"); return; if (0==m_NodeInfo.GetItemCount()) // 如果列表为空, 则弹出提示并返回 AfxMessageBox("no data in the list"); return; 21

24 ////////////////////////////////////////////////////////////////////////// // 查找路径 BOOL found=false; int listcount=m_nodeinfo.getitemcount(); CString path=numtohex(dlg.nodeid); CString currentid=dlg.nodeid; int i; while (!found) for (i=0;i<listcount;i++) if (currentid==m_nodeinfo.getitemtext(i,0)) // 如果在节点号栏找到当前节点, 则追溯其父节点, 用其父节点号继续查找 currentid=m_nodeinfo.getitemtext(i,1); // 此轮查找结束 break; if (i!=listcount) // 判断当前查找的是否是 126( 根节点的父节点, 为串口数据接收方 ), 是则表明已找到路径, 否则添加路径 if (currentid=="126") break; path+=numtohex(currentid); else found=true; // 查找结束 path.makereverse(); // 路径方向应反向, 查找时是从目标节点到根节点, 而命令数据中要求是从根节点到目标节点 TCHAR ttt; int tmplen=path.getlength(); for (i=0;i<tmplen;i+=2) ttt=path.getat(i); path.setat(i,path.getat(i+1)); path.setat(i+1,ttt); //// 构造命令数据 CString desnode=reverse(numtohex(dlg.nodeid)); seqno++; 22

25 CString SeqNo=reverse(NumToHex(IntToCStr(seqno))); CString lengt=""; lengt.format("%02x",(seqno.getlength()+desnode.getlength()+path.getlength()+(dlg.fi nalorder).getlength())/2); //AfxMessageBox(lengt); ////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////// CString SendData=" FFFF "+SeqNo+desnode+path+dlg.FinalOrder;// A A FF 00 "; SendData.Insert(2,lengt); char str[]="00"; byte *dat; byte high; byte low; int len; unsigned short cc; CString tmpstr=senddata; tmpstr.makeupper(); int pos; pos=0; len=tmpstr.getlength()/2; // 计算 CRC 校验码 dat=(byte *)malloc((len)*sizeof(byte)); for (i=0;i<len;i++) str[0]=tmpstr.getat(i*2); str[1]=tmpstr.getat(i*2+1); dat[i]=cha(str); cc=calc(dat,0,len); low=(byte)(cc&0x00ff); high=(byte)((cc>>8)&0x00ff); tmpstr+=con(low)+con(high); pos=0; while (1) //7D 和 7E 的转义处理 pos=tmpstr.find("7d",pos); if (pos<0) break; else tmpstr.insert(pos+1,"d5"); 23

26 pos++; pos=0; while (1) pos=tmpstr.find("7e",0); if (pos<0) break; tmpstr.insert(pos+1,"d5"); m_res="7e"+tmpstr+"7e"; // 生成命令数据串 free(dat); int finallength=m_res.getlength(); // 将命令数据串转成对应的最终命令数据 byte *resdat; resdat=(byte *)malloc(((finallength/2)+1)*sizeof(byte)); char *datstr=(char *)malloc(3*sizeof(char)); datstr[2]='\0'; resdat[0]=finallength/2; for(i=0;i<finallength;i+=2) datstr[0]=m_res.getat(i); datstr[1]=m_res.getat(i+1); resdat[(i/2)+1]=cha(datstr); if (SocketFuncSuc) // 发送命令数据 send(m_hsocket,(char *)resdat,resdat[0]+1,0); 6 服务端移植 6.1 嵌入式 Linux Linux 简介简单地说,Linux 是指一套免费使用和自由传播的类 UNIX 操作系统 人们通常所说的 Linux 是指 Linus Torvalds 所写的 Linux 操作系统内核 Linus 从一开始就决定自由传播 Linux, 他把源代码发布到网上, 于是众多的爱好者和程序员也都通过互联网加入到 Linux 的内核开发工作中 这个思想与 FSF(Free Software Foundation) 资助发起的 GNU(GNU's Not UNIX) 的自由软件精神不谋而合 GNU 是为了推广自由软件的精神以实现一个自由的操作系统, 然后从应用程序开始, 24

27 实现其内核 而当时 Linux 的优良性能备受 GNU 的赏识, 于是 GNU 就决定采用 Linus 及其开发者的内核 在他们的共同努力下,Linux 这个完整的操作系统诞生了 其中的程序开发共同遵守 General Public License(GPL) 协议, 这是最开放也是最严格的许可协议方式, 这个协议规定了源码必须可以无偿的获取并且修改 因此, 从严格意义上说,Linux 应该叫做 GNU/Linux, 其中许多重要的工具如 gcc gdb make Emacs 等都是 GNU 贡献 这个 婴儿版 的操作系统以平均两星期更新一次的速度迅速成长, 如今的 Linux 已经有超过 250 种发行版本, 且可以支持所有体系结构的处理器, 如 x86 PowerPC ARM xscale 等, 也可以支持带 MMU 或不带 MMU 的处理器 到目前为止, 它的内核版本也已经从原先的 发展到现在的 2.6.xx 嵌入式 Linux 特点从 Linux 系统的发展过程可以看出,Linux 从最开始就是一个开放的系统, 并且它始终遵循着源代码开放的原则, 它是一个成熟而稳定的网络操作系统, 作为嵌入式操作系统有如下优势 1. 低成本开发系统 2. 可应用于多种硬件平台 3. 可定制内核 4. 性能优异 5. 良好的网络支持 6.2 服务端移植至 liod270 开发平台 Liod270 教学开发平台基于 Intel XSCALE 架构最新的 PXA270 嵌入式微处理器 最高主频可达 520MHz, 可运行 Linux 和 Linux 的 Linux 的操作系统, 支持 Tiny-X QT/E 等 GUI 嵌入式图形用户界面, 提供完整的驱动和应用程序 同时还可以支持最新的 Windows CE 5.0.NET 操作系统 为学校教学提供了广泛的选择空间 由于 cssl 库不是标准库, 开发平台并未有移植好的动态库供调用, 而且服务端代码中对 cssl 库函数比较有限, 有 3 种移植方案, 一是只整合有用的代码并交叉编译, 二是分别将库源文件和服务端源文件交叉编译后再连接生成可执行文件, 三是交叉编译生成库, 复制到开发平台文件系统的特定目录下, 再直接交叉编译服务端源文件 本文选择第二种方案并编写 Makefile, 如下 : CC=arm-linux-gcc server:newserver2.c cssl.o $(CC) -o server newserver2.c cssl.o -lpthread cssl.o:cssl.c cssl.h $(CC) -Wall -D_GNU_SOURCE -g -O -c cssl.c clean: rm -f *.o server 相关源文件经 make 后生成可执行文件 server, 将 server 用 ftp 方式下载到开发平台上, 开发平台选用红外串口与 EmBee 根节点连接 7 测试结果 25

28 7.1 测试环境服务端运行在嵌入式 Linux 平台下, 这里选用 liod270 开发平台, 客户端运行在 windows 平台下, 客户端平台需要提供 ACCESS 和 SQL Server 2000 数据库驱动, 将 liod270 开发平台与 PC 用交叉网线连接,liod 开发平台与传感器网络根节点之间用串口线连接,liod 开发平台使用红外串口与节点相连 7.2 测试结果 用 putty 等远程登录终端 telnet 登录到开发平台, 运行程序, 如下 : 图 7-1 运行程序 打开客户端, 连接服务器, 服务器地址 , 端口号 20000, 接收模式, 不启 用数据库 启动节点采集温度, 可以从客户端界面看到每个节点采集到的温度 再打开一个客户端, 模式选择控制模式 图 7-2 不启用写入数据库的接收模式 26

29 设置 65 号节点的灯状态, 图 7-3 不启用写入数据库的控制模式 节点上的结果 图 7-4 设置 65 号节点的灯状态 27

30 再打开一个客户端, 选择写入数据库 图 号节点的状态 一段时间后查看数据库内容如下 图 7-6 启用数据库的连接设置 图 7-7 数据库部分内容 28

31 8 总结 本文是基于 EmBee 模块数据转发的需要, 研究串口数据和 Socket 数据之间的转换, 使得原本只能通过串口线连接的通信, 变为可以使用 IP 进行远程连接, 使得 EmBee 模块的数据可以被远程接收 去掉其中与 EmBee 模块数据格式 通信协议等部分, 又不失一般性, 也可根据具体需要修改程序, 从而应用于其他工业应用 但本文设计也有些不足的地方, 比如线程同步方式可能不是最优, 影响性能等 参考文献 [1] 乔晓丹, 张鹏. 一个基于 Linux 操作系统的嵌入式网关的实现 [J]. 微计算机信息 ( 嵌入式与 SOC),2005,21(7-2):26-28 [2] 孙琼. 嵌入式 Linux 应用程序开发详解 [M]. 北京 : 人民邮电出版社, [3] 孙利民, 李建中, 陈渝, 朱红松. 无线传感器网络 [M]. 北京 : 清华大学出版社, [4] [ 美 ]W.Richard Stevens 著, 施振川等译.UNIX 网络编程 ( 第 1 卷 )[M]. 北京 : 清华大学出版社, [5] [ 美 ]Kay A Robbins 等著, 陈涓等译.UNIX 系统编程 [M]. 北京 : 机械工业出版社,

32 The design of serial and socket port forwarding program based on Embedded Linux Zheng Yuan Advisor:Zhang Mei-ping Major in Electronic Information Science and Technology College of Mathematics and Computer Science [Abstract] In the devices of traditional industrial control and data acquisition, the use of the most is serial port communication which is in line with RS232 standard. The use of serial port communication has many conveniences which many other methods do not have, just like low facility cost, convenient of designed and installed. However, serial port communication also has some shortcomings, such as short transmission distance, control equipment must be with the serial side and control can not be done anytime, anywhere. This paper based on the wireless sensor networks EmBee, in view of these problems, designs a conversion routine which accomplish the conversion of serial pot data and socket data, achieves using Internet receives the data, the transmission control command anytime and anywhere and so on. Transplanting the procedure to Embedded Linux can reduce the cost of practical application. [Key words] Linux; Serial Port; Socket; Wireless Sensor Network 30

Chapter #

Chapter # 第三章 TCP/IP 协议栈 本章目标 通过本章的学习, 您应该掌握以下内容 : 掌握 TCP/IP 分层模型 掌握 IP 协议原理 理解 OSI 和 TCP/IP 模型的区别和联系 TCP/IP 介绍 主机 主机 Internet TCP/IP 早期的协议族 全球范围 TCP/IP 协议栈 7 6 5 4 3 应用层表示层会话层传输层网络层 应用层 主机到主机层 Internet 层 2 1 数据链路层

More information

华恒家庭网关方案

华恒家庭网关方案 LINUX V1.5 1 2 1 2 LINUX WINDOWS PC VC LINUX WINDOWS LINUX 90% GUI LINUX C 3 REDHAT 9 LINUX PC TFTP/NFS http://www.hhcn.com/chinese/embedlinux-res.html minicom NFS mount C HHARM9-EDU 1 LINUX HHARM9-EDU

More information

CC213

CC213 : (Ken-Yi Lee), E-mail: feis.tw@gmail.com 49 [P.51] C/C++ [P.52] [P.53] [P.55] (int) [P.57] (float/double) [P.58] printf scanf [P.59] [P.61] ( / ) [P.62] (char) [P.65] : +-*/% [P.67] : = [P.68] : ,

More information

概述

概述 OPC Version 1.6 build 0910 KOSRDK Knight OPC Server Rapid Development Toolkits Knight Workgroup, eehoo Technology 2002-9 OPC 1...4 2 API...5 2.1...5 2.2...5 2.2.1 KOS_Init...5 2.2.2 KOS_InitB...5 2.2.3

More information

C/C++ - 文件IO

C/C++ - 文件IO C/C++ IO Table of contents 1. 2. 3. 4. 1 C ASCII ASCII ASCII 2 10000 00100111 00010000 31H, 30H, 30H, 30H, 30H 1, 0, 0, 0, 0 ASCII 3 4 5 UNIX ANSI C 5 FILE FILE 6 stdio.h typedef struct { int level ;

More information

IP TCP/IP PC OS µclinux MPEG4 Blackfin DSP MPEG4 IP UDP Winsock I/O DirectShow Filter DirectShow MPEG4 µclinux TCP/IP IP COM, DirectShow I

IP TCP/IP PC OS µclinux MPEG4 Blackfin DSP MPEG4 IP UDP Winsock I/O DirectShow Filter DirectShow MPEG4 µclinux TCP/IP IP COM, DirectShow I 2004 5 IP TCP/IP PC OS µclinux MPEG4 Blackfin DSP MPEG4 IP UDP Winsock I/O DirectShow Filter DirectShow MPEG4 µclinux TCP/IP IP COM, DirectShow I Abstract The techniques of digital video processing, transferring

More information

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

本实验需要用到两个特征值, 两个特征值的属性各不相同, 我们同样在 SimpleGATTProfile 中新建即可, 接下来就开始吧 新建特征值表 : 表 3.3 串口透传特征值属性 长度 属性 UUID 功能 (byte) SIMPLEPROFILE_CHA R6 15 可读可写 FFF6 服务器 串口透传 前言 : 有了上面的基础, 接下来就可以打造无线串口功能了 实现平台 :WeBee CC2540 模块及功能底板 图 3.117 网蜂 CC2540 模块及功能底板实验现象 : 两台 PC 通过串口连接 CC2540, 通过设置好串口调试助手, 就可以相互收发信息 也可在一台 PC 利用两个串口实现这个功能 实验讲解 : 整个实验用到两个模块, 一个作为服务器 一个作为客户端, 重点为下面两个方向

More information

Contents Viewpoint Application Story 05 News & Events 06 Technology Forum Customer Partnership Cover Story Advisory Board Inside Advantech Beautiful L

Contents Viewpoint Application Story 05 News & Events 06 Technology Forum Customer Partnership Cover Story Advisory Board Inside Advantech Beautiful L Summer 2016 No.35 IoT Your Gateway to lot Contents Viewpoint Application Story 05 News & Events 06 Technology Forum Customer Partnership Cover Story Advisory Board Inside Advantech Beautiful Life Joyful

More information

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

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 51 C 51 51 C C C C C C * 2003-3-30 pnzwzw@163.com C C C C KEIL uvision2 MCS51 PLM C VC++ 51 KEIL51 KEIL51 KEIL51 KEIL 2K DEMO C KEIL KEIL51 P 1 1 1 1-1 - 1 Project New Project 1 2 Windows 1 3 N C test

More information

Microsoft Word - 正文.doc

Microsoft Word - 正文.doc 1 2 1 2 3 4 5 6 7 8 9 10 3 1 150 2 150 1 1 1.1 1.1.1 1.2 1.2.1 1.2.2 1.2.3 1.3 1.3.1 1.3.2 1.4 1.4.1 CPU 1.4.2 I/O 1.4.3 I/O 1.5 1.5.1 CISC RISC 1.5.2 1.5.3 1.6 1.6.1 1.6.2 N 1.6.3 2 2.1 2.1.1 2.1.2 2.1.3

More information

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++;

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++; Memory & Pointer trio@seu.edu.cn 2.1 2.1.1 1 int *p int a 0x00C7 0x00C7 0x00C7 2.1.2 2 int I[2], *pi = &I[0]; pi++; char C[2], *pc = &C[0]; pc++; float F[2], *pf = &F[0]; pf++; 2.1.3 1. 2. 3. 3 int A,

More information

宏电文档

宏电文档 GPRS DDN 〇〇 1. GPRS (General Packet Radio Service) GSM GSM GPRS GSM TDMA (BSS) GPRS GPRS GPRS DDN GSM/GPRS SMS CSD USSD GPRS (DTU) (Machine To Machine M2M) GPRS DDN H7112 GPRS DTU (Tel): +86-755-83890580

More information

FY.DOC

FY.DOC 高 职 高 专 21 世 纪 规 划 教 材 C++ 程 序 设 计 邓 振 杰 主 编 贾 振 华 孟 庆 敏 副 主 编 人 民 邮 电 出 版 社 内 容 提 要 本 书 系 统 地 介 绍 C++ 语 言 的 基 本 概 念 基 本 语 法 和 编 程 方 法, 深 入 浅 出 地 讲 述 C++ 语 言 面 向 对 象 的 重 要 特 征 : 类 和 对 象 抽 象 封 装 继 承 等 主

More information

(HMI) IO A

(HMI) IO A 6.5 6.5 (HMI) IO 6.52 6.52 6.5 2007 113 A 602 100086 010 82616619 010 62638166 www.kingview.com 4 7 25 38 43 52 63 68 86 SQL 95 99 WEB 105 Web Web Web I/O Microsoft Windows XP/NT/2000 I/O PLC PLC PLC PLC

More information

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

51 C 51 isp 10   C   PCB C C C C KEIL http://wwwispdowncom 51 C " + + " 51 AT89S51 In-System-Programming ISP 10 io 244 CPLD ATMEL PIC CPLD/FPGA ARM9 ISP http://wwwispdowncom/showoneproductasp?productid=15 51 C C C C C ispdown http://wwwispdowncom

More information

untitled

untitled 1 Outline 數 料 數 數 列 亂數 練 數 數 數 來 數 數 來 數 料 利 料 來 數 A-Z a-z _ () 不 數 0-9 數 不 數 SCHOOL School school 數 讀 school_name schoolname 易 不 C# my name 7_eleven B&Q new C# (1) public protected private params override

More information

27 :OPC 45 [4] (Automation Interface Standard), (Costom Interface Standard), OPC 2,,, VB Delphi OPC, OPC C++, OPC OPC OPC, [1] 1 OPC 1.1 OPC OPC(OLE f

27 :OPC 45 [4] (Automation Interface Standard), (Costom Interface Standard), OPC 2,,, VB Delphi OPC, OPC C++, OPC OPC OPC, [1] 1 OPC 1.1 OPC OPC(OLE f 27 1 Vol.27 No.1 CEMENTED CARBIDE 2010 2 Feb.2010!"!!!!"!!!!"!" doi:10.3969/j.issn.1003-7292.2010.01.011 OPC 1 1 2 1 (1., 412008; 2., 518052), OPC, WinCC VB,,, OPC ; ;VB ;WinCC Application of OPC Technology

More information

Slide 1

Slide 1 网络编程入门篇 利用 socket 实现 TCP 服务器 目录 基础知识 具体示例 示例代码讲解 基础知识 基础知识 socket 编程一般采用客户端 - 服务器模式 ( 即由客户进程向服务器进程发出请求, 服务器进程执行请求的任务并将执行结果返回给客户进程的模式 ) 今天我们要讲的就是如何利用 socket 编程实现基于 TCP 协议通信的服务器 首先我们先向大家展示 socket 编程的流程,

More information

Microsoft Word - 实用案例.doc

Microsoft Word - 实用案例.doc 计 算 机 系 统 应 用 2009 年 第 12 期 嵌 入 式 Linux 下 温 湿 度 传 感 器 的 设 计 与 实 现 1 Design and Implementation of Temperature and Humidity Sensor Based on Embedded Linux 陈 博 刘 锦 高 ( 华 东 师 范 大 学 电 子 科 学 技 术 系 上 海 200241)

More information

计算机网络实验说明

计算机网络实验说明 计算机网络实验说明 龚旭东 电三楼 420 lzgxd@mailustceducn 2011 年 11 月 1 日 龚旭东 (TA) 计算机网络实验说明 2011 年 11 月 1 日 1 / 20 Outline 1 实验系统介绍 实验环境实验流程 2 实验内容编程实验交互实验观察实验 3 一些控制台命令 4 实验报告说明 龚旭东 (TA) 计算机网络实验说明 2011 年 11 月 1 日 2

More information

ebook140-8

ebook140-8 8 Microsoft VPN Windows NT 4 V P N Windows 98 Client 7 Vintage Air V P N 7 Wi n d o w s NT V P N 7 VPN ( ) 7 Novell NetWare VPN 8.1 PPTP NT4 VPN Q 154091 M i c r o s o f t Windows NT RAS [ ] Windows NT4

More information

新版 明解C++入門編

新版 明解C++入門編 511!... 43, 85!=... 42 "... 118 " "... 337 " "... 8, 290 #... 71 #... 413 #define... 128, 236, 413 #endif... 412 #ifndef... 412 #if... 412 #include... 6, 337 #undef... 413 %... 23, 27 %=... 97 &... 243,

More information

Simulator By SunLingxi 2003

Simulator By SunLingxi 2003 Simulator By SunLingxi sunlingxi@sina.com 2003 windows 2000 Tornado ping ping 1. Tornado Full Simulator...3 2....3 3. ping...6 4. Tornado Simulator BSP...6 5. VxWorks simpc...7 6. simulator...7 7. simulator

More information

四川省普通高等学校

四川省普通高等学校 四 川 省 普 通 高 等 学 校 计 算 机 应 用 知 识 和 能 力 等 级 考 试 考 试 大 纲 (2013 年 试 行 版 ) 四 川 省 教 育 厅 计 算 机 等 级 考 试 中 心 2013 年 1 月 目 录 一 级 考 试 大 纲 1 二 级 考 试 大 纲 6 程 序 设 计 公 共 基 础 知 识 6 BASIC 语 言 程 序 设 计 (Visual Basic) 9

More information

F4

F4 DOI:10.3969/j.issn.1009-6868.2016.01.002 网 络 出 版 地 址 :http://www.cnki.net/kcms/detail/34.1228.tn.20151117.1506.006.html Challenges and Countermeasures of Network Space Security 周 延 森 /ZHOU Yansen 周 琳 娜

More information

128 ( ) ( ) [ 1 ] [2] [3] (1) (2) (3) [1] [2] [3] 10 2 ( ) (1997.6) ( ) 64

128 ( ) ( ) [ 1 ] [2] [3] (1) (2) (3) [1] [2] [3] 10 2 ( ) (1997.6) ( ) 64 BIBLID 1026-5279 (2005) 94:2 p. 127-154 (2005.12) 127 Keywords Digital Library High School Library Library Website Open Source E-mail frank@hchs.hc.edu.tw 128 (2005.12) ( ) 6 0 68 [ 1 ] [2] [3] (1) (2)

More information

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

帝国CMS下在PHP文件中调用数据库类执行SQL语句实例 帝国 CMS 下在 PHP 文件中调用数据库类执行 SQL 语句实例 这篇文章主要介绍了帝国 CMS 下在 PHP 文件中调用数据库类执行 SQL 语句实例, 本文还详细介绍了帝国 CMS 数据库类中的一些常用方法, 需要的朋友可以参考下 例 1: 连接 MYSQL 数据库例子 (a.php)

More information

/ / (FC 3)...

/ / (FC 3)... Modbus/TCP 1.0 1999 3 29 Andy Swales Schneider aswales@modicon.com ... 2 1.... 3 2.... 3 2.1.. 3 2.2..4 2.3..4 2.4... 5 3.... 5 3.1 0... 5 3.2 1... 5 3.3 2... 6 3.4 / /... 7 4.... 7 5.... 8 5.1 0... 9

More information

六域链联盟 SDChain-Matrix 节点搭建指南 2018/07/26 Version : 1.0.0

六域链联盟 SDChain-Matrix 节点搭建指南 2018/07/26 Version : 1.0.0 SDChain-Matrix 节点搭建指南 目录 1 环境要求... 3 2 软件下载... 4 3 安装部署... 4 3.1 部署可执行程序目录... 4 3.2 部署配置文件目录... 4 3.3 部署数据库文件目录... 4 3.4 部署日志文件目录... 4 3.5 部署依赖库文件目录... 4 4 配置参数... 5 5 启动运行... 7 5.1 普通模式启动... 7 5.2 加载启动模式...

More information

Guava学习之Resources

Guava学习之Resources Resources 提供提供操作 classpath 路径下所有资源的方法 除非另有说明, 否则类中所有方法的参数都不能为 null 虽然有些方法的参数是 URL 类型的, 但是这些方法实现通常不是以 HTTP 完成的 ; 同时这些资源也非 classpath 路径下的 下面两个函数都是根据资源的名称得到其绝对路径, 从函数里面可以看出,Resources 类中的 getresource 函数都是基于

More information

ELECTRIC DRIVE FOR LOCOMOTIVES The Research and Development of Modern Railway Traction and Control Technology (CSR Zhuzhou Institute Co., Ltd., Zhuzhou, Hunan 412001, China) Abstract: The technology of

More information

AL-M200 Series

AL-M200 Series NPD4754-00 TC ( ) Windows 7 1. [Start ( )] [Control Panel ()] [Network and Internet ( )] 2. [Network and Sharing Center ( )] 3. [Change adapter settings ( )] 4. 3 Windows XP 1. [Start ( )] [Control Panel

More information

untitled

untitled LBS Research and Application of Location Information Management Technology in LBS TP319 10290 UDC LBS Research and Application of Location Information Management Technology in LBS , LBS PDA LBS

More information

C PICC C++ C++ C C #include<pic.h> C static volatile unsigned char 0x01; static volatile unsigned char 0x02; static volatile unsigned cha

C PICC C++ C++ C C #include<pic.h> C static volatile unsigned char 0x01; static volatile unsigned char 0x02; static volatile unsigned cha CYPOK CYPOK 1 UltraEdit Project-->Install Language Tool: Language Suite----->hi-tech picc Tool Name ---->PICC Compiler Executable ---->c:hi-picinpicc.exe ( Command-line Project-->New Project-->File Name--->myc

More information

6 C51 ANSI C Turbo C C51 Turbo C C51 C51 C51 C51 C51 C51 C51 C51 C C C51 C51 ANSI C MCS-51 C51 ANSI C C C51 bit Byte bit sbit

6 C51 ANSI C Turbo C C51 Turbo C C51 C51 C51 C51 C51 C51 C51 C51 C C C51 C51 ANSI C MCS-51 C51 ANSI C C C51 bit Byte bit sbit 6 C51 ANSI C Turbo C C51 Turbo C C51 C51 C51 C51 C51 C51 C51 C51 C51 6.1 C51 6.1.1 C51 C51 ANSI C MCS-51 C51 ANSI C C51 6.1 6.1 C51 bit Byte bit sbit 1 0 1 unsigned char 8 1 0 255 Signed char 8 11 128

More information

MASQUERADE # iptables -t nat -A POSTROUTING -s / o eth0 -j # sysctl net.ipv4.ip_forward=1 # iptables -P FORWARD DROP #

MASQUERADE # iptables -t nat -A POSTROUTING -s / o eth0 -j # sysctl net.ipv4.ip_forward=1 # iptables -P FORWARD DROP # iptables 默认安全规则脚本 一 #nat 路由器 ( 一 ) 允许路由 # iptables -A FORWARD -i eth0 -o eth1 -j ACCEPT ( 二 ) DNAT 与端口转发 1 启用 DNAT 转发 # iptables -t nat -A PREROUTING -p tcp -d 192.168.102.37 dprot 422 -j DNAT to-destination

More information

DVK530/531扩展板

DVK530/531扩展板 DVK720 扩展板 驱动移植手册 2014.04.03 V1.0 版权声明 本手册所有权由深圳市微雪电子有限公司独家持有 未经本公司的书 面许可, 不得以任何方式或形式进行修改 分发或复制本文档的任何 部分, 否则一切后果由违者自负 版本更新记录 版本日期说明 V1.0 2014.04.03 初始发布 深圳市微雪电子有限公司 www.waveshare.net I 目录 版权声明... I 版本更新记录...

More information

畢業專題結案報告書格式

畢業專題結案報告書格式 元 培 科 技 大 學 資 訊 工 程 系 專 題 期 末 報 告 使 用 Game maker 製 作 多 人 連 線 遊 戲 Making multiplayer games using game maker 姓 名 : 0981412016 周 宣 佑 0981412003 蔡 程 翔 0981412005 韋 梓 健 0981412015 沈 永 崑 0981412051 洪 仕 軒 指 導

More information

高 职 计 算 机 类 优 秀 教 材 书 目 * 序 号 书 号 (ISBN) 书 名 作 者 定 价 出 版 / 印 刷 日 期 ** 配 套 资 源 页 码 计 算 机 基 础 课 1 978-7-111-30658-0 计 算 机 应 用 基 础 刘 升 贵 29.00 2012 年 8 月

高 职 计 算 机 类 优 秀 教 材 书 目 * 序 号 书 号 (ISBN) 书 名 作 者 定 价 出 版 / 印 刷 日 期 ** 配 套 资 源 页 码 计 算 机 基 础 课 1 978-7-111-30658-0 计 算 机 应 用 基 础 刘 升 贵 29.00 2012 年 8 月 高 职 计 算 机 类 优 秀 教 材 书 目 * 序 号 书 号 (ISBN) 书 名 作 者 定 价 出 版 / 印 刷 日 期 ** 配 套 资 源 页 码 计 算 机 基 础 课 1 978-7-111-30658-0 计 算 机 应 用 基 础 刘 升 贵 29.00 2012 年 8 月 电 子 教 案 P1 2 978-7-111-27081-2 计 算 机 应 用 基 础 ( 第 2

More information

Microsoft Word - YDB 064-2011 Vehicle Telematics Service Requirement and General Framework

Microsoft Word - YDB 064-2011 Vehicle Telematics Service Requirement and General Framework 通 信 标 准 类 技 术 报 告 YDB XXX 2010 泛 在 物 联 应 用 汽 车 信 息 服 务 业 务 需 求 和 总 体 框 架 Vehicle Telematic Service Requirement and General Framework 200X XX XX 印 发 中 国 通 信 标 准 化 协 会 目 次 前 言... 错 误! 未 定 义 书 签 1 范 围...

More information

m 3 m m 84 m m m m m m m

m 3 m m 84 m m m m m m m 2011 8 8 155 JOURNAL OF RAILWAY ENGINEERING SOCIETY Aug 2011 NO. 8 Ser. 155 1006-2106 2011 08-0096 - 06 430063 1 2 3 U231 +. 4 A Design of Underground Space of Furong Square Station of Urban Rail Transit

More information

Mechanical Science and Technology for Aerospace Engineering October Vol No. 10 Web SaaS B /S Web2. 0 Web2. 0 TP315 A

Mechanical Science and Technology for Aerospace Engineering October Vol No. 10 Web SaaS B /S Web2. 0 Web2. 0 TP315 A 2012 10 31 10 Mechanical Science and Technology for Aerospace Engineering October Vol. 31 2012 No. 10 Web2. 0 400030 SaaS B /S Web2. 0 Web2. 0 TP315 A 1003-8728 2012 10-1638-06 Design and Implementation

More information

软 件 工 程 专 业 习 指 南 目 录 一 软 件 工 程 专 业 设 置 背 景 与 发 展 前 景... 3 二 软 件 工 程 专 业 实 践 教 条 件... 4 三 软 件 工 程 专 业 课 程 类 型 及 核 方 式... 6 1. 软 件 工 程 专 业 课 程 类 型...7

软 件 工 程 专 业 习 指 南 目 录 一 软 件 工 程 专 业 设 置 背 景 与 发 展 前 景... 3 二 软 件 工 程 专 业 实 践 教 条 件... 4 三 软 件 工 程 专 业 课 程 类 型 及 核 方 式... 6 1. 软 件 工 程 专 业 课 程 类 型...7 计 算 机 系 软 件 工 程 专 业 习 指 南 广 东 科 技 院 计 算 机 系 2015-9-1 软 件 工 程 专 业 习 指 南 目 录 一 软 件 工 程 专 业 设 置 背 景 与 发 展 前 景... 3 二 软 件 工 程 专 业 实 践 教 条 件... 4 三 软 件 工 程 专 业 课 程 类 型 及 核 方 式... 6 1. 软 件 工 程 专 业 课 程 类 型...7

More information

目录

目录 ALTERA_CPLD... 3 11SY_03091... 3 12SY_03091...4....5 21 5 22...8 23..10 24..12 25..13..17 3 1EPM7128SLC.......17 3 2EPM7032SLC.......18 33HT46R47......19..20 41..20 42. 43..26..27 5151DEMO I/O...27 52A/D89C51...28

More information

IP505SM_manual_cn.doc

IP505SM_manual_cn.doc IP505SM 1 Introduction 1...4...4...4...5 LAN...5...5...6...6...7 LED...7...7 2...9...9...9 3...11...11...12...12...12...14...18 LAN...19 DHCP...20...21 4 PC...22...22 Windows...22 TCP/IP -...22 TCP/IP

More information

营 销 策 划 岗 部 门 招 聘 职 位 招 聘 人 数 岗 位 职 责 基 本 要 求 岗 位 任 职 要 求 6 参 与 项 目 产 品 研 究 客 户 需 求 研 究 竞 争 环 境 研 究 价 格 研 究 等 项 目 市 场 研 究 ; 7 公 司 经 纪 业 务 的 品 牌 管 理, 对

营 销 策 划 岗 部 门 招 聘 职 位 招 聘 人 数 岗 位 职 责 基 本 要 求 岗 位 任 职 要 求 6 参 与 项 目 产 品 研 究 客 户 需 求 研 究 竞 争 环 境 研 究 价 格 研 究 等 项 目 市 场 研 究 ; 7 公 司 经 纪 业 务 的 品 牌 管 理, 对 202 年 国 开 证 券 有 限 责 任 公 司 总 部 招 聘 岗 位 部 门 招 聘 职 位 招 聘 人 数 岗 位 职 责 基 本 要 求 岗 位 任 职 要 求 组 织 策 划 投 资 顾 问 服 务 方 案 及 实 施 ; 中 国 证 券 业 协 会 注 册 证 券 投 资 顾 问 ; 投 顾 管 理 岗 2 组 织 策 划 投 资 顾 问 资 讯 产 品 设 计 方 案 及 实 施 ;

More information

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

Microsoft PowerPoint - BECKHOFF技术_ADS通讯 [Compatibility Mode] 的架构 ADS 的通讯机制 ADS-Client Request -> Confirmation Indication

More information

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

C++ 程序设计 告别 OJ1 - 参考答案 MASTER 2019 年 5 月 3 日 1 C++ 程序设计 告别 OJ1 - 参考答案 MASTER 2019 年 月 3 日 1 1 INPUTOUTPUT 1 InputOutput 题目描述 用 cin 输入你的姓名 ( 没有空格 ) 和年龄 ( 整数 ), 并用 cout 输出 输入输出符合以下范例 输入 master 999 输出 I am master, 999 years old. 注意 "," 后面有一个空格,"." 结束,

More information

ebook12-1

ebook12-1 API N e t B I O S Wi n s o c k A P I Wi n s o c k 1 N e t B I O S Wi n s o c k A P I N e t B I O S O S / 2 D O S 2 3 4 Wi n d o w s Wi n d o w s 1 NetBIOS Network Basic Input/Output System, NetBIOS A P

More information

长 安 大 学 硕 士 学 位 论 文 基 于 数 据 仓 库 和 数 据 挖 掘 的 行 为 分 析 研 究 姓 名 : 杨 雅 薇 申 请 学 位 级 别 : 硕 士 专 业 : 计 算 机 软 件 与 理 论 指 导 教 师 : 张 卫 钢 20100530 长安大学硕士学位论文 3 1 3系统架构设计 行为分析数据仓库的应用模型由四部分组成 如图3 3所示

More information

University of Science and Technology of China A dissertation for master s degree Research of e-learning style for public servants under the context of

University of Science and Technology of China A dissertation for master s degree Research of e-learning style for public servants under the context of 中 国 科 学 技 术 大 学 硕 士 学 位 论 文 新 媒 体 环 境 下 公 务 员 在 线 培 训 模 式 研 究 作 者 姓 名 : 学 科 专 业 : 导 师 姓 名 : 完 成 时 间 : 潘 琳 数 字 媒 体 周 荣 庭 教 授 二 一 二 年 五 月 University of Science and Technology of China A dissertation for

More information

, 7, Windows,,,, : ,,,, ;,, ( CIP) /,,. : ;, ( 21 ) ISBN : -. TP CIP ( 2005) 1

, 7, Windows,,,, : ,,,, ;,, ( CIP) /,,. : ;, ( 21 ) ISBN : -. TP CIP ( 2005) 1 21 , 7, Windows,,,, : 010-62782989 13501256678 13801310933,,,, ;,, ( CIP) /,,. : ;, 2005. 11 ( 21 ) ISBN 7-81082 - 634-4... - : -. TP316-44 CIP ( 2005) 123583 : : : : 100084 : 010-62776969 : 100044 : 010-51686414

More information

C语言的应用.PDF

C语言的应用.PDF AVR C 9 1 AVR C IAR C, *.HEX, C,,! C, > 9.1 AVR C MCU,, AVR?! IAR AVR / IAR 32 ALU 1KBytes - 8MBytes (SPM ) 16 MBytes C C *var1, *var2; *var1++ = *--var2; AVR C 9 2 LD R16,-X ST Z+,R16 Auto (local

More information

表3:

表3: 1. 面 向 对 象 程 序 设 计 课 程 教 学 大 纲 2. 面 向 对 象 程 序 设 计 实 验 教 学 大 纲 3. 离 散 数 学 课 程 教 学 大 纲 4. 数 据 结 构 课 程 教 学 大 纲 5. 数 据 结 构 实 验 教 学 大 纲 6. 计 算 机 组 成 原 理 课 程 教 学 大 纲 7. 操 作 系 统 课 程 教 学 大 纲 8. 操 作 系 统 实 验 教 学

More information

一个开放源码的嵌入式仿真环境 ― SkyEye

一个开放源码的嵌入式仿真环境 ― SkyEye SkyEye SkyEye http://hpclab.cs.tsinghua.edu.cn/~skyeye/ I hear and I forget, I see and I remember, I do and I understand. SkyEye SkyEye SkyEye SkyEye SkyEye 1. SkyEye PC pervasive computing PC I O PDA

More information

untitled

untitled 1....2...2...6 2....10 3. UDP...15 4. TCP...16...16...16 1 1. PC COM1 COM2 COM1 COM2 DTU 2 3 4 COM1 COM1 COM2 COM ID 13900000000 DTU COM1 5 COM2 DTU DTU DTU DTU DTU DTU DTU ID ID 3031 3032 2 ID 13900000001

More information

提问袁小兵:

提问袁小兵: C++ 面 试 试 题 汇 总 柯 贤 富 管 理 软 件 需 求 分 析 篇 1. STL 类 模 板 标 准 库 中 容 器 和 算 法 这 部 分 一 般 称 为 标 准 模 板 库 2. 为 什 么 定 义 虚 的 析 构 函 数? 避 免 内 存 问 题, 当 你 可 能 通 过 基 类 指 针 删 除 派 生 类 对 象 时 必 须 保 证 基 类 析 构 函 数 为 虚 函 数 3.

More information

致 谢 开 始 这 篇 致 谢 的 时 候, 以 为 这 是 最 轻 松 最 愉 快 的 部 分, 而 此 时 心 头 却 充 满 了 沉 甸 甸 的 回 忆 和 感 恩, 一 时 间 竟 无 从 下 笔 虽 然 这 远 不 是 一 篇 完 美 的 论 文, 但 完 成 这 篇 论 文 要 感 谢

致 谢 开 始 这 篇 致 谢 的 时 候, 以 为 这 是 最 轻 松 最 愉 快 的 部 分, 而 此 时 心 头 却 充 满 了 沉 甸 甸 的 回 忆 和 感 恩, 一 时 间 竟 无 从 下 笔 虽 然 这 远 不 是 一 篇 完 美 的 论 文, 但 完 成 这 篇 论 文 要 感 谢 中 国 科 学 技 术 大 学 博 士 学 位 论 文 论 文 课 题 : 一 个 新 型 简 易 电 子 直 线 加 速 器 的 关 键 技 术 研 究 学 生 姓 名 : 导 师 姓 名 : 单 位 名 称 : 专 业 名 称 : 研 究 方 向 : 完 成 时 间 : 谢 家 麟 院 士 王 相 綦 教 授 国 家 同 步 辐 射 实 验 室 核 技 术 及 应 用 加 速 器 物 理 2006

More information

OSI OSI 15% 20% OSI OSI ISO International Standard Organization 1984 OSI Open-data System Interface Reference Model OSI OSI OSI OSI ISO Prototype Prot

OSI OSI 15% 20% OSI OSI ISO International Standard Organization 1984 OSI Open-data System Interface Reference Model OSI OSI OSI OSI ISO Prototype Prot OSI OSI OSI 15% 20% OSI OSI ISO International Standard Organization 1984 OSI Open-data System Interface Reference Model OSI OSI OSI OSI ISO Prototype Protocol OSI OSI OSI OSI OSI O S I 2-1 Application

More information

概述

概述 OPC Version 1.8 build 0925 KOCRDK Knight OPC Client Rapid Development Toolkits Knight Workgroup, eehoo Technology 2002-9 OPC 1...4 2 API...5 2.1...5 2.2...5 2.2.1 KOC_Init...5 2.2.2 KOC_Uninit...5 2.3...5

More information

目录 1 IPv6 快速转发 IPv6 快速转发配置命令 display ipv6 fast-forwarding aging-time display ipv6 fast-forwarding cache ipv6 fas

目录 1 IPv6 快速转发 IPv6 快速转发配置命令 display ipv6 fast-forwarding aging-time display ipv6 fast-forwarding cache ipv6 fas 目录 1 IPv6 快速转发 1-1 1.1 IPv6 快速转发配置命令 1-1 1.1.1 display ipv6 fast-forwarding aging-time 1-1 1.1.2 display ipv6 fast-forwarding cache 1-1 1.1.3 ipv6 fast-forwarding aging-time 1-3 1.1.4 ipv6 fast-forwarding

More information

C 1

C 1 C homepage: xpzhangme 2018 5 30 C 1 C min(x, y) double C // min c # include # include double min ( double x, double y); int main ( int argc, char * argv []) { double x, y; if( argc!=

More information

Abstract arm linux tool-chain root NET-Start! 2

Abstract arm linux tool-chain root NET-Start! 2 Lab III - Embedding Linux 1 Abstract arm linux tool-chain root NET-Start! 2 Part 1.4 Step1. tool-chain 4 Step2. PATH 4 Part 2 kernel 5 Step1. 5 Step2... 6 Step3...8 Part 3 root. 8 Step1. 8 Step2. 8 Part

More information

2. 佔 中 對 香 港 帶 來 以 下 影 響 : 正 面 影 響 - 喚 起 市 民 對 人 權 及 ( 專 制 ) 管 治 的 關 注 和 討 論 o 香 港 市 民 總 不 能 一 味 認 命, 接 受 以 後 受 制 於 中 央, 沒 有 機 會 選 出 心 中 的 理 想 特 首 o 一

2. 佔 中 對 香 港 帶 來 以 下 影 響 : 正 面 影 響 - 喚 起 市 民 對 人 權 及 ( 專 制 ) 管 治 的 關 注 和 討 論 o 香 港 市 民 總 不 能 一 味 認 命, 接 受 以 後 受 制 於 中 央, 沒 有 機 會 選 出 心 中 的 理 想 特 首 o 一 220 參 考 答 案 專 題 1. 公 民 抗 命 與 革 命 的 異 同 如 下 : 公 民 抗 命 革 命 相 同 之 處 目 的 兩 種 行 動 都 是 為 了 抗 拒 當 權 政 府 不 受 歡 迎 的 決 定 及 政 策 方 法 兩 者 都 是 在 嘗 試 其 他 合 法 的 抗 爭 行 動 後, 無 可 奈 何 的 最 後 手 段 不 同 之 處 目 的 只 是 令 政 府 的 某 些

More information

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

C/C++语言 - C/C++数据 C/C++ C/C++ Table of contents 1. 2. 3. 4. char 5. 1 C = 5 (F 32). 9 F C 2 1 // fal2cel. c: Convert Fah temperature to Cel temperature 2 # include < stdio.h> 3 int main ( void ) 4 { 5 float fah, cel ;

More information

Gerotor Motors Series Dimensions A,B C T L L G1/2 M G1/ A 4 C H4 E

Gerotor Motors Series Dimensions A,B C T L L G1/2 M G1/ A 4 C H4 E Gerotor Motors Series Size CC-A Flange Options-B Shaft Options-C Ports Features 0 0 5 5 1 0 1 0 3 3 0 0 SAE A 2 Bolt - (2) 4 Bolt Magneto (4) 4 Bolt Square (H4) 1.0" Keyed (C) 25mm Keyed (A) 1.0' 6T Spline

More information

软件测试(TA07)第一学期考试

软件测试(TA07)第一学期考试 一 判 断 题 ( 每 题 1 分, 正 确 的, 错 误 的,20 道 ) 1. 软 件 测 试 按 照 测 试 过 程 分 类 为 黑 盒 白 盒 测 试 ( ) 2. 在 设 计 测 试 用 例 时, 应 包 括 合 理 的 输 入 条 件 和 不 合 理 的 输 入 条 件 ( ) 3. 集 成 测 试 计 划 在 需 求 分 析 阶 段 末 提 交 ( ) 4. 单 元 测 试 属 于 动

More information

(Guangzhou) AIT Co, Ltd V 110V [ ]! 2

(Guangzhou) AIT Co, Ltd V 110V [ ]! 2 (Guangzhou) AIT Co, Ltd 020-84106666 020-84106688 http://wwwlenxcn Xi III Zebra XI III 1 (Guangzhou) AIT Co, Ltd 020-84106666 020-84106688 http://wwwlenxcn 230V 110V [ ]! 2 (Guangzhou) AIT Co, Ltd 020-84106666

More information

水晶分析师

水晶分析师 大数据时代的挑战 产品定位 体系架构 功能特点 大数据处理平台 行业大数据应用 IT 基础设施 数据源 Hadoop Yarn 终端 统一管理和监控中心(Deploy,Configure,monitor,Manage) Master Servers TRS CRYSTAL MPP Flat Files Applications&DBs ETL&DI Products 技术指标 1 TRS

More information

专业主干课程与主要专业课程教学大纲(2009年、2011年).doc

专业主干课程与主要专业课程教学大纲(2009年、2011年).doc ... 1... 4... 9... 12... 16... 20... 23... 26... 30... 33... 36 Electric Circuits 00440021 64 0 0 4 1 2 Y- 3 4 ZYT H 5 Analog Electronic Technique 00440041 54 14 0 3.5 1. 2. 1. 2. 3. RC 4. 5. 1. 20 2.

More information

Microsoft PowerPoint - Aqua-Sim.pptx

Microsoft PowerPoint - Aqua-Sim.pptx Peng Xie, Zhong Zhou, Zheng Peng, Hai Yan, Tiansi Hu, Jun-Hong Cui, Zhijie Shi, Yunsi Fei, Shengli Zhou Underwater Sensor Network Lab 1 Outline Motivations System Overview Aqua-Sim Components Experimental

More information

JLX

JLX PRODUCT:LCD MODULE. Model No.: JLX177-006 Product Type: 1.77 inch QVGA TFT Modoule. 产品规格书 晶联讯研发研发部 : Written By Checked By Approved By 客户名称 : 结构电子核准 地址 : 深圳市宝安区西乡宝安大道东华工业区 A3 栋 6 楼电话 :0755-29784961 Http://www.jlxlcd.cn

More information

Important Notice SUNPLUS TECHNOLOGY CO. reserves the right to change this documentation without prior notice. Information provided by SUNPLUS TECHNOLO

Important Notice SUNPLUS TECHNOLOGY CO. reserves the right to change this documentation without prior notice. Information provided by SUNPLUS TECHNOLO Car DVD New GUI IR Flow User Manual V0.1 Jan 25, 2008 19, Innovation First Road Science Park Hsin-Chu Taiwan 300 R.O.C. Tel: 886-3-578-6005 Fax: 886-3-578-4418 Web: www.sunplus.com Important Notice SUNPLUS

More information

System Design and Setup of a Robot to Pass over Steps Abstract In the research, one special type of robots that can pass over steps is designed and se

System Design and Setup of a Robot to Pass over Steps Abstract In the research, one special type of robots that can pass over steps is designed and se 8051 8051 System Design and Setup of a Robot to Pass over Steps Abstract In the research, one special type of robots that can pass over steps is designed and setup. This type of robot uses two kinds of

More information

PowerPoint 演示文稿

PowerPoint 演示文稿 Linux 操 作 系 统 基 础 介 绍 课 程 目 标 及 要 求 了 解 Linux 操 作 系 统 的 登 入 方 式 掌 握 常 用 命 令 的 基 本 用 法 能 够 熟 练 在 各 个 目 录 转 换 Outline 1. Linux 操 作 系 统 简 介 2. Linux 操 作 系 统 的 登 录 3. Linux 操 作 系 统 的 目 录 结 构 4. 常 用 命 令 5.

More information

CWT-3000 SMS DTU

CWT-3000 SMS DTU TT62 GPRS DTU 3.0 GPRS -------------------------------------------------------------------------------------------- TT62 GPRS DTU -----------------------------------------------------------------------

More information

Microsoft Word - A201103-528_1299547322.doc

Microsoft Word - A201103-528_1299547322.doc 5 10 15 20 25 30 基 于 Android 平 台 的 人 机 交 互 的 研 究 与 实 现 郁 亚 男 ( 北 京 邮 电 大 学 软 件 学 院, 北 京 100876) 摘 要 : 随 着 计 算 的 发 展, 计 算 变 得 越 来 越 自 由, 在 资 源 使 用 方 面 也 越 来 越 灵 活 移 动 终 端 由 于 无 线 通 信 网 络 传 输 速 率 的 提 高,

More information

Microsoft Word - 32

Microsoft Word - 32 * 基 于 Nios II 处 理 器 的 USB 接 口 设 计 * 项 目 基 金 : 获 中 韩 合 作 项 目 Development of Embedded Software and System for Automobile Electronics 的 资 助 ; 重 庆 市 科 技 攻 关 计 划 项 目 面 向 汽 车 ABS 嵌 入 式 系 统 的 专 用 开 发 平 台 及 其

More information

ebook70-13

ebook70-13 1 3 I S P O p e n L i n u x Point to Point Protocol P P P I S P L i n u x 10 L i n u x World Wide We b 13.1 We b f t p ( ) f t p (File Transfer Protocol F T P ) F T P g e t p u t 13. 1. 1 F T P f t p n

More information

ebook 185-6

ebook 185-6 6 Red Hat Linux DB2 Universal Database 6.1 D B 2 Red Hat D B 2 Control Center D B 2 D B 2 D B 2 6.1 DB2 Universal Database [DB2]6.1 D B 2 O LT P O L A P D B 2 I B M P C We e k D B 2 D B 2 L i n u x Windows

More information

2 12

2 12 SHENZHEN BRILLIANT CRYSTAL TECHNOLOGIC CO.,LTD. The specification for the following models Graphic LCM serial communication control board CB001 PROPOSED BY APPROVED Design Approved TEL:+86-755-29995238

More information

untitled

untitled DOP www.deltaww.com DOP (RS232/RS485/ RS422) DOP USB SD 30 100 PLC Best Performance Huma Beautiful Display Beneficial Feature 1 DOP LED 65536 2D n Machine Interface s 2 DOP-B DOP-B 4.3 inches Wide B03S211

More information

Total Internet Connectivity in a Single Chip

Total Internet Connectivity in a Single Chip 基 于 SX 微 处 理 器 的 嵌 入 式 Internet 技 术 乐 德 广 及 其 应 用 系 统 的 设 计 1 1, 郭 东 辉, 刘 瑞 堂 1, Gerard Parr 2 1. 厦 门 大 学 技 术 物 理 研 究 所 厦 门 361005 2. 英 国 Ulster 大 学 信 息 学 院 N.Ireland, BT52 1SA 摘 要 : SX 微 处 理 器 是 美 国 Scenix

More information

第 03 期 刘高军等 : 基于 CNONIX 的 XML 与 EXCEL 相互转换技术研究 XML XML CNONIX XML EXCEL EXCEL EXCEL EXCEL CNONIXEXCEL XML EXCEL CNONIX XML EXCEL CNONIX 1 CNONIX 数据元分析

第 03 期 刘高军等 : 基于 CNONIX 的 XML 与 EXCEL 相互转换技术研究 XML XML CNONIX XML EXCEL EXCEL EXCEL EXCEL CNONIXEXCEL XML EXCEL CNONIX XML EXCEL CNONIX 1 CNONIX 数据元分析 电子科学技术电子科学技术第 02 卷第 03 期 Electronic 2015 年 Science 5 月 & Technology Electronic Science & Technology Vol.02 No.03 May.2015 年 基于 CNONIX 的 XML 与 EXCEL 相互转换技术研究 刘高军, 李丹, 程利伟, 钱程, 段然 ( 北方工业大学计算机学院, 北京,100144)

More information

目录 1 IPv6 快速转发 IPv6 快速转发配置命令 display ipv6 fast-forwarding aging-time display ipv6 fast-forwarding cache ipv6 fas

目录 1 IPv6 快速转发 IPv6 快速转发配置命令 display ipv6 fast-forwarding aging-time display ipv6 fast-forwarding cache ipv6 fas 目录 1 IPv6 快速转发 1-1 1.1 IPv6 快速转发配置命令 1-1 1.1.1 display ipv6 fast-forwarding aging-time 1-1 1.1.2 display ipv6 fast-forwarding cache 1-1 1.1.3 ipv6 fast-forwarding aging-time 1-3 1.1.4 ipv6 fast-forwarding

More information

1 1 大概思路 创建 WebAPI 创建 CrossMainController 并编写 Nuget 安装 microsoft.aspnet.webapi.cors 跨域设置路由 编写 Jquery EasyUI 界面 运行效果 2 创建 WebAPI 创建 WebAPI, 新建 -> 项目 ->

1 1 大概思路 创建 WebAPI 创建 CrossMainController 并编写 Nuget 安装 microsoft.aspnet.webapi.cors 跨域设置路由 编写 Jquery EasyUI 界面 运行效果 2 创建 WebAPI 创建 WebAPI, 新建 -> 项目 -> 目录 1 大概思路... 1 2 创建 WebAPI... 1 3 创建 CrossMainController 并编写... 1 4 Nuget 安装 microsoft.aspnet.webapi.cors... 4 5 跨域设置路由... 4 6 编写 Jquery EasyUI 界面... 5 7 运行效果... 7 8 总结... 7 1 1 大概思路 创建 WebAPI 创建 CrossMainController

More information

ebook8-30

ebook8-30 3 0 C C C C C C++ C + + C++ GNU C/C++ GNU egcs UNIX shell s h e l l g a w k P e r l U N I X I / O UNIX shell awk P e r l U N I X C C C C C C U N I X 30.1 C C U N I X 70 C C U N I X U N I X U N I X C Dennis

More information

输电线路智能监测系统通信技术应用研究

输电线路智能监测系统通信技术应用研究 Smart Grid 智 能 电 网, 2014, 4, 11-15 http://dx.doi.org/10.12677/sg.2014.41003 Published Online February 2014 (http://www.hanspub.org/journal/sg.html) Application Research of Communication Technology for

More information

BC04 Module_antenna__ doc

BC04 Module_antenna__ doc http://www.infobluetooth.com TEL:+86-23-68798999 Fax: +86-23-68889515 Page 1 of 10 http://www.infobluetooth.com TEL:+86-23-68798999 Fax: +86-23-68889515 Page 2 of 10 http://www.infobluetooth.com TEL:+86-23-68798999

More information

Kubenetes 系列列公开课 2 每周四晚 8 点档 1. Kubernetes 初探 2. 上 手 Kubernetes 3. Kubernetes 的资源调度 4. Kubernetes 的运 行行时 5. Kubernetes 的 网络管理理 6. Kubernetes 的存储管理理 7.

Kubenetes 系列列公开课 2 每周四晚 8 点档 1. Kubernetes 初探 2. 上 手 Kubernetes 3. Kubernetes 的资源调度 4. Kubernetes 的运 行行时 5. Kubernetes 的 网络管理理 6. Kubernetes 的存储管理理 7. Kubernetes 包管理理 工具 Helm 蔺礼强 Kubenetes 系列列公开课 2 每周四晚 8 点档 1. Kubernetes 初探 2. 上 手 Kubernetes 3. Kubernetes 的资源调度 4. Kubernetes 的运 行行时 5. Kubernetes 的 网络管理理 6. Kubernetes 的存储管理理 7. Kubernetes

More information

2005.book

2005.book ...4... 4... 7...10... 10... 10... 10... 10... 11... 11 PCC... 11 TB170... 12 /... 12...13... 13 BP150 / BP151 / BP152 / BP155... 14...15... 15... 15... 15... 15... 15... 15... 16 PS465 / PS477... 17 PS692

More information

1. ( B ) IT (A) (B) (C) (D) 2. ( A ) (A) (B) (C) (D) 3. ( B ) (A) GPS (B) GIS (C) ETC (D) CAI 4. ( D ) (A) (B) (C) (D) 5. ( B ) (Stored Program) (A) H

1. ( B ) IT (A) (B) (C) (D) 2. ( A ) (A) (B) (C) (D) 3. ( B ) (A) GPS (B) GIS (C) ETC (D) CAI 4. ( D ) (A) (B) (C) (D) 5. ( B ) (Stored Program) (A) H ... 2... 4... 6... 8... 10... 12... 14... 16... 18... 20... 22... 24... 25... 26... 28 1. ( B ) IT (A) (B) (C) (D) 2. ( A ) (A) (B) (C) (D) 3. ( B ) (A) GPS (B) GIS (C) ETC (D) CAI 4. ( D ) (A) (B) (C)

More information

目 录

目 录 1 Quick51...1 1.1 SmartSOPC Quick51...1 1.2 Quick51...1 1.3 Quick51...2 2 Keil C51 Quick51...4 2.1 Keil C51...4 2.2 Keil C51...4 2.3 1 Keil C51...4 2.4 Flash Magic...9 2.5 ISP...9 2.6...10 2.7 Keil C51...12

More information

ebook140-9

ebook140-9 9 VPN VPN Novell BorderManager Windows NT PPTP V P N L A V P N V N P I n t e r n e t V P N 9.1 V P N Windows 98 Windows PPTP VPN Novell BorderManager T M I P s e c Wi n d o w s I n t e r n e t I S P I

More information

第 05 期 董房等 : 一种卫星遥测在线状态监测及分析系统的设计 WEB 1 2 总体功能及组成 2.1 总体功能 1 2 3Web 2.2 结构组成 Web WEB WEB 2.3 系统各模块接口关系

第 05 期 董房等 : 一种卫星遥测在线状态监测及分析系统的设计 WEB 1 2 总体功能及组成 2.1 总体功能 1 2 3Web 2.2 结构组成 Web WEB WEB 2.3 系统各模块接口关系 电子科学技术 Electronic Science & Technology 电子科学技术第 02 卷第 05 期 2015 年 9 月 Electronic Science & Technology Vol.02 No.05 Sep.2015 年 一种卫星遥测在线状态监测及分析系统的设计 董房 1,2, 刘洋 2, 王储 2 2, 刘赞 (1. 上海交通大学, 上海,200240; 2. 上海卫星工程研究所,

More information

f2.eps

f2.eps 前 言, 目 录 产 品 概 况 1 SICAM PAS SICAM 电 力 自 动 化 系 统 配 置 和 使 用 说 明 配 置 2 操 作 3 实 时 数 据 4 人 机 界 面 5 SINAUT LSA 转 换 器 6 状 态 与 控 制 信 息 A 版 本 号 : 08.03.05 附 录, 索 引 安 全 标 识 由 于 对 设 备 的 特 殊 操 作 往 往 需 要 一 些 特 殊 的

More information

untitled

untitled MODBUS 1 MODBUS...1 1...4 1.1...4 1.2...4 1.3...4 1.4... 2...5 2.1...5 2.2...5 3...6 3.1 OPENSERIAL...6 3.2 CLOSESERIAL...8 3.3 RDMULTIBIT...8 3.4 RDMULTIWORD...9 3.5 WRTONEBIT...11 3.6 WRTONEWORD...12

More information

Microsoft Word - 01.DOC

Microsoft Word - 01.DOC 第 1 章 JavaScript 简 介 JavaScript 是 NetScape 公 司 为 Navigator 浏 览 器 开 发 的, 是 写 在 HTML 文 件 中 的 一 种 脚 本 语 言, 能 实 现 网 页 内 容 的 交 互 显 示 当 用 户 在 客 户 端 显 示 该 网 页 时, 浏 览 器 就 会 执 行 JavaScript 程 序, 用 户 通 过 交 互 式 的

More information

Microsoft Word - 39.doc

Microsoft Word - 39.doc 摘 基 于 ARM 的 嵌 入 式 无 线 AP 的 设 计 杨 健 陈 永 泰 ( 武 汉 理 工 大 学 信 息 工 程 学 院, 武 汉 430070) 要 : 本 文 首 先 介 绍 了 无 线 AP 的 基 本 原 理, 然 后 重 点 描 述 基 于 AT76C510 的 无 线 AP 的 硬 件 设 计 及 嵌 入 式 系 统 uclinux 最 后 对 IEEE802.11b 的 安

More information