msr-consulting / exscalabar_server

Repository for the EXSCALABAR server.
http://www.msrconsults.com/ukmet-gh/exscalabar
0 stars 1 forks source link

Filter command is erroring when the button on the UI is pressed #90

Closed lo-co closed 8 years ago

lo-co commented 8 years ago

At this moment, send TT or FF if we need the signal.

The error we are getting is -200428. From the explanation of the error:

Value passed to the Task/Channels In control is invalid.

The value must refer to a valid task or valid virtual channels.

lo-co commented 8 years ago

I had changed the Task names. Should be good to go now.

JustinLangridge commented 8 years ago

This my be linked to the logic for the filter/denuder/inlet valves not being set yet, but it does appear that the filter and other valve UI buttons have issues.

When the filter cycle is not on auto and you hit the filter button it often goes inti a state of turning itself on and off repeatedly, or it doesn;t respond at all.

I can;t get the inlet valve UI button to switch on at all

lo-co commented 8 years ago

Justin, please be careful about removing the READY FOR TESTING label; I put it there for me to test (or someone with the backend knowledge to determine if the thing is doing what it is supposed to be doing in software). Sometimes the problem is a hardware problem and not applicable to what is going on here.

I realize the filter button is flashing but I think this actually attributable to something other than a hardware issue (or server for that matter). I think what is happening is that I am not handling an error correctly on the client side.

In this case, this tag indicates that I am trying to make sure that the command is getting from the client to the proper place in the software. The label indicates that I have code in place that needs proper debugging.

lo-co commented 8 years ago

Added Wrapper for testing. Set execution to non-reentrant.

lo-co commented 8 years ago

Filter feedback is not coming back properly. The filter position is set by a not so when there is no feedback, the system will not work properly (always sends TRUE because it is always FALSE).

lo-co commented 8 years ago

From my standpoint, this is now fixed. The sequence goes like this:

  1. User presses button
  2. Flips the logic behind the scenes and sends an http request to the server to change the state. The new state sent will be the opposite of what the current value is. So, if the current value is TRUE, the new value will be FALSE
  3. The http request sends the message to the Controller with the new filter value.
  4. In the message Do method, an 1-D array with two entries is built with the same boolean value as the value sent via the http request (this is a relic of the three-way valve request) to the Filter task.
  5. If the request is good (i.e. no error from the task), the switch state is updated in the CVT (the section that this is found in is general and the key is filter_pos). There is no feedback now so this will be the value that is used to update the UI.

All switch tasks will look something like this for now. So, I have two questions:

  1. Does the switch require one or two values?
  2. If the value sent is high (TRUE), will this set the position to filter or sample?
JustinLangridge commented 8 years ago

Hi Matt,

Here is the valve logic for all of the Hanbays (changing position requiring two values to be set each time). This issue is now identical to #115 and so knocking it off should give value.

Format: 'name of position', valve 1 value, valve 2 value

Denuder: denuder 1 - 5V, denuder 2 - 0V Denuder bypass: denuder 1 - 0V , denuder 2 - 5V

Filtering: filter 1 - 5V, filter 2 - 5V (not a typo they should both be 5V) Sampling: filter 1 - 0V , filter 2 - 0V

Cabin inlet: cabin 1 - 0V , cabin 2 - 0V Aircraft inlet: cabin 1 - 5V, cabin 2 - 5V

JustinLangridge commented 8 years ago

Tested and functioning properly