Skip to content

Commit a44f6a1

Browse files
committed
Merge pull request #32 from ddemidov/master
Get rid of size parameter in FileCache.read
2 parents 91bfa71 + c9b6d35 commit a44f6a1

File tree

1 file changed

+13
-12
lines changed

1 file changed

+13
-12
lines changed

ev3dev.py

Lines changed: 13 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)