测试发布代码

<code><pre>

import wiringpi2 as gpio
owpin=8     #第8脚为1-wire脚
def getval(owpin):
    tl=[]  #存放每个数据位的时间
    tb=[]  #存放数据位
    gpio.wiringPiSetup() #初始化wiringpi库
    gpio.pinMode(owpin,1)  #设置针脚为输出状态
    gpio.digitalWrite(owpin,1) #输出高电平
    gpio.delay(1)
    gpio.digitalWrite(owpin,0) #拉低20ms开始指令
    gpio.delay(25)
    gpio.digitalWrite(owpin,1) #抬高20-40us
    gpio.delayMicroseconds(20)
    gpio.pinMode(owpin,0)     #设针脚为输入状态
    while(gpio.digitalRead(owpin)==1): pass #等待DHT11拉低管脚
   
    for i in range(45):   #测试每个数据周期的时间(包括40bit数据加一个发送开始标志
        tc=gpio.micros()  #记下当前us数(从初始化开始算起,必要时重新初始化)
        ‘‘‘
        一个数据周期,包括一个低电平,一个高电平,从DHT11第一次拉低信号线开始
        到DHT11发送最后一个50us的低电平结束(然后被拉高,一直维持高电平,所以
        最后的完成标志是一直为高,超过500ms)
        ‘‘‘
        while(gpio.digitalRead(owpin)==0):pass
        while(gpio.digitalRead(owpin)==1):
            if gpio.micros()-tc>500: #如果超过500ms就结束了
                break
        if gpio.micros()-tc>500:   #跳出整个循环
            break
        tl.append(gpio.micros()-tc) #记录每个周期时间的us数,存到tl这个列表
   
#    print(tl)      #反注释后可打印时间列表
    tl=tl[1:]       #去掉第一项,剩下40个数据位
    for i in tl:
        if i>100:  #若数据位为1,时间为50us低电平+70us高电平=120us
            tb.append(1)
        else:
            tb.append(0) #若数据位为0,时间为50us低电平+25us高电平=75us
                                #这里取大于100us就为1
#    print(tb)      #反注释可查看每一位状态
    return tb

def GetResult(owpin):
    for i in range(10):
        SH=0;SL=0;TH=0;TL=0;C=0
        result=getval(owpin)
#        print(len(result))
        if len(result)==40:
            for i in range(8):
                #计算每一位的状态,每个字8位,以此为湿度整数,湿度小数,温度整数,温度小数,校验和
                SH*=2;SH+=result[i]
                SL*=2;SL+=result[i+8]
                TH*=2;TH+=result[i+16]
                TL*=2;TL+=result[i+24]
                C*=2;C+=result[i+32]
            if ((SH+SL+TH+TL)%256)==C and C!=0:
                break
            else:
                print("Read Sucess,But checksum error! retrying")
        else:
            print("Read failer! Retrying")
        gpio.delay(200)
    return SH,SL,TH,TL

SH,SL,TH,TL=GetResult(owpin)
print("湿度:",SH,SL,"温度:",TH,TL)

</pre></code>

时间: 2024-10-15 18:26:21

测试发布代码的相关文章

(初学pyton)自己搭建的一套测试自动化发布代码的django

因为这个项目目前就我一个运维在负责,休假后也是因为一些更新的事情找我,感觉是不是应该搭建一个自动化发布平台比较好呢.由于开发语言只学了些python,所以想用django来做. 苦于前端不是很熟,而网上看到一个大神做好的一个框架,所以拿来用下,如果有侵权,请联系我,我立马删除. 这里放下截图,并且说下思路.如果谁有好的解决思路,请告知我. 这里加了个验证码,但是试了好多次,验证码三个字放在输入框前面就会乱了格式,前端好渣. 这里的思路是:git log -1 获取到hash 时间 autor.顺

手游公司运维之利用Rundeck自动化运维工具和Shell脚本构建测试环境代码发布平台和生产环境代码发布平台

在做手游运维工作之前,我接触的代码发布都是常规的软件发布,有固定的发布周期.之前工作的那个外企有严格的发布周期,一年中的所有发布计划都是由Release Manager来控制,每次发布之前都需要做一些准备工作,如填写发布表单,上传发布需要的资源文件,联系发布过程中的相关人员,如开发和测试.最后在公司内部开发的发布平台上按照指定的时间点击鼠标对一个集群内的几台主机或全部主机进行代码发布.这个发布平台还是基于rsync服务实现的.虽然每个星期都有各种服务的发布,但是整个发布流程是可以控制的,并且发布

