Mercurial > public > ostc4
view Small_CPU/Inc/vpm.h @ 396:effa6fb9eb89 ImproveBluetooth
Added function for BlueMod configuration:
Investigations of connection problems showed that there is a problem if the module is not able to forward data fast enough. The bottleneck in direction of microcontroller may be solved by increasing baud rate. To be backward (bootloader) compatible this is done temperoraly during every startup
Added function for signal stregth evaluation:
Quality of data connection may have an impact on stability => added function to visualize current state of connection. The evaluation may be requested remote using 'l' (0x6c) or by pressing next button while in service mode
Cleanup Disconnection procedure:
Disconnection issued by OSTC was realized by simply switching of the module which might have a negativ impact to remote devices. Second reason for change was that, e.g. in case of a timeout on OSTC side. a remote device might have continued sending firmware data causing OSTC to interpretate firmware image as service requests. E.g. resulting in a corrupted configuration. Instead of just switching off power a disconnection request is now send to the BlueMod.
Decreased size used for large data receiption:
Depending on device speed firmware transfer might be really slow. By decreasing the block size a short (6 seconds) timeout per block may be kept while the sender has more time for transfering the image
author | ideenmodellierer |
---|---|
date | Tue, 26 Nov 2019 22:12:25 +0100 |
parents | 5f11787b4f42 |
children |
line wrap: on
line source
/* * vpm.h * * Created: 23.04.2013 11:38:19 * Author: produktion04 */ #ifndef VPM_H #define VPM_H #include "data_central.h" extern long vpm_time_calc_begin; enum DECOLIST{DECOSTOPS,FUTURESTOPS,BAILOUTSTOPS,NULLZEIT,OFF = -1}; // order is important!! enum VPM_CALC_STATUS{CALC_END, CALC_BEGIN, CALC_CRITICAL, CALC_FINAL_DECO, CALC_NULLZEIT }; //int calc_crushing_pressure(float *starting_depth, float *ending_depth, float *rate); //void vpm_check_calc(unsigned short* stoplist); //void vpm_init(void); //_Bool vpm_crush(void); void vpm_reset_variables(void); _Bool vpm_build_variables_from_file(unsigned long in_sdram_start); int vpm_store_variables_in_sdram_for_transfer(unsigned long in_sdram_start); void vpm_calc_crushing_pressure(float starting_ambient_pressure, float ending_ambient_pressure, float rate); void vpm_deco_plan(unsigned short divetime,unsigned short * divetime_first_stop, float* first_stop_depth); float schreiner_equation__2(float *initial_inspired_gas_pressure,float *rate_change_insp_gas_pressure,float *interval_time_minutes, const float *gas_time_constant,float *initial_gas_pressure); int vpm_calc(SLifeData* pINPUT, SVpm* pVPM, SDecoinfo* pDECOINFO); void vpm_saturation_after_ascent(SLifeData* input); extern const float helium_time_constant[16]; extern const float nitrogen_time_constant[16]; #endif /* VPM_H */