@@ -556,55 +556,72 @@ def open_rtltcp(self, host, port):
556
556
if result != 0 :
557
557
raise NRSC5Error ("Failed to open rtl_tcp." )
558
558
self ._set_callback ()
559
+
560
+ def _check_session (self ):
561
+ if not self .radio :
562
+ raise NRSC5Error ("No session opened. Call open(), open_pipe(), or open_rtltcp() first." )
559
563
560
564
def close (self ):
565
+ self ._check_session ()
561
566
NRSC5 .libnrsc5 .nrsc5_close (self .radio )
567
+ self .radio = ctypes .c_void_p ()
562
568
563
569
def start (self ):
570
+ self ._check_session ()
564
571
NRSC5 .libnrsc5 .nrsc5_start (self .radio )
565
572
566
573
def stop (self ):
574
+ self ._check_session ()
567
575
NRSC5 .libnrsc5 .nrsc5_stop (self .radio )
568
576
569
577
def set_mode (self , mode ):
578
+ self ._check_session ()
570
579
NRSC5 .libnrsc5 .nrsc5_set_mode (self .radio , mode .value )
571
580
572
581
def set_bias_tee (self , on ):
582
+ self ._check_session ()
573
583
result = NRSC5 .libnrsc5 .nrsc5_set_bias_tee (self .radio , on )
574
584
if result != 0 :
575
585
raise NRSC5Error ("Failed to set bias-T." )
576
586
577
587
def set_direct_sampling (self , on ):
588
+ self ._check_session ()
578
589
result = NRSC5 .libnrsc5 .nrsc5_set_direct_sampling (self .radio , on )
579
590
if result != 0 :
580
591
raise NRSC5Error ("Failed to set direct sampling." )
581
592
582
593
def set_freq_correction (self , ppm_error ):
594
+ self ._check_session ()
583
595
result = NRSC5 .libnrsc5 .nrsc5_set_freq_correction (self .radio , ppm_error )
584
596
if result != 0 :
585
597
raise NRSC5Error ("Failed to set frequency correction." )
586
598
587
599
def get_frequency (self ):
600
+ self ._check_session ()
588
601
frequency = ctypes .c_float ()
589
602
NRSC5 .libnrsc5 .nrsc5_get_frequency (self .radio , ctypes .byref (frequency ))
590
603
return frequency .value
591
604
592
605
def set_frequency (self , freq ):
606
+ self ._check_session ()
593
607
result = NRSC5 .libnrsc5 .nrsc5_set_frequency (self .radio , ctypes .c_float (freq ))
594
608
if result != 0 :
595
609
raise NRSC5Error ("Failed to set frequency." )
596
610
597
611
def get_gain (self ):
612
+ self ._check_session ()
598
613
gain = ctypes .c_float ()
599
614
NRSC5 .libnrsc5 .nrsc5_get_gain (self .radio , ctypes .byref (gain ))
600
615
return gain .value
601
616
602
617
def set_gain (self , gain ):
618
+ self ._check_session ()
603
619
result = NRSC5 .libnrsc5 .nrsc5_set_gain (self .radio , ctypes .c_float (gain ))
604
620
if result != 0 :
605
621
raise NRSC5Error ("Failed to set gain." )
606
622
607
623
def set_auto_gain (self , enabled ):
624
+ self ._check_session ()
608
625
NRSC5 .libnrsc5 .nrsc5_set_auto_gain (self .radio , int (enabled ))
609
626
610
627
def _set_callback (self ):
0 commit comments