@@ -535,6 +535,10 @@ def _getDeviceList(self):
535535
536536 for i , dev in enumerate (AvsDevList ):
537537
538+ logger_ASH .debug (
539+ "Connecting with {}" .format (dev .m_aUserFriendlyId )
540+ )
541+
538542 # As defined above, AvsDevList is an array of c_AvsIdentityType
539543 # thus we initialize each AvaSpec.
540544 # Some tests showed that DLL may be "lazy".
@@ -543,11 +547,29 @@ def _getDeviceList(self):
543547 # Further tests are needed to determine if this event happens for
544548 # every AvaSpec or only for Double-Channel ones.
545549
546- if i != 0 : # We patch beforehand identified problem.
547- begin = AvsDevList [0 ].m_aSerialId [:- 4 ]
550+ # We patch beforehand identified problem.
551+ if i != 0 and len (dev .m_aSerialId ) != 9 :
552+
553+ logger_ASH .debug (
554+ "Wrong ID detected : {}" .format (dev .m_aSerialId )
555+ )
556+ begin = AvsDevList [i - 1 ].m_aSerialId [:- 4 ]
548557 dev .m_aSerialId = begin + dev .m_aSerialId
549558 dev .m_aUserFriendlyId = begin + dev .m_aUserFriendlyId
550- avs_handle = AVS_DLL .AVS_Activate (ctypes .byref (dev ))
559+
560+ logger_ASH .debug (
561+ "Attempted to fix it : {}" .format (dev .m_aSerialId )
562+ )
563+
564+ avs_handle = AVS_DLL .AVS_Activate (ctypes .byref (dev ))
565+ else :
566+ avs_handle = AVS_DLL .AVS_Activate (ctypes .byref (dev ))
567+
568+ logger_ASH .debug (
569+ "Connected with {} with handle {}" .format (
570+ dev .m_aUserFriendlyId , avs_handle
571+ )
572+ )
551573 devDict [avs_handle ] = \
552574 (bytes .decode (dev .m_aUserFriendlyId ), Callback_Measurment ())
553575 AVS_DLL .AVS_SetSyncMode (avs_handle , 0 )
@@ -937,7 +959,7 @@ def getInterpolated(self, startingLamb=None, endingLamb=None,
937959 # an error.
938960 if startingLamb < self .lambdas [0 ] or endingLamb > self .lambdas [- 1 ]\
939961 or startingLamb > endingLamb or polDegree >= windowSize :
940-
962+
941963 startingLamb = self .lambdas [0 ]
942964 endingLamb = self .lambdas [- 1 ]
943965 nrPoints = len (self .lambdas )
0 commit comments