• 免费好用的星瞳AI云服务上线!简单标注,云端训练,支持OpenMV H7和OpenMV H7 Plus。可以替代edge impulse。 https://forum.singtown.com/topic/9519
  • 我们只解决官方正版的OpenMV的问题(STM32),其他的分支有很多兼容问题,我们无法解决。
  • 如果有产品硬件故障问题,比如无法开机,论坛很难解决。可以直接找售后维修
  • 发帖子之前,请确认看过所有的视频教程,https://singtown.com/learn/ 和所有的上手教程http://book.openmv.cc/
  • 每一个新的提问,单独发一个新帖子
  • 帖子需要目的,你要做什么?
  • 如果涉及代码,需要报错提示全部代码文本,请注意不要贴代码图片
  • 必看:玩转星瞳论坛了解一下图片上传,代码格式等问题。
  • WiFi模块发布图象网页,可以用非阻塞链接吗?



    • 买了WiFi模块,用IDE自带例程没问题,根据文档可以用非阻塞链接,并推荐用select的Poll类,我的代码:

      # MJPEG Streaming
      #
      # This example shows off how to do MJPEG streaming to a FIREFOX webrowser
      # Chrome, Firefox and MJpegViewer App on Android have been tested.
      # Connect to the IP address/port printed out from ifconfig to view the stream.
      
      import sensor, image, time, network, usocket, sys
      import select
      
      SSID ='ZhaoBao'     # Network SSID
      KEY  ='19431121'     # Network key
      HOST ='192.168.1.30'     # Use first available interface
      PORT = 8080  # Arbitrary non-privileged port
      
      # Reset sensor
      sensor.reset()
      sensor.set_framesize(sensor.QQVGA)
      sensor.set_pixformat(sensor.RGB565)
      
      gs = []
      
      # Init wlan module and connect to network
      print("Trying to connect... (may take a while)...")
      wlan = network.WINC()
      wlan.ifconfig(('192.168.1.30', '255.255.255.0', '192.168.1.1', '192.168.1.1'))
      wlan.connect(SSID, key=KEY, security=wlan.WPA_PSK)
      
      # We should have a valid IP now via DHCP
      print(wlan.ifconfig())
      
      # Create server socket
      s = usocket.socket(usocket.AF_INET, usocket.SOCK_STREAM)
      
      # Bind and listen
      s.bind([HOST, PORT])
      gs.append(s)
      s.listen(5)
      
      # Set server socket to blocking
      s.setblocking(False)
      p = select.poll()
      p.register(s)
      
      while (True):
          try:
              events = p.poll(900)
              if (len(events) > 0):
                  print(events)
                  for fd,event in events:
                      if fd in gs:
                          c,addr = s.accept()
                          print('got connection from',addr)
                          p.register(c,select.POLLIN)
                          gs[0] = c
                      elif event & select.POLLIN:
                          data = c.recv[1024]
                          if not data:
                              print(c.getpeername,'disconnected')
                              p.unregister(c)
                              del gs[0]
                          else:
                              print (data)
          except OSError as e:
              print("poll error:",e)
              continue
      

      但是执行到”events = p.poll(900)“都出错[Error 5] EIO,是不是系统不支持呀?
      请教哪位老师帮助检查一下问题出错在哪里呢?谢谢了!



    • 不能用poll。非阻塞,就是如果没有连接就返回错误或者空,需要自己轮询。