I have been quite busy over the last week or so looking at the existing code base and doing changes required in order to incorporate rebreathers. I came accross a few things that I had not considered at all. One important issue is identifying the cylinders that are being used at a particular point in time.

Currently the plot_data structure contains a variable cylinderindex, identifyling which cylinder is being used at a particular point in time. The assumption is that there is a nice temporal sequence of cylinder use, allowing cylinderindex to be appropriately updated every time a change in cylinder takes place.

When using rebreather equipment, two cylinders are used simultaneously, so the cylinderindex variable is rather useless for indicating which cylinders are being used at a point in time. So there appears to be a need for an approach that is more flexible, allowing a representation of multi-cylinder usage.

An approach may be to have primitive events such as "connect" and "disconnect". An event that marks a cylinder change should then actually insert two events, possibly separated by a second in time, a disconnect and a connect. This would allow for more than one cylinder to be connected at a particular point in time. Once one can scan the linked list of events, one can determine exactly when each cylinder has been used, and then calculate the appropriate interpolations of cylinder pressure, gas composition and partial pressures as the dive proceeds.

Another point. I think the existing code provides for good agreement between the order of cylinders in the equipment tab (or, more precisely, in the dive structure) and cylinder order in the plot_info structure. However, one needs to think of potential situations that can destroy this agreement. I think this would mostly relate to the way the dc reports cylinder pressures and how the user manually adds cylinders after the dive.

Is there a more simple way to achieve this?

Kind regards,
willemf





_______________________________________________
subsurface mailing list
[email protected]
http://lists.hohndel.org/cgi-bin/mailman/listinfo/subsurface

Reply via email to