2017-11-15 11 views
-1

GPSデータ(longitude, latitude)をPythonソケットを使用して送信します。私はそれを実行するたびにエラーが発生し、私のコードは正しいですか?ありがとうございました。データが距離として処理されるため、私は自分のGPSデータを他のサーバーに送信したいと思います。Pythonソケットを使用してGPSデータを転送する方法

import serial 
import math 
import socket 
gps = serial.Serial("/dev/ttyUSB0", baudrate=4800) 
HOST = '192.168.10.1' 
PORT = 4444 
BUFFER_SIZE=1024 


def longlat(): 
    global lon 
    global lat 
    while True: 
     line = gps.readline() 
     data = line.split(",") 
     if data[0] == "$GPRMC": 
      if data[2]== 'A': 
       latgps = float(data[3]) 
       if data[4]=='S': 
        latgps = -latgps 

       latdeg = int(latgps/100) 
       latmin = latgps - latdeg*100 
       lat = latdeg+(latmin/60) 

       longps = float(data[5]) 
       if data[6]=='W': 
        longps = -longps 

       londeg = int(longps/100) 
       lonmin = longps - londeg*100 
       lon = londeg+(lonmin/60) 


longlat() 
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) 
s.connect((HOST,PORT)) 
s.send(lon,lat) 
data = s.recv(BUFFER_SIZE) 
+1

エラーの内容を教えてください... –

答えて

0

私はこのコード

import time 
from socket import * 

import serial 

host = '192.168.11.11' 
gps = serial.Serial("/dev/ttyUSB0",baudrate=4800) 
port = 4444 
bufsize = 1024 
addr = (host, port) 
client = socket(AF_INET, SOCK_STREAM) 
client.connect(addr) 
while True: 
    global lon 
    global lat 
    line = gps.readline() 
    data = line.split(",") 
    if data[0] == "$GPRMC": 
     if data[2] == 'A': 
      latgps = float(data[3]) 
      if data[4] == 'S': 
       latgps = -latgps 

      latdeg = int(latgps/100) 
      latmin = latgps - latdeg * 100 
      lat = latdeg + (latmin/60) 

      longps = float(data[5]) 
      if data[6] == 'W': 
       longps = -longps 

      londeg = int(longps/100) 
      lonmin = longps - londeg * 100 
      lon = londeg + (lonmin/60) 
    # for i in range(1, 5): 
    data = "" 
    for j in range(1, 20000): 
     rlt = lon 
     data = rlt 
    client.sendall(data[:-1]) 
    print ("client send data to server") 
    time.sleep(5) 
    # break 
client.close() 

と私のコードを変更し、私は多分あなたは解決策を持っているエラーNameError: global name 'lon' is not defined を得ましたか。