@@ -75,30 +75,29 @@ def file_handle( self, path, mode, reopen=False ):
7575
7676 return f
7777
78- def read (self , path , size = - 1 ):
78+ def read (self , path ):
7979 f = self .file_handle (path , 'r' )
8080
8181 try :
82- value = f .read (size )
82+ f .seek (0 )
83+ value = f .readline ()
8384 except IOError :
8485 f = self .file_handle ( path , 'w+' , reopen = True )
85- value = f .read ( size )
86+ value = f .readline ( )
8687
87- if size < 0 :
88- return value .strip ()
89- else :
90- return value
88+ return value .strip ()
9189
9290 def write (self , path , value ):
9391 f = self .file_handle ( path , 'w' )
9492
9593 try :
94+ f .seek (0 )
9695 f .write ( value )
97- f .flush ()
9896 except IOError :
9997 f = self .file_handle ( path , 'w+' , reopen = True )
10098 f .write ( value )
101- f .flush ()
99+
100+ f .flush ()
102101
103102
104103#------------------------------------------------------------------------------
@@ -157,9 +156,9 @@ def _matches(self, attribute, pattern):
157156 else :
158157 return value .find (pattern ) >= 0
159158
160- def _get_attribute ( self , attribute , size = - 1 ):
159+ def _get_attribute ( self , attribute ):
161160 """Device attribute getter"""
162- return self ._attribute_cache .read (abspath (self ._path + '/' + attribute ), size )
161+ return self ._attribute_cache .read (abspath (self ._path + '/' + attribute ))
163162
164163 def _set_attribute ( self , attribute , value ):
165164 """Device attribute setter"""
@@ -1291,7 +1290,9 @@ def bin_data(self, fmt=None):
12911290 "float" : 4
12921291 }.get (self .bin_data_format , 1 ) * self .num_values
12931292
1294- raw = bytearray (self ._get_attribute ('bin_data' , self ._bin_data_size ))
1293+ f = self ._attribute_cache .file_handle (abspath (self ._path + '/bin_data' ), 'rb' )
1294+ f .seek (0 )
1295+ raw = bytearray (f .read (self ._bin_data_size ))
12951296
12961297 if fmt is None : return raw
12971298
0 commit comments