通过WiFi发送数据时,要是给他定时一定时间之后再发送数据,在浏览器输入的网址进行刷新,总是进不去
-
代码并没有报错,只是在数据传输的时候浏览器刷新不出来。
请在这里粘贴代码import sensor, image, time, network, usocket, sys, json wlan = network.WINC() print("\nFirmware version:", wlan.fw_version()) while(True): while (True): i=0 RSSI = [] scan_result = wlan.scan() for ap in scan_result: print("Channel:%d RSSI:%d Auth:%d BSSID:%s SSID:%s"%(ap)) a=scan_result[i][1] i=i+1 RSSI.append(a) #print("所有的信号强度:%s"%(RSSI)) MAXRSSI = max(RSSI) c=RSSI.index(max(RSSI)) #print("ap的索引:%d"%(c)) b=scan_result[c][3] d=scan_result[c][4] print("最强信号的SSID名称:%s"%(d),"最强信号的MAC地址:%s"%(b),"信号最强:%d"%(MAXRSSI)) time.sleep(7000) SSID=d KEY='12345678' wlan.connect(SSID, key=KEY, security=wlan.WPA_PSK) print("当前所连接的WIFI信息:%s"%(wlan.ifconfig())) print() break # We should have a valid IP now via DHCP print(wlan.ifconfig()) # Create server socket s = usocket.socket(usocket.AF_INET, usocket.SOCK_STREAM) def response(s): print ('Waiting for connections..') client, addr = s.accept() # set client socket timeout to 2s client.settimeout(2.0) print ('Connected to ' + addr[0] + ':' + str(addr[1])) # Read request from client data = client.recv(1024) # Should parse client request here # Send multipart header client.send("HTTP/1.1 200 OK\r\n" \ "Server: OpenMV\r\n" \ "Content-Type: application/json\r\n" \ "Cache-Control: no-cache\r\n" \ "Pragma: no-cache\r\n\r\n") client.send(json.dumps(b)) client.close() while (True): # Create server socket s = usocket.socket(usocket.AF_INET, usocket.SOCK_STREAM) try: # Bind and listen HOST ='0.0.0.0' # Use first available interface PORT = 8080 # Arbitrary non-privileged port s.bind([HOST, PORT]) s.listen(5) # Set server socket timeout # NOTE: Due to a WINC FW bug, the server socket must be closed and reopened if # the client disconnects. Use a timeout here to close and re-create the socket. s.settimeout(3) response(s) except OSError as e: s.close() print("socket error: ", e) #sys.print_exception(e) time.sleep(60000) break
-
在执行完第一个break的时候,好像得需要等一段时间才能执行下面的代码,这是怎么回事,该怎样改进呢
-
定时一定时间之后再发送数据
是什么意思
-
是最后一个 while break,让它这个数据传送持续一段时间,之后再从头开始执行
-
break是跳出循环。和持续一段时间没关系。
-
我的意思是想先循环一段时间再从头开始执行
-
我不懂你要做什么。
-
我这是个定位的程序,通过scan扫描连接最近的WiFi,然后将麦克地址在浏览器查看,过一段时间传送一次。但是现在出现了上面的问题请问怎么解决。
-
过一段时间传送一次是什么意思。
只能是浏览器发出请求,OpenMV检查到请求再处理回应。这个过程没有“过一段时间传送一次”的情况。
-
第一次浏览器可以成功查看,当第二次扫描,然后连接到最强的WiFi,这时浏览器上刷新不出来,无法查看到连接最新的麦克地址