找回密码
 立即注册

扫一扫,访问微社区

QQ登录

只需一步,快速开始

查看: 3419|回复: 0

[求助] python3 curses 问题

1

主题

1

帖子

5

积分

贫民

积分
5
shi 发表于 2014-7-23 10:54:36 | 显示全部楼层 |阅读模式

try:
    myscreen = curses.initscr() #初始化curses
    myscreen.border(0)
    (screen_h, screen_w) = myscreen.getmaxyx() #获得屏幕高宽
    curses.start_color() #设置颜色
    curses.init_pair(1, curses.COLOR_BLACK, curses.COLOR_GREEN) #绿底黑字
    curses.init_pair(2, curses.COLOR_RED, curses.COLOR_BLACK) #白底蓝字
    curses.init_pair(3, curses.COLOR_MAGENTA,curses.COLOR_BLACK) #黑底什么字

  myscreen.clear() #清除画布

  # 计算每块的坐标, 屏幕分3列, 每列显示一个传感器
    col1 = screen_w / 3 * 0
    col2 = screen_w / 3 * 1
    col3 = screen_w / 3 * 2

  # 屏幕横向分三块,每块中间写上标题
    myscreen.addstr(0, int(col1 + screen_w / 3 / 2 - 3), "IGT3205", lor_pair(1))
    myscreen.addstr(0, int(col2 + screen_w / 3 / 2 - 4), "ADXL345", lor_pair(1))
    myscreen.addstr(0, int(col3 + screen_w / 3 / 2 - 4), "HMC5883L", lor_pair(1))

  #画分割线,把屏幕分为3列
    for col in range(1, screen_h):
        myscreen.addstr(col, int(col2), "│")
        myscreen.addstr(col, int(col3), "│")

  # 事先打印IGT3205的各项值的名称
    myscreen.addstr(1, int(col1), "Temp:", lor_pair(2))
    myscreen.addstr(2, int(col1), "X   :", lor_pair(2))
    myscreen.addstr(3, int(col1), "Y   :", lor_pair(2))
    myscreen.addstr(4, int(col1), "z   :", lor_pair(2))

  # 事先打印ADXL345的各项值的名称
    myscreen.addstr(1, int(col2) + 1, "X:", lor_pair(2))
    myscreen.addstr(2, int(col2) + 1, "Y:", lor_pair(2))
    myscreen.addstr(3, int(col2) + 1, "z:", lor_pair(2))

  # 事先打印HMC5883L的各项值的名称
    myscreen.addstr(1, int(col3) + 1, "Heading:    ", lor_pair(2))
    myscreen.addstr(2, int(col3) + 1, "Declination:", lor_pair(2))
    myscreen.addstr(3, int(col3) + 1, "X:          ", lor_pair(2))
    myscreen.addstr(4, int(col3) + 1, "Y:          ", lor_pair(2))
    myscreen.addstr(5, int(col3) + 1, "z:          ", lor_pair(2))

  # 初始化传感器
    itg3205 = i2c_itg3205.i2c_itg3205(0)

  adxl345 = i2c_adxl345.i2c_adxl345(0)

  hmc5883l = i2c_hmc5883l.i2c_hmc5883l(0)
    hmc5883l.setContinuousMode() #设置为持续更新模式
    hmc5883l.setDeclination(9,54) #设置真北磁偏角补偿

  while True:
        #读取itg3205数据
        (itgready, dataready) = itg3205.getInterruptStatus()   
        if dataready:
            temp = itg3205.getDieTemperature()
            (x, y, z) = itg3205.getDegPerSecAxes()
            displayITG3205(myscreen, 6, temp, x, y, z) #刷新画布

  #读取adxl345数据
        (x, y, z) = adxl345.getAxes()
        displayADXL345(myscreen, int(col2) + 4, x, y, z) #刷新画布

  #读取hmc5883l数据
        (x, y, z) = hmc5883l.getAxes()
        heading = hmc5883l.getHeadingString() #获取指向角度
        declination = hmc5883l.getDeclinationString() #获取磁偏角补偿信息
        displayHMC5883L(myscreen, int(col3) + 13, heading, declination, x, y, z) #刷新画布

  myscreen.refresh() #应用画布
        sleep(0.1) #暂停0.1秒

  myscreen.getch()

  finally:
    curses.endwin()


curses .error: must call iniscr() first

有iniscr()还出现这个问题,求解,急


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表