• 移远EC600U-CN开发板 11.22


    主界面功能按键:

    1.打开端口按钮:

    1. uart1 = UART(UART.UART2,9600, 8, parity, 1, 0) #构造串口对象
    2. def OpenEvent(evt):
    3. global uart1
    4. openBtn = evt.get_code()
    5. if openBtn == lv.EVENT.CLICKED:
    6. if labelOpenBtn.get_text() == "打开端口":
    7. uart1 = UART(UART.UART2,int(baudRate.get_text()), int(dataBits.get_text()), parity, int(stopBits.get_text()), 0)
    8. labelOpenBtn.set_text("关闭端口")
    9. else:
    10. uart1.close()
    11. labelOpenBtn.set_text("打开端口")
    12. openBtn = lv.btn(mainInterface)
    13. openBtn.align(lv.ALIGN.TOP_RIGHT,-20,30)
    14. labelOpenBtn = lv.label(openBtn)
    15. labelOpenBtn.set_text('打开端口')
    16. openBtn.add_event_cb(OpenEvent,lv.EVENT.ALL,None)

    2.历史记录按钮

    1. def event_handler2(evt):
    2. code = evt.get_code()
    3. if code == lv.EVENT.VALUE_CHANGED:
    4. source = evt.get_current_target()
    5. date = lv.calendar_date_t()
    6. if source.get_pressed_date(date) == lv.RES.OK:
    7. calendar.set_today_date(date.year, date.month, date.day)
    8. chart = lv.chart(historyInterface)
    9. chart.set_size(200, 150)
    10. chart.align(lv.ALIGN.RIGHT_MID,0,0)
    11. chart.set_type(lv.chart.TYPE.LINE) # Show lines and points too
    12. # Add two data series
    13. ser1 = chart.add_series(lv.palette_main(lv.PALETTE.RED), lv.chart.AXIS.PRIMARY_Y)
    14. ser2 = chart.add_series(lv.palette_main(lv.PALETTE.GREEN), lv.chart.AXIS.SECONDARY_Y)
    15. print(ser2)
    16. # Set next points on ser1
    17. chart.set_next_value(ser1,10)
    18. chart.set_next_value(ser1,10)
    19. chart.set_next_value(ser1,10)
    20. chart.set_next_value(ser1,10)
    21. chart.set_next_value(ser1,10)
    22. chart.set_next_value(ser1,10)
    23. chart.set_next_value(ser1,10)
    24. chart.set_next_value(ser1,30)
    25. chart.set_next_value(ser1,70)
    26. chart.set_next_value(ser1,90)
    27. # Directly set points on 'ser2'
    28. ser2.y_points = [90, 70, 65, 65, 65, 65, 65, 65, 65, 65]
    29. chart.refresh() # Required after direct set
    30. def historyEvent(evt):
    31. code = evt.get_code()
    32. if code == lv.EVENT.CLICKED:
    33. lv.scr_load(historyInterface)
    34. historyBtn = lv.btn(mainInterface) #历史记录按钮
    35. historyBtn.align(lv.ALIGN.BOTTOM_LEFT,20,-40)
    36. labelHistoryBtn = lv.label(historyBtn)
    37. labelHistoryBtn.set_text('历史记录')
    38. historyBtn.add_event_cb(historyEvent, lv.EVENT.ALL, None)

    3.获取数据按钮 

    1. def getData(evt):
    2. global uart1
    3. getDataBtn = evt.get_code()
    4. if getDataBtn == lv.EVENT.CLICKED:
    5. uart1.write("\x03\x03\x00\x40\x00\x04""44\x3F")
    6. time.sleep(1)
    7. arr = uart1.read(13)
    8. for i in arr:
    9. print(((hex(int(i))).upper()[2:]),end=' ')
    10. zhuodu = int(str((hex(int(arr[3]))).upper()[2:])+str((hex(int(arr[4]))).upper()[2:])+str((hex(int(arr[5]))).upper()[2:])+str((hex(int(arr[6]))).upper()[2:]),16)
    11. zengyi = int(str((hex(int(arr[7]))).upper()[2:])+str((hex(int(arr[8]))).upper()[2:])+str((hex(int(arr[9]))).upper()[2:])+str((hex(int(arr[10]))).upper()[2:]),16)
    12. print(zhuodu)
    13. label.set_text(str(zhuodu/1000))
    14. averageTurbidityValue.set_value(int(zhuodu/10))
    15. print(zengyi)
    16. label3.set_text(str(zengyi))
    17. averageGainValue.set_value(int(zengyi/1000))
    18. time.sleep(1)
    19. averageTurbidityValue = lv.arc(mainInterface) #平均浊度值弧
    20. averageTurbidityValue.set_end_angle(200)
    21. averageTurbidityValue.set_size(150,150)
    22. averageTurbidityValue.align(lv.ALIGN.CENTER,-120,0)
    23. averageTurbidityValue.add_event_cb(event_cb, lv.EVENT.VALUE_CHANGED, None)
    24. averageTurbidityValue.set_range(0,3000)
    25. label = lv.label(averageTurbidityValue)
    26. label2 = lv.label(mainInterface)
    27. label2.align(lv.ALIGN.CENTER,-120,0)
    28. label2.set_text("平均浊度值")
    29. averageGainValue = lv.arc(mainInterface) #平均增益值弧
    30. averageGainValue.set_size(150,150)
    31. averageGainValue.align(lv.ALIGN.CENTER,120,0)
    32. averageGainValue.add_event_cb(event_cb1, lv.EVENT.VALUE_CHANGED, None)
    33. averageGainValue.set_range(0,200000)
    34. label3 = lv.label(averageGainValue)
    35. getDataBtn = lv.btn(mainInterface) #获取数据按钮
    36. getDataBtn.align(lv.ALIGN.BOTTOM_MID,0,-40)
    37. getDataBtnLabel = lv.label(getDataBtn)
    38. getDataBtnLabel.set_text('获取数据')
    39. getDataBtn.add_event_cb(getData,lv.EVENT.ALL, None)

  • 相关阅读:
    【C++STL基础入门】list改、查操作
    milvus upsert流程源码分析
    wirehark数据分析与取证hack.pcapng
    【React】第二部分 面向组件编程
    初刷leetcode题目(4)——数据结构与算法
    C# WPF 开发一个 Emoji 表情查看软件
    [附源码]java毕业设计医院预约挂号管理系统
    java-net-php-python-ssm巴音学院本科部校园网站计算机毕业设计程序
    前端设计模式和设计原则之设计原则
    Python数据容器(字符串)
  • 原文地址:https://blog.csdn.net/qq_40501067/article/details/134551613