控制测试

一个完整的信号采集系统项目开发流程

不打扰是莪最后的温柔 提交于 2020-01-08 04:04:44
一. 摘要 这篇文章详细介绍了一个“多路信号采集系统”的开发过程。“多路信号采集系统”是一个可伸缩的信号采集系统,通道可以选择从0~100路不同的信号源。单个采集板都能够采集10路数据,用户可以根据自己的需求方便地扩展或者收缩信号通道数。本系统可以用于常见的民用或者工业现场监控、仪器仪表等数据采集场合。该系统基于Arm Context M3内核处理器实现,有基板和采集板两大部分组成,基板主要负责整个采集时序的控制,而采集板则完成真是的数据采集并将采集到的数据发送到数据总线,进而传输到主机端。数据传输采用了串口通信的方式(RS485),并采用Modbus协议实现,从而方便地实现了采集板地址的检索、数据量控制、以及CRC校验值确定等功能。软件系统则采用了固件库编程的方式,全程开发均使用C语言完成,从而为以后升级做好准备。开发使用了今日标企业工作平台以及Github代码托管平台相结合完成开发的方式,使用今日标企业工作平台管理项目开发流程,而使用Github则方便地实现了不同地区开发者协作开发的目的。而系统调试则选择了传统的调试方式,先进行单个功能模块测试,再测试系统功能,进而Burning实验。 二. 本文提纲 1. 摘要 2. 本文提纲 3. 项目起始 4. 开发方式选择 5. 系统构架 6. 硬件设计 7. 软件设计 8. 系统调试 9. 总结 三. 项目起始

网卡的组成工作原理

半世苍凉 提交于 2020-01-08 00:14:07
1.认识网卡,我们上网必备组件之一。 网卡工作在osi的最后两层,物理层和数据链路层,物理层定义了数据传送与接收所需要的电与光信号、线路状态、时钟基准、数据编码和电路等,并向数据链路层设备提供标准接口。物理层的芯片称之为PHY。数据链路层则提供寻址机构、数据帧的构建、数据差错检查、传送控制、向网络层提供标准的数据接口等功能。以太网卡中数据链路层的芯片称之为MAC控制器。很多网卡的这两个部分是做到一起的。他们之间的关系是pci总线接mac总线,mac接phy,phy接网线(当然也不是直接接上的,还有一个变压装置)。 下面继续让我们来关心一下PHY和MAC之间是如何传送数据和相互沟通的。通过IEEE定义的标准的MII/GigaMII(Media Independed Interfade,介质独立界面)界面连接MAC和PHY。这个界面是IEEE定义的。MII界面传递了网络的所有数据和数据的控制。 而MAC对PHY的工作状态的确定和对PHY的控制则是使用SMI(Serial Management Interface)界面通过读写PHY的寄存器来完成的。PHY里面的部分寄存器也是IEEE定义的,这样PHY把自己的目前的状态反映到寄存器里面,MAC通过SMI总线不断的读取PHY的状态寄存器以得知目前PHY的状态,例如连接速度,双工的能力等。当然也可以通过SMI设置PHY的寄存器达到控制的目的

一个完整的信号采集系统项目开发流程

社会主义新天地 提交于 2020-01-04 03:26:22
一. 摘要 这篇文章详细介绍了一个“多路信号采集系统”的开发过程。“多路信号采集系统”是一个可伸缩的信号采集系统,通道可以选择从0~100路不同的信号源。单个采集板都能够采集10路数据,用户可以根据自己的需求方便地扩展或者收缩信号通道数。本系统可以用于常见的民用或者工业现场监控、仪器仪表等数据采集场合。该系统基于Arm Context M3内核处理器实现,有基板和采集板两大部分组成,基板主要负责整个采集时序的控制,而采集板则完成真是的数据采集并将采集到的数据发送到数据总线,进而传输到主机端。数据传输采用了串口通信的方式(RS485),并采用Modbus协议实现,从而方便地实现了采集板地址的检索、数据量控制、以及CRC校验值确定等功能。软件系统则采用了固件库编程的方式,全程开发均使用C语言完成,从而为以后升级做好准备。开发使用了今日标企业工作平台以及Github代码托管平台相结合完成开发的方式,使用今日标企业工作平台管理项目开发流程,而使用Github则方便地实现了不同地区开发者协作开发的目的。而系统调试则选择了传统的调试方式,先进行单个功能模块测试,再测试系统功能,进而Burning实验。 二. 本文提纲 1. 摘要 2. 本文提纲 3. 项目起始 4. 开发方式选择 5. 系统构架 6. 硬件设计 7. 软件设计 8. 系统调试 9. 总结 三. 项目起始

