前提・実現したいこと
プログラム初心者です。
GPSモジュールを使用し、緯度経度の計測をしているのですが最初はprint文で出力していたのですが、今回ログファイルに緯度経度を出力したく、実行してみたところこの様なエラー文がでました。なぜこの様なエラー文が出るのか是非教えていただきたいです。
発生している問題・エラーメッセージ
TypeError: log() missing 1 required positional argument: 'msg'
該当のソースコード
Python3
1import serial 2import micropyGPS 3import threading 4import time 5import logging 6 7#ログの出力名を設定する 8logger = logging.getLogger('GPSTest') 9 10# 11logger.setLevel(10) 12 13# 14fh = logging.FileHandler('GPS.log') 15logger.addHandler(fh) 16 17gps = micropyGPS.MicropyGPS(9, 'dd') # MicroGPSオブジェクトを生成する。 18 # 引数はタイムゾーンの時差と出力フォーマット 19 20def rungps(): # GPSモジュールを読み、GPSオブジェクトを更新する 21 s = serial.Serial('/dev/serial0', 9600, timeout=10) 22 s.readline() # 最初の1行は中途半端なデーターが読めることがあるので、捨てる 23 while True: 24 sentence = s.readline().decode('utf-8') # GPSデーターを読み、文字列に変換する 25 if sentence[0] != '$': # 先頭が'$'でなければ捨てる 26 continue 27 for x in sentence: # 読んだ文字列を解析してGPSオブジェクトにデーターを追加、更新する 28 gps.update(x) 29 30gpsthread = threading.Thread(target=rungps, args=()) # 上の関数を実行するスレッドを生成 31gpsthread.daemon = True 32gpsthread.start() # スレッドを起動 33 34while True: 35 if gps.clean_sentences > 1: # ちゃんとしたデーターがある程度たまったら出力する 36 #h = gps.timestamp[0] if gps.timestamp[0] < 24 else gps.timestamp[0] - 24 37 #print('%2d:%02d:%04.1f' % (h, gps.timestamp[1], gps.timestamp[2])) 38 latlon = (gps.latitude[0], gps.longitude[0]) 39 logger.log(latlon) 40 #rint('海抜: %f' % gps.altitude) 41 #rint(gps.satellites_used) 42 #rint ('衛星番号: (仰角, 方位角, SN比)') 43 for k, v in gps.satellite_data.items(): 44 print('%d: %s' % (k, v)) 45 print('') 46 time.sleep(3.0)
試したこと
先に緯度経度だけ欲しいので他の出力はコメントアウトしました。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/11/22 12:53