Skip to content

Commit 71c5a54

Browse files
authored
Merge pull request #7 from caternuson/iss2_rds
Some RDS fixes
2 parents a8d990a + 442759f commit 71c5a54

File tree

1 file changed

+12
-16
lines changed

1 file changed

+12
-16
lines changed

adafruit_si4713.py

Lines changed: 12 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -453,36 +453,32 @@ def _set_rds_station(self, station):
453453
# Set the RDS station broadcast value.
454454
station_length = len(station)
455455
assert 0 <= station_length <= 96
456-
self._BUFFER[0] = _SI4710_CMD_TX_RDS_PS
457456
# Fire off each 4 byte update of the station value.
458457
for i in range(0, station_length, 4):
458+
self._BUFFER[0] = _SI4710_CMD_TX_RDS_PS
459459
self._BUFFER[1] = i // 4
460-
self._BUFFER[2] = station[i] if i < station_length else ' '
461-
self._BUFFER[3] = station[i+1] if i+1 < station_length else ' '
462-
self._BUFFER[4] = station[i+2] if i+2 < station_length else ' '
463-
self._BUFFER[5] = station[i+3] if i+3 < station_length else ' '
460+
self._BUFFER[2] = station[i] if i < station_length else 0x00
461+
self._BUFFER[3] = station[i+1] if i+1 < station_length else 0x00
462+
self._BUFFER[4] = station[i+2] if i+2 < station_length else 0x00
463+
self._BUFFER[5] = station[i+3] if i+3 < station_length else 0x00
464464
self._write_from(self._BUFFER, count=6)
465465

466466
def _set_rds_buffer(self, rds_buffer):
467467
# Set the RDS buffer broadcast value.
468468
buf_length = len(rds_buffer)
469469
# 53 blocks in the circular buffer, each 2 bytes long.
470470
assert 0 <= buf_length <= 106
471-
self._BUFFER[0] = _SI4710_CMD_TX_RDS_BUFF
472-
self._BUFFER[1] = 0x06 # Clear the buffer and start update with first
473-
# request, then future requests will turn off
474-
# the empty bit to continue setting data.
475-
self._BUFFER[2] = 0x20
476471
# Fire off each 4 byte update of the station value.
477472
for i in range(0, buf_length, 4):
473+
self._BUFFER[0] = _SI4710_CMD_TX_RDS_BUFF
474+
self._BUFFER[1] = 0x06 if i == 0 else 0x04
475+
self._BUFFER[2] = 0x20
478476
self._BUFFER[3] = i // 4
479-
self._BUFFER[4] = rds_buffer[i] if i < buf_length else ' '
480-
self._BUFFER[5] = rds_buffer[i+1] if i+1 < buf_length else ' '
481-
self._BUFFER[6] = rds_buffer[i+2] if i+2 < buf_length else ' '
482-
self._BUFFER[7] = rds_buffer[i+3] if i+3 < buf_length else ' '
477+
self._BUFFER[4] = rds_buffer[i] if i < buf_length else 0x00
478+
self._BUFFER[5] = rds_buffer[i+1] if i+1 < buf_length else 0x00
479+
self._BUFFER[6] = rds_buffer[i+2] if i+2 < buf_length else 0x00
480+
self._BUFFER[7] = rds_buffer[i+3] if i+3 < buf_length else 0x00
483481
self._write_from(self._BUFFER, count=8)
484-
# Make sure to turn off empty bit for next requests.
485-
self._BUFFER[1] = 0x04
486482

487483
rds_station = property(None, _set_rds_station, None,
488484
"""Set the RDS broadcast station to the specified

0 commit comments

Comments
 (0)