软件测试基础 - 集成测试(理论部分)

∥☆過路亽.° 提交于 2019-12-28 05:03:04
一、集成测试概念 集成测试也叫组装测试、联合测试、子系统测试或部件测试,是在单元测试的基础上,将所有函数按照概要设计要求组装成为子系统或系统所进行的测试;它和单元测试所关注的范围是不同的,因此,它们在发现问题的集合上包含有不相交的区域,不能使用集成测试来替代单元测试,反之亦然。 二、集成测试关注点 1.模块间的接口 把各个模块连接起来的时候,穿越模块接口的数据是否会丢失; 全局数据结构是否有问题,会不会被异常修改; 2.集成后的功能 各个子功能组合起来,能否达到预期要求的父功能; 一个模块的功能是否会对另一个模块的功能产生不利的影响; 单个模块的误差积累起来,是否会放大,从而达到不可接受的程度。 三、集成测试的层次 四、集成测试策略的主要模式 现有一个模块包含以下几个函数,将以此为例讲解每种模块的运作方式: 1.大爆炸集成方式 *** 这种方式中,首先对每个模块分别进行单元测试,然后再把所有单元组装在一起进行测试,最终得到要求的软件系统,如图所示: 缺点: a.这种一次性组装方式试图在辅助模块的协助下,在模块单元测试的基础上,将所测模块连接起来进行测试。但是由于程序中不可避免地存在模块间接口、全局数据结构等方面的问题,所以一次试运行成功的可能性并不很大; b.在发现错误的时候,其问题定位和修改都比较困难; c.即使被测系统能够被一次性集成

Testing和Instrumentation

筅森魡賤 提交于 2019-12-22 05:37:43
Testing和Instrumentation Android提供了一系列强大的测试工具,它针对Android的环境,扩展了业内标准的JUnit测试框架。尽管你可以使用JUnit测试Android工程,但Android工具允许你为应用程序的各个方面进行更为复杂的测试,包括单元层面及框架层面。 Android测试环境的主要特征有: 可以访问Android系统对象。 Instrumentation框架可以控制和测试应用程序。 Android系统常用对象的模拟版本。 运行单个test或test suite的工具,带或不带Instrumentation。 支持以Eclipse的ADT插件和命令行方式管理Test和Test工程。 这篇文章是对Android测试环境和测试方法的简要介绍,并假设你已经拥有一定的Android应用程序编程及JUnit测试的经验。 概要 Android测试环境的核心是一个Instrumentation框架,在这个框架下,你的测试应用程序可以精确控制应用程序。使用Instrumentation,你可以在主程序启动之前,创建模拟的系统对象,如Context;控制应用程序的多个生命周期;发送UI事件给应用程序;在执行期间检查程序状态。Instrumentation框架通过将主程序和测试程序运行在同一个进程来实现这些功能。 通过在测试工程的manifest文件中添加

Testing和Instrumentation

≡放荡痞女 提交于 2019-12-22 00:04:20
Android 提供了一系列强大的测试工具,它针对 Android 的环境,扩展了业内标准的 JUnit 测试框架。尽管你可以使用 JUnit 测试 Android 工程,但 Android 工具允许你为应用程序的各个方面进行更为复杂的测试,包括单元层面及框架层面。 Android 测试环境的主要特征有: l 可以访问 Android 系统对象。 l Instrumentation 框架可以控制和测试应用程序。 l Android 系统常用对象的模拟版本。 l 运行单个 test 或 test suite 的工具,带或不带 Instrumentation 。 l 支持以 Eclipse 的 ADT 插件和命令行方式管理 Test 和 Test 工程。 这篇文章是对 Android 测试环境和测试方法的简要介绍,并假设你已经拥有一定的 Android 应用程序编程及 JUnit 测试的经验。 概要 Android 测试环境的核心是一个 Instrumentation 框架,在这个框架下,你的测试应用程序可以精确控制应用程序。使用 Instrumentation ,你可以在主程序启动之前,创建模拟的系统对象,如 Context ;控制应用程序的多个生命周期;发送 UI 事件给应用程序;在执行期间检查程序状态。 Instrumentation 框架

gps信号发生器的应用介绍

