/*
 * 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_sampfast_help(void);
void cmd_config_help(void);
void print_cmd_help(void);
char *versionStr(int maxLen);
void print_cmd_version(void);

void cmd_set_biasneg(void);
void cmd_set_biaspos(void);
void cmd_cfg_sampnum_set(void);
void cmd_config_set(void);
void cmd_set_filename(void);
void cmd_set_ib(void);
void cmd_set_ik(void);
void cmd_period_set(void);
void cmd_sampnum_set(void);
void cmd_store_set(void);
void cmd_set_tempc(void);

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

void cmd_time_set(void);
void 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(void);
void cmd_test_biaspos(void);
void cmd_test_ib(void);
void cmd_test_ik(void);
void cmd_test_sample(int loopTime);
void cmd_sampnum_test(void);
void cmd_test_tempc(void);
void cmd_timestamp_test(void);
void cmd_test_vbat(void);
void cmd_test_vk(void);
void cmd_test_vk_std(void);
void cmd_test_vrse(void);
void cmd_test_vrse_std(void);
void cmd_test_vrsi(void);
void cmd_test_vrsi_std(void);
void cmd_test_vtherm(void);
void cmd_test_vtherm_std(void);

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);

void apf_nitrate(void);
void 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(void);
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 cmd_h2m_mode_set(uint32_t mult);  //set seconds   APFTODO make this millisec
uint32_t cmd_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 cmd_baud_get(void);
void cmd_baud_set(void);
void cmd_baud_help(void);

void apf_sernum_handler(void);
void apf_sernum_msc_get(void);
void apf_sernum_help(void);

void showSernums(void);
void apf_sernum_msc_help(void);
void apf_sernum_msc_set(void);
#if NOPE
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);
#endif

#if BOARD_MSC == 3
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);
#endif // BOARD_MSC == 3

void cmd_k0_help(void);

void cmd_cal_date_isus(void);
void cmd_cal_date_pt(void);
void cmd_cal_date_k0(void);
void cmd_dura_cal_file(void);
void cmd_isfet_sn(void);
void cmd_ise_sn(void);
void cmd_sensor_sn(void);

void cmd_help_all(void);

void cmd_k0_hcl(void);
void cmd_k0_sw(void);
void cmd_k0std_sw(void);
void cmd_k2(void);
void cmd_fp(void);

#endif /* SERIAL_CMD_FXN_H_ */
