#!/usr/bin/env python3 import logging import serial import time # ログ出力設定 log_name = '/home/lithium_battery/serial_output.log' logging.basicConfig(level=logging.INFO, filename=log_name, format='%(asctime)s:%(levelname)s:%(message)s') logger = logging.getLogger('AppTrace') # シリアル通信のデータを読み取る def read_serial(): COM = '/dev/ttymxc2' # シリアルポート bitrate = 115200 # シリアル通信ビットレート try: while True: try: # 0.1秒毎にデータを読み取る with serial.Serial(COM, bitrate, timeout=1) as ser: logger.info('シリアル通信再接続成功') battery_input = ser.read_until(b'\r') if b'\x03' in battery_input: break logger.info(f'シリアルデータ:{battery_input}') battery_input = battery_input.decode('utf-8') logger.info(f'シリアルデータ:{battery_input}') except serial.serialutil.SerialException: logger.error('シリアル通信接続失敗') finally: time.sleep(0.1) except KeyboardInterrupt: logger.error("キーボード入力で停止されました。") def main(): read_serial() if __name__ == '__main__': main()