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
#9
Why do you think my code throws the error? Do you know what a "TypeError" is? Why is this error raised when "command" is a NoneType? How do you think a NoneType got passed to "write_command()"?

All the above questions are things a new Python programmer should be able to answer with a little bit of digging.

A few hints. The error has nothing to do with the while loop. Look at what the list.extend() command takes as an argument and what it returns.

Corrected code is below. There was also an error in the print command.
"""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] + command  # Command packet starts with 0xAA
    command.append(sum(command) % 256)  # Append checksum
    print('Command = ', command)  # For debugging purposes
    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] + track_info)

ser = serial.Serial(
    'COM3:',   # Serial port on my computer
    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 = {playing}')
ser.close()
Reply


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

Possibly Related Threads…
Thread Author Replies Views Last Post
  Delete file with read-only permission, but write permission to parent folder cubei 6 22,371 Jun-01-2024, 07:22 AM
Last Post: Eleanorreo
  Extending list doesn't work as expected mmhmjanssen 2 350 May-09-2024, 05:39 PM
Last Post: Pedroski55
  UART write binary code trix 3 477 Apr-28-2024, 04:57 PM
Last Post: deanhystad
  Last record in file doesn't write to newline gonksoup 3 592 Jan-22-2024, 12:56 PM
Last Post: deanhystad
  UART & I2C slow down a loop trix 4 771 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,815 Nov-09-2023, 10:56 AM
Last Post: mg24
Question Special Characters read-write Prisonfeed 1 721 Sep-17-2023, 08:26 PM
Last Post: Gribouillis
  pyserial/serial "has no attribute 'Serial' " gowb0w 9 5,695 Aug-24-2023, 07:56 AM
Last Post: gowb0w
  Why doesn't calling a parent constructor work with arbitrary keyword arguments? PurposefulCoder 4 1,078 Jun-24-2023, 02:14 PM
Last Post: deanhystad
  How do I read and write a binary file in Python? blackears 6 8,138 Jun-06-2023, 06:37 PM
Last Post: rajeshgk

Forum Jump:

User Panel Messages

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