gitlab和jenkins发布代码

 Gitlab安装 Gitalab是利用发开源应用程序,实现自托管git项目仓库,可通过Web 界面进入访问公开或私人项目能够浏览源代码,管理缺陷和注释 一 :基础环境准备 查看系统信息  cat /etc/redhat-release 安装基础服务 2)安装Gitab-ce 首先先在.etc/yum.repos.d/设置yum源 3)然后继续yum 安装 4)配置启动gitlab 内存给大一点,最少1个G,不然在配置的时候会出现报错,还有就是如果打开界面出现502,请检查80和8080端口是否

jenkins git公有仓库与私有仓库发布代码

1 发布php代码 - jenkins已经搭建完成,现在开始来做一个php发布代码的任务 - 在发布php代码时先看看是否有两个插件 在系统管理-管理插件- 已安装插件- 检查是否有"Git plugin"和"Publish Over SSH"两个插件,如果没有,则需点击"可选插件",找到它并安装 [[email protected] jenkins]# systemctl restart jenkins //重启服务 - 需要生成一对密钥对用来

编写难于测试的代码的5种方式

本文由码农网 – 孙腾浩原创翻译,转载请看清文末的转载要求,欢迎参与我们的付费投稿计划! 有一次,我在一个讲座上听到主持人问听众如何故意编写难于测试的代码.在场的小伙伴都惊呆了,因为没有任何人会故意写这种糟糕的代码.我记得他们甚至给不出一个好的答案. 当然,这个问题的目的不在于教大家如何写使同事欲哭无泪的烂代码.而是为了了解什么样的代码难于测试,来避免这些严重的问题. 这里给出我对上面那个问题的答案(当然这只是我的个人观点,每个人讨厌的都不尽相同.) 1.用大量的静态字段 尤其是在不同类中共享静

git发布代码到github过程和常见错误

在对git有了基本了解之后,并且常常看到很多人在github上发布代码和开源项目时,就会想如何也把自己的代码发布到github上,并能够不断的跟踪版本变化. 现在就有几个想要做的事. 一.如何把自己已经写好的代码发布到github里面? 假设这次第一次把代码发布到github,要对整个过程有个了解,首先在远程上要创建一个仓库,这个仓库是空的,只有初始的README.md,接着在本地的项目目录进行项目初始化(初始化git的项目文件和目录)相当于创建一个本地的仓库,初始化之后就要把项目的文件添加到g

vs2010中使用Nunit测试c#代码结果的正确性

http://www.nunit.org/index.php?p=download 上面地址下载,有安装版的,有直接解压版的,只有里面的nunit.framewor.dll就可以做简单的测试了. 安装版的路径默认为:C:\Program Files \NUnit 2.6\bin\framework\nunit.framewor.dll 从vs2010中直接下载安装插件: 安装完后提示重启vs,然后就可以打开用了,在视图中可以打开: 然后写好测试代码之后,就能够看到结果,不对的话会有相应的错误..

使用JUnit测试java代码

Junit 单元测试实验报告  一.实验环境 MyEclipse2014.Junit4.10 二.实验目的 学会单元测试,在MyEclipse中进行Junit测试 三.实验步骤 1.写出要测试的类 代码如下: package com.cheng.test; public class Calculate { public int add(int a,int b) { return a+b; } public int sub(int a,int b) { return a-2*b;   //bug;

写可测试的代码

任何一个软件都是可以测试.在某种意义上,用户的使用过程也就是一个软件测试的过程.可是这并不是我们今天要讲的可测试性.我们讲的可测试性指的是代码的可测试性,通俗点儿说就是是一串代码里包含的逻辑是不是可以被单元测试所覆盖.在这篇文章里我会从单元测试的基本概念开始引伸到如何写单元测试,如何写可单元测试的代码.文章里所有的例子都是C#写的,一来它是我职业生涯的主力语言.二来C#广为人知,相信对广大职业的或是业余的程序员来说读懂C#的代码不会是什么特别困难的事情.实际上我描述的方法和概念并不会局限于C#或