@@ -82,7 +82,8 @@ def __allocated_memory(self, offset):
8282 Return:
8383 length (int): size of memory to read
8484 '''
85- read_data = self .__sequential_read (offset , EEPROMInfo .PAGE_SIZE .value )
85+ with self .i2c_open ():
86+ read_data = self .__sequential_read (offset , EEPROMInfo .PAGE_SIZE .value )
8687 check_crc (read_data [:- 1 ], read_data [- 1 ])
8788 return (read_data [0 ]<< 8 )| read_data [1 ]
8889
@@ -124,10 +125,11 @@ def __write_edgepi_reserved_memory(self, pb_serial_list: bytes):
124125 pages = self .__generate_list_of_pages_crc (data )
125126
126127 mem_offset = start_mem
127- for page in pages :
128- self .__page_write_register (mem_offset , page )
129- mem_offset = mem_offset + len (page )
130- time .sleep (PAGE_WRITE_CYCLE_TIME )
128+ with self .i2c_open ():
129+ for page in pages :
130+ self .__page_write_register (mem_offset , page )
131+ mem_offset = mem_offset + len (page )
132+ time .sleep (PAGE_WRITE_CYCLE_TIME )
131133
132134 def __read_edgepi_reserved_memory (self ):
133135 '''
@@ -149,11 +151,12 @@ def __read_edgepi_reserved_memory(self):
149151 int ((buff_and_len )/ (page_size - CRC_BYTE_SIZE ))+ 1
150152
151153 mem_offset = EdgePiMemoryInfo .PRIVATE_SPACE_START_BYTE .value
152- for page in range (num_pages ):
153- buff_list = self .__sequential_read (mem_offset + (page * page_size ), page_size )
154- check_crc (buff_list [:- 1 ], buff_list [- 1 ])
155- buff += buff_list [:- 1 ]
156- time .sleep (0.01 )
154+ with self .i2c_open ():
155+ for page in range (num_pages ):
156+ buff_list = self .__sequential_read (mem_offset + (page * page_size ), page_size )
157+ check_crc (buff_list [:- 1 ], buff_list [- 1 ])
158+ buff += buff_list [:- 1 ]
159+ time .sleep (0.01 )
157160 return bytes (buff [2 :buff_and_len ])
158161
159162 def read_edgepi_data (self ):
@@ -290,10 +293,11 @@ def read_user_space(self, mem_size: int = None):
290293 num_pages = int ((buff_and_len )/ (page_size - CRC_BYTE_SIZE ))+ 1
291294
292295 mem_offset = EdgePiMemoryInfo .USER_SPACE_START_BYTE .value
293- for page in range (num_pages ):
294- buff_list = self .__sequential_read (mem_offset + (page * page_size ), page_size )
295- check_crc (buff_list [:- 1 ], buff_list [- 1 ])
296- buff += buff_list [:- 1 ]
296+ with self .i2c_open ():
297+ for page in range (num_pages ):
298+ buff_list = self .__sequential_read (mem_offset + (page * page_size ), page_size )
299+ check_crc (buff_list [:- 1 ], buff_list [- 1 ])
300+ buff += buff_list [:- 1 ]
297301 return buff [2 :buff_and_len ]
298302
299303 def write_user_space (self , data : bytes ):
@@ -314,10 +318,11 @@ def write_user_space(self, data: bytes):
314318 pages = self .__generate_list_of_pages_crc (data )
315319
316320 mem_offset = start_mem
317- for page in pages :
318- self .__page_write_register (mem_offset , page )
319- mem_offset = mem_offset + len (page )
320- time .sleep (PAGE_WRITE_CYCLE_TIME )
321+ with self .i2c_open ():
322+ for page in pages :
323+ self .__page_write_register (mem_offset , page )
324+ mem_offset = mem_offset + len (page )
325+ time .sleep (PAGE_WRITE_CYCLE_TIME )
321326
322327# TODO why not separate it into a class
323328 def init_memory (self ):
@@ -381,10 +386,11 @@ def reset_user_space(self):
381386 reset_vals = [255 ] * page_size
382387
383388 mem_offset = start_address_page
384- for _ in range (tatal_page ):
385- self .__page_write_register (mem_offset , reset_vals )
386- mem_offset = mem_offset + page_size
387- time .sleep (PAGE_WRITE_CYCLE_TIME )
389+ with self .i2c_open ():
390+ for _ in range (tatal_page ):
391+ self .__page_write_register (mem_offset , reset_vals )
392+ mem_offset = mem_offset + page_size
393+ time .sleep (PAGE_WRITE_CYCLE_TIME )
388394
389395 def reset_edgepi_memory (self , bin_hash : str = None , bin_bytes : bytes = None ):
390396 """
0 commit comments