/*
 * serial_cmd_fxn.h
 *
 *  Created on: May 3, 2024
 *      Author: thom maughan
 */

#ifndef SERIAL_CMD_FXN_H_
#define SERIAL_CMD_FXN_H_

#include "stdint.h"

void print_cmd_file_help(void);

void apf_apfArray_debug(void);
void apf_apf_vars_debug(void);

int waitACK(uint32_t timeout_ms);
void print_cmd_big_help(void);

void apf_ecoef_read(void);
void apf_ecoef_print(void);



void apf_zcoef_read(void);
void apf_zcoef_print(void);

void apf_test_log(uint8_t testNum);

void cmd_filesystem(void);

void cmd_config_help(void);
void print_cmd_help(void);
void print_cmd_version(void);

void cmd_set_biasneg(unsigned int val);
void cmd_set_biaspos(unsigned int val);
void cmd_cfg_sampnum_set(unsigned int val);
void cmd_config_set(void);
void cmd_set_filename(void);
void cmd_set_ib(unsigned int val);
void cmd_set_ik(unsigned int val);
void cmd_period_set(void);
void cmd_sampnum_set(unsigned int num);
void cmd_store_set(void);
void cmd_set_tempc(unsigned int val);

void cmd_timestamp_set(unsigned int val);
void cmd_set_vbat(unsigned int val);
void cmd_set_vk(unsigned int val);
void cmd_set_vk_std(unsigned int val);
void cmd_set_vrse(unsigned int val);
void cmd_set_vrse_std(unsigned int val);
void cmd_set_vrsi(unsigned int val);
void cmd_set_vrsi_std(unsigned int val);
void cmd_set_vtherm(unsigned int val);
void cmd_set_vtherm_std(unsigned int val);

void cmd_time_set(void);
unsigned int cmd_time_get(void);
void cmd_time_help(void);

void cmd_get_biasneg(void);
void cmd_get_biaspos(void);
void cmd_cfg_sampnum_get(void);
void cmd_config_get(void);
void cmd_get_filename(void);
void cmd_get_ib(void);
void cmd_get_ik(void);
void cmd_period_get(void);
void cmd_store_get(void);
void cmd_get_tempc(void);
void cmd_timestamp_get(void);
void cmd_get_vbat(void);
void cmd_get_vk(void);
void cmd_get_vk_std(void);
void cmd_get_vrse(void);
void cmd_get_vrse_std(void);
void cmd_vrse_std_help(void);
void cmd_get_vrsi(void);
void cmd_get_vrsi_std(void);
void cmd_get_vtherm(void);
void cmd_get_vtherm_std(void);

void cmd_test_biasneg(unsigned int num);
void cmd_test_biaspos(unsigned int num);
void cmd_test_ib(unsigned int num);
void cmd_test_ik(unsigned int num);
void cmd_test_sample(unsigned int loopTime);
void cmd_sampfast_help(void);
void cmd_sampnum_test(unsigned int num);
void cmd_test_tempc(unsigned int num);
void cmd_timestamp_test(unsigned int num);
void cmd_test_vbat(unsigned int num);
void cmd_test_vk(unsigned int num);
void cmd_test_vk_std(unsigned int num);
void cmd_test_vrse(unsigned int num);
void cmd_test_vrse_std(unsigned int num);
void cmd_test_vrsi(unsigned int num);
void cmd_test_vrsi_std(unsigned int num);
void cmd_test_vtherm(unsigned int num);
void cmd_test_vtherm_std(unsigned int num);

void apf_bake_uv_lamp(void);
int  mms_bake_handler(uint32_t bakeTimeSec);
void apf_dbg(int state);
void cmd_wisdom_get(void);
void cmd_yooster(void);
void apf_init_persistent_vars(void);
void apf_off(void);
void apf_slp_sleep(void);
void apf_wdog_status(void);
void apf_se_xfer(void);

void apf_take_sample_nitrate(int txFlg);
void apf_take_sample_pH(int txFlg);

float apf_nitrate(void);
float apf_pH(void);

void apf_file_test(void);

void apf_get_acq_time(void);
void apf_get_cal(void);
void apf_get_cfg(void);
void apf_get_cfg_dura(void);
void apf_get_cfg_isus(void);
void apf_get_ctd(void);
void apf_get_err(void);
void apf_get_fit(void);
void apf_get_get_sc(void);
void apf_get_mode(void);
void apf_get_pc(void);

void apf_acq_time_get(void);
void apf_cal_get(void);
void apf_cfg_get(void);
void apf_dura_cfg_get(void);
void apf_isus_cfg_get(void);
void apf_ctd_get(void);
void apf_ctd_set(void);
void apf_ctd_help(void);

void apf_err_get(void);

void apf_fit_get(void);
void apf_fit_set(void);

void apf_sc_get(void);
void apf_mode_get(void);
void apf_mode_set(void);

void apf_pc_get(void);

