mnbf9rca / mariner

Web interface for controlling MSLA 3D Printers based on Chitu controllers, such as the ones by Elegoo and Phrozen.
MIT License
3 stars 1 forks source link

Saturn 2 500 error Mariner fails to show layer progress #87

Open raz0rf0x opened 1 year ago

raz0rf0x commented 1 year ago

Description File analysis of encrypted .ctb fails to "get end byte offset by layer" and printing status fails to show layer progress. API returns 500 and log as shown below. Problem is probably in /mariner/file_formats/ctb_encrypted.py at LayersPointer or LayersDefinition.

Reproduction Steps Steps to reproduce the behavior:

Expected Behavior

Screenshots / Logs ERROR:waitress:Exception while serving /api/print_status Traceback (most recent call last): File "/opt/venvs/mariner3d/lib/python3.9/site-packages/waitress/channel.py", line 428, in service task.service() File "/opt/venvs/mariner3d/lib/python3.9/site-packages/waitress/task.py", line 168, in service self.execute() File "/opt/venvs/mariner3d/lib/python3.9/site-packages/waitress/task.py", line 434, in execute app_iter = self.channel.server.application(environ, start_response) File "/opt/venvs/mariner3d/lib/python3.9/site-packages/flask/app.py", line 2548, in __call__ return self.wsgi_app(environ, start_response) File "/opt/venvs/mariner3d/lib/python3.9/site-packages/whitenoise/base.py", line 85, in __call__ return self.application(environ, start_response) File "/opt/venvs/mariner3d/lib/python3.9/site-packages/flask/app.py", line 2528, in wsgi_app response = self.handle_exception(e) File "/opt/venvs/mariner3d/lib/python3.9/site-packages/flask/app.py", line 2525, in wsgi_app response = self.full_dispatch_request() File "/opt/venvs/mariner3d/lib/python3.9/site-packages/flask/app.py", line 1822, in full_dispatch_request rv = self.handle_user_exception(e) File "/opt/venvs/mariner3d/lib/python3.9/site-packages/flask/app.py", line 1820, in full_dispatch_request rv = self.dispatch_request() File "/opt/venvs/mariner3d/lib/python3.9/site-packages/flask/app.py", line 1796, in dispatch_request return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args) File "/opt/venvs/mariner3d/lib/python3.9/site-packages/mariner/server/api.py", line 81, in print_status sliced_model_file.end_byte_offset_by_layer.index( ValueError: 2595054 is not in list

Details:

raz0rf0x commented 1 year ago

'LayersDefinition' is returning data with 'encrypted_data_offset' and 'encrypted_data_length' always zero:

CTBEncryptedLayerDef(table_size=88, position_z=0.03999999910593033, exposure_time=25.0, light_off_delay=0.0, layer_def_offset=169552, unknown_02=0, data_length=16213, unknown_03=0, encrypted_data_offset=0, encrypted_data_length=0, lift_height=7.0, lift_speed=65.0, lift_height2=3.0, lift_speed2=180.0, retract_speed=180.0, retract_height2=4.0, retract_speed2=65.0, rest_time_before_lift=0.0, rest_time_after_lift=0.0, rest_time_after_retract=1.0, light_pwm=255.0, unknown_06=0)