Python Forum
UART Serial Read & Write to MP3 Player Doesn't Work
Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
UART Serial Read & Write to MP3 Player Doesn't Work
#7
I could not follow the link, so this advise of the uninformed guessing type. I think 170 (0xAA) is a start of packet marker and that the packet ends with some sort of checksum. I am accepting that the play track command is 7 and the read status command is 1. I also accept that the read status command returns 3 bytes.

Instead of looping and peeking at the read buffer I would specify a read timeout when opening the serial port.
"""Sends a  message via serial & receives back information via serial."""

import serial
import time

PLAYING_DONE = bytearray([0, 0, 0])

def write_command(port, command):
    """Write command to serial port"""
    command = [170].extend(command)  # Command packet starts with 0xAA
    command.append(sum(command) % 256)  # Append checksum
    port.write(bytearray(command))

def read_status(port):
    """Read status?  Returns 3L bytearray"""
    write_command(port, [1, 0])
    return port.read(3)

def play_track(port, track_info):
    """Start playing track.  Track is??"""
    write_command(port, [7].extend(track_info))

ser = serial.Serial(
    '/dev/ttyS0',
    baudrate=9600,
    parity=serial.PARITY_NONE,
    stopbits=serial.STOPBITS_ONE,
    bytesize=serial.EIGHTBITS,
    timeout=1)  # 1 second timeout for read

play_track(ser, [2, 0, 4])  # Track info?
playing = None
while playing != PLAYING_DONE:
    time.sleep(1)
    playing = read_status(ser)
    print(f'Status = f{playing}')
ser.close()
Reply


Messages In This Thread
RE: UART Serial Read & Write to MP3 Player Doesn't Work - by deanhystad - Jul-12-2021, 02:59 PM

Possibly Related Threads…
Thread Author Replies Views Last Post
  Extending list doesn't work as expected mmhmjanssen 2 253 May-09-2024, 05:39 PM
Last Post: Pedroski55
  UART write binary code trix 3 395 Apr-28-2024, 04:57 PM
Last Post: deanhystad
  Last record in file doesn't write to newline gonksoup 3 525 Jan-22-2024, 12:56 PM
Last Post: deanhystad
  UART & I2C slow down a loop trix 4 708 Dec-28-2023, 05:14 PM
Last Post: trix
  python Read each xlsx file and write it into csv with pipe delimiter mg24 4 1,671 Nov-09-2023, 10:56 AM
Last Post: mg24
Question Special Characters read-write Prisonfeed 1 683 Sep-17-2023, 08:26 PM
Last Post: Gribouillis
  pyserial/serial "has no attribute 'Serial' " gowb0w 9 5,108 Aug-24-2023, 07:56 AM
Last Post: gowb0w
  Why doesn't calling a parent constructor work with arbitrary keyword arguments? PurposefulCoder 4 1,016 Jun-24-2023, 02:14 PM
Last Post: deanhystad
  How do I read and write a binary file in Python? blackears 6 7,533 Jun-06-2023, 06:37 PM
Last Post: rajeshgk
  Python Serial: How to read the complete line to insert to MySQL? sylar 1 872 Mar-21-2023, 10:06 PM
Last Post: deanhystad

Forum Jump:

User Panel Messages

Announcements
Announcement #1 8/1/2020
Announcement #2 8/2/2020
Announcement #3 8/6/2020