void apf_rtc_set(void);
void apf_rtc_get(void);
void apf_rtc_help(void);

void apf_sc_get(void);
void apf_se_get(void);
void apf_sensor_type_get(void);
void apf_sensor_type_set(uint32_t sensorCfg);
void apf_sensor_type_help(void);
void apf_spectra_get(void);
void apf_spectra_set(void);
void apf_spectra_help(void);
void apf_get_sysinfo(void);

void apf_print_devStatus(void);
void apf_print_dura_header(void);
void apf_print_help(uint32_t mode);
void apf_print_ping_response(void);
void print_isus_header(void);
void print_dura_header(void);
void apf_print_isus_header(void); //GH1
void apf_print_dura_header(void); //GH2,
void apf_serial_term_echo(int state, int prnFlg);

void apf_send_last_nitrate(void);
void apf_send_last_pH(void);

void apf_int_time_get(void);
void apf_int_time_set(void);

void cmd_print_settings(void);

void apf_h2m_mode_set(uint32_t mult);  //set seconds   APFTODO make this millisec
uint32_t apf_h2m_timeout_get(void);  // return msec
void apf_h2m_timeout_set(uint32_t mult);
void apf_m2m_mode_set(uint32_t termTimeMult);

void apf_init_persistent_vars(void);

void apf_profileCount_inc(void);
void apf_profileCount_dec(void);
void apf_profileCount_get(void);
void apf_profileCount_set(void);
void apf_profileCount_help(void);
void apf_profileCount_inc_test(void);  //used to test profxxxx.log using sample command

void apf_test_dura(uint8_t testNum);
void apf_test_print_help(void);

void apf_baud_get(void);
uint32_t apf_baud_set(void);
void apf_baud_help(void);

void apf_sernum_handler(void);
uint32_t apf_sernum_msc_get(void);
void apf_sernum_help(void);
void apf_sernum_msc_help(void);
uint32_t apf_sernum_msc_set(void);

void apf_sernum_baseboard_set(void);
void apf_sernum_baseboard_help(void);
void apf_sernum_baseboard_get(void);
void apf_sernum_ctd_set(void);
void apf_sernum_ctd_help(void);
void apf_sernum_ctd_get(void);

void apf_sernum_isfet_set(void);
void apf_sernum_isfet_help(void);
void apf_sernum_isfet_get(void);

void apf_sernum_ise_set(void);
void apf_sernum_ise_help(void);
void apf_sernum_ise_get(void);

void apf_sernum_lamp_set(void);
void apf_sernum_lamp_help(void);
void apf_sernum_lamp_get(void);

void apf_sernum_mcap_set(void);
void apf_sernum_mcap_help(void);
void apf_sernum_mcap_get(void);

void apf_sernum_optode_set(void);
void apf_sernum_optode_help(void);
void apf_sernum_optode_get(void);

void apf_sernum_probe_set(void);
void apf_sernum_probe_help(void);
void apf_sernum_probe_get(void);

void apf_sernum_sensor_set(void);
void apf_sernum_sensor_help(void);
void apf_sernum_sensor_get(void);

void apf_sernum_spec_analog_set(void);
void apf_sernum_spec_analog_help(void);
void apf_sernum_spec_analog_get(void);

void apf_sernum_spec_digital_set(void);
void apf_sernum_spec_digital_help(void);
void apf_sernum_spec_digital_get(void);

void apf_sernum_spec_set(void);
void apf_sernum_spec_help(void);
void apf_sernum_spec_get(void);

void apf_sernum_tiva_set(void);
void apf_sernum_tiva_help(void);
void apf_sernum_tiva_get(void);


void apf_status_get(void);
void apf_status_help(void);
void apf_status_reset(void);

void apf_vinmin_get(void);
void apf_vinmin_help(void);
void apf_vinmin_isus_get(void);
void apf_vinmin_dura_get(void);
void apf_vinmin_isus_set(void);
void apf_vinmin_dura_set(void);

void apf_error_log_add(unsigned char *errStr);
void apf_error_log_isus_add(unsigned char *errStr);
void apf_error_log_dura_add(unsigned char *errStr);

void apf_test_wdog(void);
void apf_test_help(void);

void cmd_k0_help(void);
float cmd_k0_hcl(uint8_t *fStr);
float cmd_k0_sw(uint8_t *fStr);
float cmd_k0std_sw(uint8_t *fStr);
float cmd_k2(uint8_t *fStr);
float cmd_fp(uint8_t *fStr);
void cmd_cal_date_isus(unsigned char *dateStr);
void cmd_cal_date_pt(unsigned char *dateStr);
void cmd_cal_date_k0(unsigned char *dateStr);
void cmd_dura_cal_file(unsigned char *filenameStr);
void cmd_isfet_sn(unsigned char *snStr);
void cmd_ise_sn(unsigned char *snStr);
void cmd_sensor_sn(unsigned char *snStr);

void cmd_help_all(void);

#endif /* SERIAL_CMD_FXN_H_ */