梦想与她 提交于 2019-12-18 17:30:02
gps信号发生器的应用介绍 GPS信号发生器是什么? 如果您正在开发依赖GPS等卫星信号的任何设备,您一定需要确保它的性能可以满足其既定任务的要求。但如何才能确定您已经做好准备,能够在设备投放市场之前满足真实世界的需求呢?您需要使用GPS信号发生器执行适当的测试。 由于缺乏实际的天空信号,实验室测试便具备了极端的重要性,尤其是当某些卫星尚未发射之时。 卫星跟踪将成为具备GPS能力的设备取得成功的关键。如果未能对这一方面开展正确的测试,您的设备刚一进入市场便可能以失败收场。 GNSS/GPS模拟:一般原理GNSS即全球导航卫星系统,是提供全球覆盖的卫星导航系统的标准名称。该术语涵盖了GPS、GLONASS、GALILEO、BEIDOU和其它区域卫星导航系统。 在GNSS出现之初,就有两种可用于测试导航系统的替代方案:现场测试和实验室模拟。今天,最佳惯例要求多数测试需在受控、可重复性的安全实验室条件下执行。这样不仅可以测试正常条件,还可以对极度恶劣的条件进行测试,包括测试性能的真实和理论极限。此外,这种做法还可以实现目前尚未推入使用或缺乏完整星群的接收机开发工作。 现实世界的真实天空测试存在巨大的缺陷,因为从本质上真实天空测试已经将受控测试排除在外。经过总结,与采用真实GNSS星群的真实天空测试相比,GNSS模拟器测试的优势如下表所示: 1、采用实际GNSS星群的真实测试 2

安全测试基础

这一生的挚爱 提交于 2019-12-15 05:30:32
转载网上一篇关于安全测试的文章 转载文章标题名为“ 安全测试基础(Ⅰ) 安全测试概述 ” 转载地址: https://www.cnblogs.com/rd-ddddd/p/7718206.html#4367070 一般来说,版本功能测试完成,对应的用例也实现了自动化,性能、兼容、稳定性测试也完成了以后,我们就需要考虑到系统的安全问题,特别是涉及到交易、支付、用户账户信息的模块,安全漏洞会带来极高的风险。 一.安全测试原则与常见的安全威胁: 1.安全需求: ※认证:对认证的用户的请求返回 ※访问控制:对未认证的用户的权限控制和数据保护 ※完整性:用户必须准确的收到服务器发送的信息 ※机密性:信息必须准确的传递给预期的用户 ※可靠性:失败的频率是多少?网络从失败中恢复需要多长时间?采取什么措施来应对灾难性的失败?(个人理解这个地方应该更偏向于容错容灾测试的范畴) ※不可抵赖:用户应该能证明接收到的数据来自特定的服务器 2.常见的安全测试内容 权限控制 SQL注入 URL安全测试 XSS(跨站脚本攻击) CSRF(跨站请求伪造) URL跳转漏洞 其他安全方面的考量 接下来,我们以一个C#实现的下常见的MVC架构网站为例,来分析具体的各个安全测试角度。 二.权限控制 权限控制相对来说比较简单,功能测试的过程中也接触过不少,主要就是考虑以下方面: 1.用户权限:我们假设存在两个用户A,B

docker学习(五)

扶醉桌前 提交于 2019-12-11 16:37:41
一、实战案例 介绍一些典型的应用场景和案例。 1.使用Supervisor来管理进程 Docker 容器在启动的时候开启单个进程,比如,一个 ssh 或者 apache 的 daemon 服务。但我们经常需要在一个机器上开启多个服务,这可以有很多方法,最简单的就是把多个启动命令方到一个启动脚本里面,启动的时候直接启动这个脚本,另外就是安装进程管理工具。 本小节将使用进程管理工具 supervisor 来管理容器中的多个进程。使用 Supervisor 可以更好的控制、管理、重启我们希望运行的进程。在这里我们演示一下如何同时使用 ssh 和 apache 服务。 1.1配置 首先创建一个 Dockerfile,内容和各部分的解释如下。 FROM ubuntu:13.04 MAINTAINER examples@docker.com RUN echo "deb http://archive.ubuntu.com/ubuntu precise main universe" > /etc/apt/sources.list RUN apt-get update RUN apt-get upgrade -y 1.2安装supervisor 安装 ssh、apache 和 supervisor。 RUN apt-get install -y openssh-server apache2

西蒙购物网——控制层

て烟熏妆下的殇ゞ 提交于 2019-12-11 10:26:39
实现步骤 在src内新建net.zxy.shop.servlet包,然后在里面创建控制类 登录处理类LoginServlet package net.zxy.shop.servlet; import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; import net.zxy.shop.bean.User; import net.zxy.shop.service.UserService; @WebServlet("/login") public class LoginServlet extends HttpServlet { private static final long serialVersionUID = 1L; protected void doGet