@@ -453,36 +453,32 @@ def _set_rds_station(self, station):
453
453
# Set the RDS station broadcast value.
454
454
station_length = len (station )
455
455
assert 0 <= station_length <= 96
456
- self ._BUFFER [0 ] = _SI4710_CMD_TX_RDS_PS
457
456
# Fire off each 4 byte update of the station value.
458
457
for i in range (0 , station_length , 4 ):
458
+ self ._BUFFER [0 ] = _SI4710_CMD_TX_RDS_PS
459
459
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
464
464
self ._write_from (self ._BUFFER , count = 6 )
465
465
466
466
def _set_rds_buffer (self , rds_buffer ):
467
467
# Set the RDS buffer broadcast value.
468
468
buf_length = len (rds_buffer )
469
469
# 53 blocks in the circular buffer, each 2 bytes long.
470
470
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
476
471
# Fire off each 4 byte update of the station value.
477
472
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
478
476
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
483
481
self ._write_from (self ._BUFFER , count = 8 )
484
- # Make sure to turn off empty bit for next requests.
485
- self ._BUFFER [1 ] = 0x04
486
482
487
483
rds_station = property (None , _set_rds_station , None ,
488
484
"""Set the RDS broadcast station to the specified
0 commit comments