You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This error keeps popping up sporadically and I have confirmed that is a resulting from some form of error from TheSkyX and a parsing error in panoptes.pocs.utils.theskyx. What is going on is as follows:
pocs issues a command via TheSkyX which fails in some way and returns a response
In [4]: pocs.observatory.dome.unpark()
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
Cell In[4], line 1
----> 1 pocs.observatory.dome.unpark()
File /opt/conda/lib/python3.10/site-packages/huntsman/pocs/dome/musca.py:266, in HuntsmanDome.unpark(self, timeout)
264 while not timer.expired():
265 try:
--> 266 response = self.read()
267 except TheSkyXTimeout:
268 continue
File /opt/conda/lib/python3.10/site-packages/panoptes/pocs/dome/bisque.py:156, in Dome.read(self, timeout)
154 def read(self, timeout=5):
155 while True:
--> 156 response = self.theskyx.read()
157 if response is not None or timeout == 0:
158 break
File /opt/conda/lib/python3.10/site-packages/panoptes/pocs/utils/theskyx.py:62, in TheSkyX.read(self, timeout)
59 response, err = response.split('|')
61 if 'Error:' in response:
---> 62 response, err = response.split(':')
64 if err is not None and 'No error' not in err:
65 if 'Error = 303' in err:
ValueError: too many values to unpack (expected 2)
If we capture the response object returned from TheSkyX we can see what is going wrong:
In [13]: dome.write(dome._get_command('dome/unpark.js'))
In [14]: response = dome.theskyx.socket.recv(2048).decode()
In [15]: response
Out[15]: 'TypeError: Error: command failed. Error = 206.|No error. Error = 0.'
In [16]: response, err = response.split('|')
In [17]: response
Out[17]: 'TypeError: Error: command failed. Error = 206.'
In [18]: response, err = response.split(':')
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
Cell In[18], line 1
----> 1 response, err = response.split(':')
ValueError: too many values to unpack (expected 2)
So the panoptes.pocs.utils.theskyx.read() assumes there will only ever be one ":" character in the response string, so when it splits on this response it creates three strings instead of two.
This presents a bit of annoying problem as we have frozen ours pocs version so we can't just submit a PR to POCS....
The text was updated successfully, but these errors were encountered:
This error keeps popping up sporadically and I have confirmed that is a resulting from some form of error from TheSkyX and a parsing error in
panoptes.pocs.utils.theskyx
. What is going on is as follows:pocs issues a command via TheSkyX which fails in some way and returns a response
If we capture the response object returned from TheSkyX we can see what is going wrong:
So the
panoptes.pocs.utils.theskyx.read()
assumes there will only ever be one ":" character in the response string, so when it splits on this response it creates three strings instead of two.This presents a bit of annoying problem as we have frozen ours pocs version so we can't just submit a PR to POCS....
The text was updated successfully, but these errors were encountered: