Energy & Telecom M2M Communications March 2009
Getting started with Hilo Development Kit Sagem M2MCommunications : Freedom of speech for smart machines
1
Energy & Telecom M2M Communications March 2009
Presentation
Object
? The object of this presentation is to describes the procedure for testing the HiLo module in operating mode on a Development kit
Minimum materials required
? ? ? ? ? GSM Antenna with SMA connector (supplied in the dev kit) Laboratory Power Supply or AC/DC main adapter (supplied in the dev kit) Hilo Module (supplied in the dev kit) Sim Card RS-232 data cable
2
Energy & Telecom M2M Communications March 2009
Main functions location overview
POK_IN Switch Antenna Connector AC/DC Connector or Power supply Connector
UART Connector
HiLo Module Connector
SIM Interrupter (1= 2FF; 2=IC)
SIM 2FF Connector
3
SIM IC footprint
Energy & Telecom M2M Communications March 2009
Getting started synopsis
1. Connect :
1.Hilo module to the Board 2.Antenna on SMA connector 3.RS-232 data cable between PC and UART connector
2. Insert SIM card and set the SIM interrupter on position 1 if it is a 2FF SIM card (position 2 if SMT SIM) 3. Connect and switch ON Power Supply or AC/DC Main Adapter 4. Push the POK_IN switch for a few seconds (10 s)
4
Energy & Telecom M2M Communications March 2009
Communication with Module HyperTerminal
-Launch Hyperteminal -Start new connexion -Select the communication port
-Set the port parameters
module must answer: OK
-Send AT Command
5
Energy & Telecom M2M Communications March 2009
Need more help?
6
Energy & Telecom M2M Communications March 2009
SAGEM M2M Services : integrator pack
EVALUATION TOOLS
Demo kit Working samples Dummy units Antenna & cables Documentation SMT SIM cards could be provided (to be discussed)
DEVELOPERS tools
TCP/IP Developers package MMS Developers package Audio Settings tool SW Development Kit (Linux)
TECHNICAL SUPPORT
Complete Technical documentation Dedicated technical contact for any question Online technical support forum (OTRS) Schematics / layout / prototypes reviews Industrialization support Qualification support Network carriers approvals support
CERTIFICATION SUPPORT
7
Energy & Telecom M2M Communications March 2009
SAGEM M2M Services : industrial support pack
INDUSTRIAL DESIGN
Development centers in France, Germany, Austria, Tunisia, China and Canada. Product Engineering: Terminal & System, PCB, Software and Mechanics and Design finishing. Platform Engineering, and products range re-engineering based on common platform. Lab tests Field tests
TESTS & CERTIFICATION
MANUFACTURING
Factories in France, Germany, Tunisia, China, Brazil : 49 SMT lines. Handling from some k unit/year up to some M unit/year Qualification ISO 9001 V2000 , ISO 14001 & OHSAS 18001 for all factories. Qualification ISO TS 16949 for 1 factory in France.
LOGISTICS
Deliveries worldwide After Sales support Customer Services
8
Energy & Telecom M2M Communications March 2009
Thank you for your attention!
9
关于手机APP 测试流程规 1、流程图 仍然为测试环境
测试周期 测试周期一般为两周(10个工作日),根据项目情况以及版本质量可适当缩短或延长测试时间。正式测试前先向主管确认项目排期。 1.1测试资源 测试任务开始前,检查各项测试资源。 1.产品功能需求文档 2.产品原型图 3.产品效果图 4.行为统计分析定义文档 5.测试设备(ios3.1.3-ios5.0.1;Android1.6-Android4.0;Winphone7.1及以 上;Symbian v3/v5/Nokia Belle等) 6.其他(例如有秒杀专题的项目,需要规划秒杀时间表;有优惠券使用的 项目,需要申请添加优惠券数据;支付宝/银联支付功能的项目,需要提 前申请支付宝/银联账户等等) 1.2测试要点 1.接收版本 A)接收测试版本的同时,需要查看程序填写的《App测试版本提交质量规》,若符合则开始测试任务,若不符合规,可拒绝测试。 B)日常接收版本时需要注意测试版本规,如不符合,请开发人员重新修改合适的版本号后再次提交测试。
2.UI测试 A)确保手头的原型图与效果图为当前最新版本。 B)确保产品UI符合产品经理制定的原型图与效果图。 C)一切界面问题以效果图为准,若有用户体验方面的建议,必须先以或口头的形式询问产品经理。 D)由于测试环境中的数据为模拟数据,测试时必须预先考虑到正式环境中可能出现的数据类型 3.功能测试 A)确保手头的功能需求文档为当前最新版本。 B)确保所有的软件功能都已实现且逻辑正常。 C)一切功能问题以需求文档为准,若有用户体验方面的建议,必须先以或口头的形式询问产品经理。 D)若有些功能在技术上难以实现或者由于排期的原因无法在短时间实现,必须得到产品经理的确认,而不是单单只听开发人员的技术解释。 E)PMS上所有的“外部原因”问题,都需要尽早地督促开发人员与客户服务端人员联系协调解决。 F)P MS上所有的“设计如此”、“延期处理”问题,都需要和产品经理确认后再进行验证。 G)测试下单时,所有测试人员必须严格遵守《测试单下单规》标准。 注册的测试账号必须符合公司规;收货地址必须包含“测试”关键字; 在正式环境中下单后必须取消该订单等。 H)测试细节可参考且必须遵守《Test checklist》以及《公司客户端通
三相三线有功电能表计量三相三线有功电能,有两种非标准正确接线方式:(1)元件1采用线电压UBC和相电流ib,元件2采用线电压UAC和相电流iA,这种接线方式的瞬间功率表达式为P=UBCib+UACiA;(2)元件1采用线电压UCA和相电流ic,元件2采用线电压UBA和相电流ib,这种接线方式的瞬间功率表达式为P=UCAic+UBAib。在三相三线系统中,如果B相接地,则这两种非标准接线方式就可能漏计电度。比如:高压两线一地输电方式或低压三相三线供电方式,B相在电能表外的电源侧和负荷侧若同时接地运行,则三相三线有功电能表必然漏计电度,因此通常不采用这两种接线方式。而常用的标准正确接线只有一种(如图1),错误接线却有许多种。为了迅速地判别电能表接线是否正确,可采用下述简易方法: (1)首先对任何正转的电能表,如果原电能表接线正确,通过三次对调任意两根电压进线后,三次电能表都应停转,如不停转或有一次不停转,则证明原电能表接线肯定有错误。因为原电能表接线如果正确,对调任意两根电压进线后,其功率计算如下: ①对调A、B两相电压(矢量图如图2a所示)其功率为: -φA)=-U Icos(30°+φ) ②对调B、C两相电压(矢量图如图2b所示),其功率为: -φA)=UIcos(30°-φ) -UIcos(30°-φ) ③对调A、C两相电压(矢量图如图2c所示),其功率为: -UIcos(90°-φ) -φC)=UIcos(90°-φ) 三次对调电压进线后,从电能表的功率计算说明,如果原接线正确,在对调电压进线后都应停转(或有微动)。 (2)通过三次对调电压进线,如果电能表三次都停转,只能说明原电能表接线可能正确。电能表对调电压进线停转,只是电能表原接线正确的必要条件,还不是充分条件。为此还必须进一步进行判断。方法是:首先断开B相电压,此时电能表每分钟转数应为原接线电能表每分钟转数的一半。因为在原接线正确情况下,断开B相电压进线(参看图1虚线处断开),其功率为: -φA)=UIcos(30°-φ) UIcosφ 从功率计算说明,在电能表正确接线时,断开B相电压电能表正转速度应降低一半。然后再把A、C两相电压进线对调,使电能表停转,继续进行断开电压进线的试验。先断开A相电源进线,则电能表的功率为: -UIsinφ 再断开C相电源的电压进线,则电能表的功率为: -φC)=-UIcos(90°-φ)=UIsinφ 功率值P1和P2大小相等,方向相反。说明无论用户的功率因数如何,两次断线后,电能表的转数都应一样,但转向相反。
通讯协议及编程 通讯协议分为协议和协议,我公司的多种仪表都采用通讯协议,如:2000智能电力监测仪、巡检表、数显表、光柱数显表等。下面就协议简要介绍如下: 一、通讯协议 (一)、通讯传送方式: 通讯传送分为独立的信息头,和发送的编码数据。以下的通讯传送方式定义也与通讯规约相兼容: 初始结构= ≥4字节的时间 地址码 = 1 字节 功能码 = 1 字节 数据区 = N 字节 错误校检 = 16位码 结束结构= ≥4字节的时间 地址码:地址码为通讯传送的第一个字节。这个字节表明由用户设定地址码的从机将接收由主机发送来的信息。并且每个从机都有具有唯一的地址码,并且响应回送均以各自的地址码开始。主机发送的地址码表明将发送到的从机地址,而从机发送的地址码表明回送的从机地址。 功能码:通讯传送的第二个字节。通讯规约定义功能号为1到127。本仪表只利用其中的一部分功能码。作为主机请求发送,通过功能码告诉从机执行什么动作。作为从机响应,从机发送的功能码与从主机发送来的功能码一样,并表明从机已响应主机进行操作。如果从机发送的功能码的最高位为1(比如功能码大与此同时127),则表明从机没有响应操作或发送出错。 数据区:数据区是根据不同的功能码而不同。数据区可以是实际数值、设置点、主机发送给从机或从机发送给主机的地址。 码:二字节的错误检测码。 (二)、通讯规约: 当通讯命令发送至仪器时,符合相应地址码的设备接通讯命令,并除去地址码,读取信息,如果没有出错,则执行相应的任务;然后把执行结果返送给发送者。返送的信息
中包括地址码、执行动作的功能码、执行动作后结果的数据以及错误校验码。如果出错就不发送任何信息。 1.信息帧结构 地址码:地址码是信息帧的第一字节(8位),从0到255。这个字节表明由用户设置地址的从机将接收由主机发送来的信息。每个从机都必须有唯一的地址码,并且只有符合地址码的从机才能响应回送。当从机回送信息时,相当的地址码表明该信息来自于何处。 功能码:主机发送的功能码告诉从机执行什么任务。表1-1列出的功能码都有具体的含义及操作。 数据区:数据区包含需要从机执行什么动作或由从机采集的返送信息。这些信息可以是数值、参考地址等等。例如,功能码告诉从机读取寄存器的值,则数据区必需包含要读取寄存器的起始地址及读取长度。对于不同的从机,地址和数据信息都不相同。 错误校验码:主机或从机可用校验码进行判别接收信息是否出错。有时,由于电子噪声或其它一些干扰,信息在传输过程中会发生细微的变化,错误校验码保证了主机或从机对在传送过程中出错的信息不起作用。这样增加了系统的安全和效率。错误校验采用16校验方法。 注:信息帧的格式都基本相同:地址码、功能码、数据区和错误校验码。 2.错误校验 冗余循环码()包含2个字节,即16位二进制。码由发送设备计算,放置于发送信息的尾部。接收信息的设备再重新计算接收到信息的码,比较计算得到的码是否与接收到的相符,如果两者不相符,则表明出错。 码的计算方法是,先预置16位寄存器全为1。再逐步把每8位数据信息进行处理。在进行码计算时只用8位数据位,起始位及停止位,如有奇偶校验位的话也包括奇偶校验位,都不参与码计算。 在计算码时,8位数据与寄存器的数据相异或,得到的结果向低位移一字节,用0 填补最高位。再检查最低位,如果最低位为1,把寄存器的内容与预置数相异或,如果最低位为0,不进行异或运算。 这个过程一直重复8次。第8次移位后,下一个8位再与现在寄存器的内容相相异或,这个过程与以上一样重复8次。当所有的数据信息处理完后,最后寄存器的内容即为码值。码中的数据发送、接收时低字节在前。 计算码的步骤为:
XXX手机硬件测试列表 1.1.1 LCD测试 1.数量:2pcs以上; 2.测试方法及内容:手机正常开机后,距离30cm,与水平成45o角并在各个方向15o范围内观察LCD工作是否正常。 a. LCD显示是否正常,是否存在斑点、阴影等; b.彩屏LCD各种颜色能否正常显示,分辨率、色素、响应时间等性能指标是否符合要求; c.分别在暗室、荧光(约750Lux)和阳光(大于3500Lux)下测试LCD显示是否正常,各性能指标是否符合要求; d.将电源设置成高(4.2v)、中(3.8v)、低(3.5v)不同电压,LCD显示是否有差异或异常。 3.预期结果: a. LCD显示正常,不存在斑点、阴影等; b.彩屏LCD各种颜色正常显示,分辨率、色素、响应时间等性能指标符合要求(结合项目的具体指标规定); c.在暗室、荧光(约750Lux)和阳光(大于3500Lux)下测试LCD显示均应正常,各项性能符合项目的具体指标要求; d.在高、中、低不同电压下,LCD显示应正常且基本一致。 1.1.2 LCD背光及键盘背光测试 1.数量:2pcs以上; 2.测试方法及内容:手机正常开机后,选择进入手机功能菜单中的相应设置进行测试。 a.测试手机背光及LED能够正常工作; b.分别在暗室、荧光(约750Lux)和阳光(约2000Lux)下测试LED亮度是否正常; c.背光亮度是否符合要求,测试在不同电池电压情况下,背灯的亮度是否具有一致性; d. LED是否能够按照要求打开和关闭。 3.预期结果: a.手机背光及LED工作正常; b.在暗室、荧光(约750Lux)和阳光(约2000Lux)下,LED亮度均应正常; c.背光亮度应符合要求且在不同电池电压情况下,背灯亮度基本一致; d. LED能够按照要求打开和关闭,且亮度正常。 1.1.3 TP触摸屏承重能力测试 4.数量:5pcs以上; 5.测试方法及内容:重压头25kg,静压30秒之后,等待30秒,再重新放置重压头。 6.预期结果: a. 200次重压后样品不出现牛顿环,则为良品; 1.1.4 Camera测试 1.数量:4pcs以上; 2.测试方法及内容:手机正常开机后,选择手机功能菜单进入拍照状态,对标准测试板进行拍照。 a. Camera是否能够正常工作; b. 拍摄的照片效果是否符合规范要求; c. 用标准色板照片色块的对比测试; d. 测试Digital Camera的反应时间; e. 开启闪光灯功能,看闪光灯是否正常工作。 3.预期结果: a. Camera工作正常,能正常开启与关闭; b.照片效果符合规范要求,参考Camera Spec; c.反应时间达到规范要求;
店家WiFi信号及手机信号检测方法及标准 一、技术参数说明: 1、信号功率绝对值dBm:仔细看的时候会发现这个值是负的,也就是说手机会显示比如-67(dBm),那就说明信号很强。科普一个小知识:中国移动的手机接收电平≥(城市取-90dBm;乡村取-94dBm)、(中国联通的手机接收电平≥-95dBm)时,则满足覆盖要求,也就是说此处无线信号强度满足覆盖要求。-67dBm 要比-90dBm 信号要强20多个dB,那么它在打电话接通成功率和通话过程中的话音质量都会强很多(当然也包括EDGE/GPRS上网的速度那些),所以dBm值越大信号就越好,因为是个负值,而且在你手里的时候它永远是负值。如果感兴趣且附近有无线基站的天线的话,可以把你的手机尽量接近天线面板,那么值就越来越大,如果手机跟天线面板挨到一起,那么它可能十分接近于0。(0是达不到的,这里0的意思不代表手机没信号)。 2、移动设备信号发射功率概念:由于手机不断移动,手机和基站之间的距离不断变化,因此手机的发射功率不是固定不变的,基站根据距离远近的不同向手机发出功率级别信号,手机收到功率级别信号后会自动调整自身的功率,离基站远时发射功率大,离基站近时发射功率小。手机中的数据存储器存放有功率级别表,当手机收到基站发出的功率级别要求时,在CPU的控制下,从功率表中调出相应的功率级别数据,经数/模转换后变成标准的功率电平值,而手机的实
际发射功率经取样后也转换成一个相应的电平值,两个电平比较产生出功率误差控制电压,去调节发射机激励放大电路、预放、功放电路的放大量,从而使手机的发射功率调整到要求的功率级别上。也就是说,手机信号强度不是越强越好,也不是起弱越好,它是在一定标准范围内的。 3、Kbps、KBps:又称比特率,指的是数字信号的传输速率,也就是每秒钟传送多少个千位的信息(K表示千位,Kb表示的是多少千个位);Kbps也可以表示网络的传输速度,为了在直观上显得网络的传输速度较快,一般公司都使用kb(千位)来表示,如果是KBps,则表示每秒传送多少千字节。1KByte/s=8Kbps(一般简写为1KBps=8Kbps)。ADSL上网时的网速是512Kbps,如果转换成字节,就是512/8=64KBps(即64千字节每秒)。 二、店家检测各类信号强度的方法: 1、移动设备类型:检测设备可以是:iOS系统移动设备、Android 系统移动设备和笔记本电脑。 2、检测软件: 1)iOS系统:SPEEDTEST,可检测Ping值、下载速率、上传速率,功能亮点是可以保存往次检测记录。 2)Android系统:SPEEDTEST,功能和iOS系统的一样,功能亮点是可以保存往次检测记录。 3)WiFi分析仪:可检测WiFi信号强度、信道、寻找AP等功能。
单相有功电能表的正确接线 一单相有功电能计量装置的接线方式 (一)单相有功电能的测量原理 用于单相电路的电能计量装置一般仅有一只单相电能表,,电能表端子盒的端子直接接入被测电路,即直接接入式,当电能表的电流或电压量限不能满足被测电路要求时,则需经互感器接入。 测量有功电能的原理如图 测得的有功功率为 P=UIcos ? 而驱动力矩M Q 可由相量图得到M Q =K ψsin U I ΦΦ 驱动力矩为正值,电能表正转 若有一个线圈极性接反,例如电流线圈极性接反时,流入电能表电流线圈中的电流方向与图中相反,残生电流磁通的方向也相反,测试驱动力矩为M Q = K θsin U I ΦΦ=K =+?ΦΦ)180sin(?U I -K ?sin U I ΦΦ (二)直接接入式
直接接入式接线根据电能表端子盒内电压,电流接线端子排列方式不同可分为一进一出(单进单出)和二进二出(双进双出)两种接线方式。 相同点:两种接线方式的接线原理都是一样,因为它们所反映的功率都是P=UIcos 它们的电压电流端子同名端的连接片在表内都是连好的。 不同点:只是端子盒内电压、电流的出入端子的排列位置不同,电能表端子盒的接线端子应以“一孔一线”、“孔线对应”为原则,禁止在电能表端子盒端子孔内同时连接两根导线。 1、一进一出接线的正确接线 将电源的相线(俗称火线)接入接线盒第1孔接线端子上,其出线接在接线盒第2孔接线端子上;电源的中性线(俗称零线)接入接线盒第3个孔接线端子上,其出线接在接线盒第4孔接线端子上。 (目前我国和德国、捷克、匈牙利及原苏联等国生产的单相电能表都采用这种接线方式。) 2、二进二出接线的正确接线
上海安标电子有限公司 ——PC39A接地电阻仪通信协议 通信协议: 波特率:9600数据位:8校验位:无停止位:1 上位机(计算机): 字节号 1 2 3 4 5 6 7 8 意义ID Command 数据地址V alue CRC 注:1 ID:1个字节,由单机来定(0~255) 2 Command:1个字节,读:3或4,写:6 3 数据地址:2个字节,寄存器地址,读从100开始,写从200开始 4 V alue:2个字节,读:个数(以整型为单位),写:命令/ 数据(以整型为单位) 5 CRC:计算出CRC 下位机(PC39A): 读数据,若正确 字节号 1 2 3 3+N (N=个数*2) 3+N+1 3+N+2 意义ID Command=3 / 4 数据个数数据CRC 注:1 ID:1个字节,由单机来定(0~255) 2 Command:1个字节,收到的上位机命令 3数据个数:1个字节,返回数据个数(以字节为单位) 4 V alue:N个字节,是返回上位机的数据 5 CRC:计算出CRC 写命令,若正确 返回收到的数据: 若错误 字节号 1 2 3 4 5 意义ID Command 数据CRC 注:1 ID:1个字节,由单机来定(0~255) 2 Command:1个字节,收到的上位机命令或上0x80, 如收到3,返回0x83 3数据:1个字节,错误的指令 错误指令 1:表示command不存在 2:表示数据地址超限 4 CRC:计算出CRC
例如读PC39A 电流数据: 机器地址为12,电流的数据地址100,数据为15.45(A) (一个整型数据) 主机: ID Command 数据地址 V alue CRC 16进制 0x0c 0x03 0x0064 0x0001 CRC_H CRC_L 10进制 12 3 100 1 CRC_H CRC_L 从机返回 如正确: ID Command 数据个数(以字节为单位) V alue CRC 16进制 0x0c 0x03 0x002 0x0609 CRC_H CRC_L 10进制 12 3 2 1545 CRC_H CRC_L 如错误: ID Command 数据 CRC 16进制 0x0c 0x83 0x02 CRC_H CRC_L 10进制 12 131 2 CRC_H CRC_L 例如发PC39A 启动命令: 机器地址为12,命令的地址200,数据为25000(25000表示启动) 主机: ID Command 数据地址 V alue CRC 16进制 0x0c 0x06 0x00c8 0x61a8 CRC_H CRC_L 10进制 12 6 200 25000 CRC_H CRC_L 从机返回 如正确: ID Command 数据地址 V alue CRC 16进制 0x0c 0x06 0x00c8 0x61a8 CRC_H CRC_L 10进制 12 6 200 25000 CRC_H CRC_L 如错误: ID Command 数据 CRC 16进制 0x0c 0x86 0x02 CRC_H CRC_L 10进制 12 134 2 CRC_H CRC_L 0011 10000110 错误码0x83 功能码0x06错误码0x86
实验六:进程间通信 实验目的: 学会进程间通信方式:无名管道,有名管道,信号,消息队列, 实验要求: (一)在父进程中创建一无名管道,并创建子进程来读该管道,父进程来写该管道(二)在进程中为SIGBUS注册处理函数,并向该进程发送SIGBUS信号(三)创建一消息队列,实现向队列中存放数据和读取数据 实验器材: 软件:安装了Linux的vmware虚拟机 硬件:PC机一台 实验步骤: (一)无名管道的使用 1、编写实验代码pipe_rw.c #include
//1、子进程先关闭了管道的写端 close(pipe_fd[1]); //2、让父进程先运行,这样父进程先写子进程才有内容读sleep(2); //3、读取管道的读端,并输出数据 if(read(pipe_fd[0],buf_r, r_num)<0) { printf(“read error!”); exit(-1); } printf(“%s\n”,buf_r); //4、关闭管道的读端,并退出 close(pipe_fd[1]); } else if(pid>0) //父进程执行代码 { //1、父进程先关闭了管道的读端 close(pipe_fd[0]); //2、向管道写入字符串数据 p_wbuf=&str1; write(pipe_fd[1],p_wbuf,sizof(p_wbuf)); p_wbuf=&str2; write(pipe_fd[1],p_wbuf,sizof(p_wbuf)); //3、关闭写端,并等待子进程结束后退出 close(pipe_fd[1]); } return 0; } /*********************** #include
1 APP测试基本流程 1.1流程图 仍然为测试环境
1.2测试周期 测试周期可按项目的开发周期来确定测试时间,一般测试时间为两三周(即15个工作日),根据项目情况以及版本质量可适当缩短或延长测试时间。正式测试前先向主管确认项目排期。 1.3测试资源 测试任务开始前,检查各项测试资源。 --产品功能需求文档; --产品原型图; --产品效果图; --行为统计分析定义文档; --测试设备(ios3.1.3-ios5.0.1;Android1.6-Android4.0;Winphone7.1及以上;Symbian v3/v5/Nokia Belle等); --其他。 1.4日报及产品上线报告 1)测试人员每天需对所测项目发送测试日报。 2)测试日报所包含的内容为: --对当前测试版本质量进行分级; --对较严重的问题进行例举,提示开发人员优先修改; --对版本的整体情况进行评估。 3)产品上线前,测试人员发送产品上线报告。 4)上线报告所包含的内容为: ---对当前版本质量进行分级; ---附上测试报告(功能测试报告、兼容性测试报告、性能测试报告以及app可用性能标准结果); --总结上线版本的基本情况。若有遗留问题必须列出并记录解决方案。 2 App测试点 2.1安全测试 2.1.1软件权限 1)扣费风险:包括发送短信、拨打电话、连接网络等
2)隐私泄露风险:包括访问手机信息、访问联系人信息等 3)对App的输入有效性校验、认证、授权、敏感数据存储、数据加密等方面进行检测 4)限制/允许使用手机功能接人互联网 5)限制/允许使用手机发送接受信息功能 6)限制/允许应用程序来注册自动启动应用程序 7)限制或使用本地连接 8)限制/允许使用手机拍照或录音 9)限制/允许使用手机读取用户数据 10) 限制/允许使用手机写人用户数据 11) 检测App的用户授权级别、数据泄漏、非法授权访问等 2.1.2安装与卸载安全性 1)应用程序应能正确安装到设备驱动程序上 2)能够在安装设备驱动程序上找到应用程序的相应图标 3)是否包含数字签名信息 4)JAD文件和JAR包中包含的所有托管属性及其值必需是正确的 5)JAD文件显示的资料内容与应用程序显示的资料内容应一致 6)安装路径应能指定 7)没有用户的允许,应用程序不能预先设定自动启动 8)卸载是否安全,其安装进去的文件是否全部卸载 9)卸载用户使用过程中产生的文件是否有提示 10)其修改的配置信息是否复原 11)卸载是否影响其他软件的功能 12)卸载应该移除所有的文件 2.1.3数据安全性 1)当将密码或其他的敏感数据输人到应用程序时,其不会被储存在设备中,同时密码也不会被解码 2)输人的密码将不以明文形式进行显示 3)密码,信用卡明细,或其他的敏感数据将不被储存在它们预输人的位置上 4)不同的应用程序的个人身份证或密码长度必需至少在4一8个数字长度之间 5)当应用程序处理信用卡明细,或其他的敏感数据时,不以明文形式将数据写到其它单独的文件或者临时文件中。以防止应用程序异常终止而又没有侧除它的临时文件,文件可能遭受人侵者的袭击,然后读取这些数据信息。 6)当将敏感数据输人到应用程序时,其不会被储存在设备中 7)备份应该加密,恢复数据应考虑恢复过程的异常通讯中断等,数据恢复后再使用前应该经过校验 8)应用程序应考虑系统或者虚拟机器产生的用户提示信息或安全替告 9)应用程序不能忽略系统或者虚拟机器产生的用户提示信息或安全警告,更不能在安全警
三相三线电度表正确接线的简易别法 三相三线有功电能表计量三相三线有功电能,有两种非标准正确接线方式:(1)元件1采用线电压UBC和相电流ib,元件2采用线电压UAC和相电流iA,这种接线方式的瞬间功率表达式为P=UBCib+UACiA; (2)元件1采用线电压UCA和相电流ic,元件2采用线电压UBA和相电流ib,这种接线方式的瞬间功率表达式为P=UCAic+UBAib。在三相三线系统中,如果B 相接地,则这两种非标准接线方式就可能漏计电度。 比如:高压两线一地输电方式或低压三相三线供电方式,B相在电能表外的电源侧和负荷侧若同时接地运行,则三相三线有功电能表必然漏计电度,因此通常不采用这两种接线方式。而常用的标准正确接线只有一种(如图1),错误接线却有许多种。为了迅速地判别电能表接线是否正确,可采用下述简易方法:
(1)首先对任何正转的电能表,如果原电能表接线正确,通过三次对调任意两根电压进线后,三次电能表都应停转,如不停转或有一次不停转,则证明原电能表接线肯定有错误。因为原电能表接线如果正确,对调任意两根电压进线后,其功率计算如下:
①对调A、B两相电压(矢量图如图2a所示)其功率为: P1=UBAIAcos(150-φA)=-UIcos(30+φ) P2=UCAICcos(30+φC)=UIcos(30+φ) P=P1+P2=0 ②对调B、C两相电压(矢量图如图2b所示),其功率为: P1=UACIAcos(30-φA)=UIcos(30-φ) P2=UBCICcos(150+φC)=-UIcos(30-φ) P=P1+P2=0 ③对调A、C两相电压(矢量图如图2c所示),其功率为: P1=UCBIAcos(90+φA)=-UIcos(90-φ) P2=UABICcos(90-φC)=UIcos(90-φ) P=P1+P2=0 (1)首先对任何正转的电能表,如果原电能表接线正确,通过三次对调任意两根电压进线后,三次电能表都应停转,如不停转或有一次不停转,则证明原电能表接线肯定有错误。因为原电能表接线如果正确,对调任意两根电压进线后,其功率计算如下: ①对调A、B两相电压(矢量图如图2a所示)其功率为: P1=UBAIAcos(150-φA)=-UIcos(30+φ)
Modbus是一种单主站的主/从通信模式。Modbus网络上只能有一个主站存在,主站在Modbus网络上没有地址,从站的地址范围为0 - 247,其中0 为广播地址,从站的实际地址范围为1 - 247。Modbus通信标准协议可以通过各种传输方式传播,如RS232C、RS485、光纤、无线电等。 Modbus具有两种串行传输模式,ASCII 和RTU。它们定义了数据如何打包、解码的不同方式。支持Modbus 协议的设备一般都支持RTU 格式。通信双方必须同时支持上述模式中的一种。 上面说的是官话,下面是我说的大白话: modbus协议也只是通讯协议的一种,没什么神秘的,通讯协议包括两个方面: 一、通讯格式,即:波特率,检验方式,数据位,停止位 波特率:一秒钟传送的位数,也就是通讯速率;比如波特率为9600,即,一秒种可以传送9600个位数,位的概念看下面的数据位介绍 校验方式:奇校验或偶校验或无校验,目的是判断传输过程中是否有错误!它只是用于判断一个字符(比如八个位或是七个位组成一个字符)传输是否有错误。但是它并不能完全能够判断传输是否有错。比如偶校验,在检验送八个“11111111”时,如果到达接收方,由于干扰而变成了“10111101”,“1”的个数仍然是偶数,接收方就判断不出来传送的字符已经错误! 数据位:传输一个字符由几个位组成,计算机的基本单位就是“位”,其值非“0”即“1”,又如传送A,定义通讯格式时,是定义的八位,其传送的数据可能就是:00001010; 停止位:传输一个字符有几个停止位,用天判断某个字符是否传输结束,以便开始接收下一个字符。 通讯格式的作用是规范发送方与接收方的传输格式,如果双方通讯格式不一样,接收方就不可能正确判断发送方发来的东西是什么。 比如,接收方设置的波特率是10(一秒只接收十个位)位,而发送方的波特率是20(一秒发送二十个位),那么发送方一秒种发送的20个字符,接收方就不可能都收到,只能接收到10个,造成通讯出错。 校验方式:双方校验方式不一样,就没有一个统一的标准认定传输是否有错误。 数据位,接收方设定的七位,即它接收到七个位就认为是一个字符,而实际发送方设定的是八位,那么接收方认定的字符与发送方发送的字符就不一样了。 ***参预通讯的双方设定的通讯格式必须一样的!! 二、通讯规范(这个词是我自己定义的,不能引用,会被人笑话的) 通讯格式只是保证接收方正确地接收到发送方传输过来的每一个字符(实际如上所述,检验方式并不能保证完全正确,还要靠通讯规范中的校验和计算来验证整体正确性,下面会继续说明),那么接收到的整串字符做什么用呢,就要靠通讯规范了 MODBUS的通讯规范很简单! 先说ASCII方式: ASCII方式发送时的规范定义如下: 起始符+ 设备地址+ 功能代码+数据+ 校验+ 结束符 1\起始符: 接收到一串字符,总要知道这串字符从哪个地方开始吧,这就是起始符的作用,接收方不管以前收到多少个字符。当接收到起始符时,以前的字符就不再理它了,从起始符开始分析以后的字符!MODBUS的ASCII方式起始符是一个冒号“:”
一、剪贴板 1、基础知识 剪贴板实际上是系统维护管理的一块内存区域,当在一个进程中复制数据时,是将这个数据放到该块内存区域中,当在另一个进程中粘贴数据时,是从该内存区域中取出数据。 2、函数说明: (1)、BOOL OpenClipboard( ) CWnd类的OpenClipboard函数用于打开剪贴板。若打开剪贴板成功,则返回非0值。若其他程序或当前窗口已经打开了剪贴板,则该函数返回0值,表示打开失败。若某个程序已经打开了剪贴板,则其他应用程序将不能修改剪贴板,直到前者调用了CloseClipboard函数。 (2)、BOOL EmptyClipboard(void) EmptyClipboard函数将清空剪贴板,并释放剪贴板中数据的句柄,然后将剪贴板的所有权分配给当前打开剪贴板的窗口。 (3)、HANDLE SetClipboardData(UINT uFormat, HANDLE hMem) SetClipboardData函数是以指定的剪贴板格式向剪贴板上放置数据。uFormat指定剪贴板格式,这个格式可以是已注册的格式,或是任一种标准的剪贴板格式。CF_TEXT表示文本格式,表示每行数据以回车换行(0x0a0x0d)终止,空字符作为数据的结尾。hMem指定具有指定格式的数据的句柄。hMem参数可以是NULL,指示采用延迟提交技术,则该程序必须处理WM_RENDERFORMA T和WM_RENDERALLFORMATS消息。应用程序在调用SetClipboardData函数之后,就拥有了hMem参数所标识的数据对象,该应用程序可以读取该数据对象,但在应用程序调用CloseClipboard函数之前,它不能释放该对象的句柄,或者锁定这个句柄。若hMem标识了一个内存对象,那么这个对象必须是利用GMEM_MOVEABLE标志调用GlobalAlloc函数为其分配内存。 注意:调用SetClipboardData函数的程序必须是剪贴板的拥有者,且在这之前已经打开了剪贴板。 延迟提交技术:当一个提供数据的进程创建了剪贴板数据之后,直到其他进程获取剪贴板数据之前,这些数据都要占据内存空间。若在剪贴板上放置的数据过大,就会浪费内存空间,降低对资源的利用率。为了避免这种浪费,就可以采用延迟提交计数,也就是由数据提供进程先提供一个指定格式的空剪贴板数据块,即把SetClipboardData函数的hMem参数设置为NULL。当需要获取数据的进程想要从剪贴板上得到数据时,操作系统会向数据提供进程发送WM_RENDERFORMA T消息,而数据提供进程可以响应这个消息,并在此消息的响应函数中,再一次调用SetClipboardData函数,将实际的数据放到剪贴板上。当再次调用SetClipboardData函数时,就不再需要调用OpenClipboard函数,也不再需要调用EmptyClipboard函数。也就是说,为了提高资源利用率,避免浪费内存空间,可以采用延迟提交技术。第一次调用SetClipboardData函数时,将其hMem参数设置为NULL,在剪贴板上以指定的剪贴板格式放置一个空剪贴板数据块。然后直到有其他进程需要数据或自身进程需要终止运行时再次调用SetClipboardData函数,这时才真正提交数据。 (4)、HGLOBAL GlobalAlloc( UINT uFlags,SIZE_T dwBytes); GlobalAlloc函数从堆上分配指定数目的字节。uFlags是一个标记,用来指定分配内存的方式,uFlags为0,则该标记就是默认的GMEM_FIXED。dwBytes指定分配的字节数。
目录 目录 (1) 一.UI测试 (2) 1. UI布局测试 (2) 2素材方面测试 (2) 二.功能测试方法 (2) 2.测试常见方法概述 (2) 2.1边界值 (2) 2.2等价类划分 (3) 2.3场景测试法 (3) 2.4错误推测法 (5) 3.游戏内常见控件测试详解 (6) 3.1文本框的测试 (6) 3.2命令按钮的测试 (6) 3.3单选按钮的测试 (6) 3.4 up-down控件的测试 (7) 3.5组合列表框的测试 (7) 3.6复选框控件的测试 (8) 3.7列表框控件的测试 (9) 3.8滚动条的测试 (9) 3.9窗体的测试 (10) 4.0各种控件在页面中混合使用时的测试 (10) 4.游戏内操作测试 (11) 4.1游戏内鼠标操作 (11) 4.2游戏内链接的测试 (11) 4.3游戏内文字检查 (11) 4.4游戏内帮助文档测试 (12) 4.5游戏角色的测试 (12) 4.6特殊属性 (12) 三.附录: (14) 1.界面设计的总体原则 (14) 2.测试流程 (14) 3.测试用例 (15) 编写原则 (15) 3.1 系统性 (15) 3.2 连贯性 (15) 3.3 全面性 (15) 3.4 正确性 (15) 3.5 符合正常业务惯例 (16) 3.6 可操作性 (16)
测试方法 游戏测试方法大致分为:UI测试(即界面测试)和功能测试。下面是针对测试中能使用到的方法简略的总结。关于UI的测试后边详细介绍,前边开头部分为简略叙述。 一.UI测试 1. UI布局测试 目的:检测界面布局设置合理性。 操作方法:1.检查各种控件、弹窗在游戏中摆放位置的合理性 2.检查界面中各个文字完整性(包括弹窗信息、任务描述、tips内容等),按钮上 文字的显示位置是否有偏移。 Ps:①关于弹窗位置,可以尝试多次反复弹出弹窗后关闭操作,目的在于检测弹窗在反复关闭弹出后是否会改变在游戏中位置。 ②全屏显示游戏,然后继续操作弹窗出现,查看界面现实情况 2素材方面测试 目的:检测游戏中图片素材与策划案是否一致。 操作方法:1.查看商城、任务描述、弹窗、宣传广告中、游戏中地面、天空之城等处的图片显示与策划案中要求核对。 2.查看图片中名称与图片本身是否一致 二.功能测试方法 2.测试常见方法概述 游戏测试中常用的测试方法:等价类、边界值、因果图、错误推测法 2.1边界值 定义:允许输入或输出的数值范围的最大值和最小值。 例如:数值要求不能超过15,那么测试时可以尝试使用的数字有:13 14 16 17,也可以只使用14和16。 Ps:上述要求也要根据环境选择数值。有些条件要实验0、负数等
Modbus 通讯协议的原理和标准 工业控制已从单机控制走向集中监控、集散控制,如今已进入网络时代,工业控制器连网也为网络管理提供了方便。Modbus 就是工业控制器的网络协议中的一种。 一、Modbus 协议简介 Modbus 协议是应用于电子控制器上的一种通用语言。通过此协议,控制器相互之间、控制器经由网络(例如以太网)和其它设备之间可以通信。它已经成为一通用工业标准。有了它,不同厂商生产的控制设备可以连成工业网络,进行集中监控。此协议定义了一个控制器能认识使用的消息结构,而不管它们是经过何种网络进行通信的。它描述了一控制器请求访问其它设备的过程,如果回应来自其它设备的请求,以及怎样侦测错误并记录。它制定了消息域格局和内容的公共格式。 当在一Modbus 网络上通信时,此协议决定了每个控制器须要知道它们的设备地址,识别按地址发来的消息,决定要产生何种行动。如果需要回应,控制器将生成反馈信息并用Modbus 协议发出。在其它网络上,包含了Modbus 协议的消息转换为在此网络上使用的帧或包结构。这种转换也扩展了根据具体的网络解决节地址、路由路径及错误检测的方法。 1、在Modbus 网络上转输 标准的Modbus 口是使用一RS-232C 兼容串行接口,它定义了连接口的针脚、电缆、信号位、传输波特率、奇偶校验。控制器能直接或经由Modem 组网。 控制器通信使用主—从技术,即仅一设备(主设备)能初始化传输(查询)。其它设备(从设备)根据主设备查询提供的数据做出相应反应。典型的主设备:主机和可编程仪表。典型的从设备:可编程控制器。 主设备可单独和从设备通信,也能以广播方式和所有从设备通信。如果单独通信,从设备返回一消息作为回应,如果是以广播方式查询的,则不作任何回应。Modbus 协议建立了主设备查询的格式:设备(或广播)地址、功能代码、所有要发送的数据、一错误检测域。 从设备回应消息也由Modbus 协议构成,包括确认要行动的域、任何要返回的数据、和一错误检测域。如果在消息接收过程中发生一错误,或从设备不能执行其命令,从设备将建立一错误消息并把它作为回应发送出去。 2、在其它类型网络上转输 在其它网络上,控制器使用对等技术通信,故任何控制都能初始和其它控制器的通信。这样在单独的通信过程中,控制器既可作为主设备也可作为从设备。提供的多个内部通道可允许同时发生的传输进程。 在消息位,Modbus 协议仍提供了主—从原则,尽管网络通信方法是“对等”。如果一控制器发送一消息,它只是作为主设备,并期望从从设备得到回应。同样,当控制器接收到一消息,它将建立一从设备回应格式并返回给发送的控制器。 3、查询—回应周期 (1)查询 查询消息中的功能代码告之被选中的从设备要执行何种功能。数据段包含了从设备要执行功能的任何附加信息。例如功能代码03 是要求从设备读保持寄存器并返回它们的内容。数据段必须包含要告之从设备的信息:从何寄存器开始读及要读的寄存器数量。错误检测域为从设备提供了一种验证消息内容是否正确的方法。
进程间通信实验报告 班级:10网工三班学生姓名:谢昊天学号:1215134046 实验目的和要求: Linux系统的进程通信机构 (IPC) 允许在任意进程间大批量地交换数据。本实验的目的是了解和熟悉Linux支持的消息通讯机制及信息量机制。 实验内容与分析设计: (1)消息的创建,发送和接收。 ①使用系统调用msgget (), msgsnd (), msgrev (), 及msgctl () 编制一长度为1k 的消息的发送和接收程序。 ②观察上面的程序,说明控制消息队列系统调用msgctl () 在此起什么作用? (2)共享存储区的创建、附接和段接。 使用系统调用shmget(),shmat(),sgmdt(),shmctl(),编制一个与上述功能相同的程序。(3)比较上述(1),(2)两种消息通信机制中数据传输的时间。 实验步骤与调试过程: 1.消息的创建,发送和接收: (1)先后通过fork( )两个子进程,SERVER和CLIENT进行通信。 (2)在SERVER端建立一个Key为75的消息队列,等待其他进程发来的消息。当遇到类型为1的消息,则作为结束信号,取消该队列,并退出SERVER 。SERVER每接收到一个消息后显示一句“(server)received”。 (3)CLIENT端使用Key为75的消息队列,先后发送类型从10到1的消息,然后退出。最后的一个消息,既是 SERVER端需要的结束信号。CLIENT每发送一条消息后显示一句“(client)sent”。 (4)父进程在 SERVER和 CLIENT均退出后结束。 2.共享存储区的创建,附接和断接: (1)先后通过fork( )两个子进程,SERVER和CLIENT进行通信。 (2)SERVER端建立一个KEY为75的共享区,并将第一个字节置为-1。作为数据空的标志.等待其他进程发来的消息.当该字节的值发生变化时,表示收到了该消息,进行处理.然后再次把它的值设为-1.如果遇到的值为0,则视为结束信号,取消该队列,并退出SERVER.SERVER 每接收到一次数据后显示”(server)received”. (3)CLIENT端建立一个为75的共享区,当共享取得第一个字节为-1时, Server端空闲,可发送请求. CLIENT 随即填入9到0.期间等待Server端再次空闲.进行完这些操作后, CLIENT退出. CLIENT每发送一次数据后显示”(client)sent”. (4)父进程在SERVER和CLIENT均退出后结束。 实验结果: 1.消息的创建,发送和接收: 由 Client 发送两条消息,然后Server接收一条消息。此后Client Server交替发送和接收消息。最后一次接收两条消息。Client 和Server 分别发送和接收了10条消息。message 的传送和控制并不保证完全同步,当一个程序不再激活状态的时候,它完全可能继续睡眠,造成上面现象。在多次send message 后才 receive message.这一点有助于理解消息转送的实现机理。