/*******************************************************************************
*   ���W���[������      �F�A�v���P�[�V�����O�P �O���[�o���ϐ�������            *
*   ���W���[�����x��    �Fapp01_InitVar_EWO                                    *
*   �R�[�����O�V�[�P���X�Fvoid app01_InitVar_EWO()                             *
*   �쐬���E�쐬��      �F2018/01/12     Y.Kasaba                              *
*   �Q��		�F  app01_InitVar.c ���Q�Ƃ̂���                       *
*   ����		�F  EDIT�����́AEWO�g                                  *
*******************************************************************************/

#define __APP_WFC_OFA__
#define __APP_WFC_AM2P__

#include "app_common.h"
#include "app_EWO.h"


unsigned char	app01_InitVar_EWO()
{
	int 	i;

	// **********************
	// ***** EWO-COMMON *****
	// **********************
	G1uc_EWO_E2PROM			= 0x00;		//	EWO: E2PROM operation:	1:start 2:EFD-LPF(1) 3:EFD-LPF(2) 4:EFD-SWEEP 5:EWOB-LPF 6:Hungary-table 0:none
	G1uc_EWO_relay_init		= 0x00;		//	Initialization of EWO relays and flags
	
	// Data mode
	Guc_EFD_mode            = 0x91;		//	EFD-DPB-*: 0x*0:ave 0x*1:deci 
										//	EFD-DPB-L: 0x0*:8Hz 0x1*:4Hz 0x2*:2Hz
										//	SORBET:    0x0*:1/5spin 0x8*:1/10spin

	// EFD-SWEEP TABLE
	Guc_EFD_SweepTbl_sum	= 
	Guc_EFD_SweepTbl		= 0;
	G1uc_EFD_Sweep_Load     = 0;

	// Antenna angle (SSAS: 225deg)
	Gus_EWO_Ec_X1ang =  45;				//	X1(WPT-S1:  0) eclipse angle								<< CMD/HK N(0-72)x5 >>
	// Gus_EWO_Ec_Y1ang = 135;			//	Y1(MEF-S1: 90) eclipse angle								<< CMD/HK N(0-72)x5 >>
	// Gus_EWO_Ec_X2ang = 225;			//	X2(WPT-S2:180) eclipse angle								<< CMD/HK N(0-72)x5 >>
	// Gus_EWO_Ec_Y2ang = 315;			//	Y2(MEF-S2:270) eclipse angle								<< CMD/HK N(0-72)x5 >>

	// �X�s������
	G13f_EWOE_spin_period = 4.5;
	G13f_EWOB_spin_period = 4.5;
	
	// System command override execution
	Guc_EWOE_freq_set = 0;
	Guc_EWOE_input_set = 0;
	Guc_EWOE_gain_set = 0;
	Guc_EWO_WPTP_gain_set = 0;
	Guc_EWO_MEF_mode_set = 0;
	Guc_EWO_MEF_BIAS1_set = 0;
	Guc_EWO_MEF_BIAS2_set = 0;
	
	// ������s�񐔃J�E���^
	Guc_WFC_VL_cnt = 0;
	Guc_AM2P_cnt = 0;
	Guc_ISDM_cnt = 0;
	
	// **********************
	// ***** OFA *****
	// **********************
	
	// OFA frequency table ready
	G13i_WFC_freq_table_ready = 0;
	
	// OFA telemetry packet ready (0,1,2=L,M1,M2)
	G13uc_EWOE_OFA_tlm_ready[0] = 0;
	G13uc_EWOE_OFA_tlm_ready[1] = 0;
	G13uc_EWOE_OFA_tlm_ready[2] = 0;
	G13uc_EWOB_OFA_tlm_ready[0] = 0;
	G13uc_EWOB_OFA_tlm_ready[1] = 0;
	G13uc_EWOB_OFA_tlm_ready[2] = 0;

	// WFC OFA time interval
	G13uc_WFC_OFA_interval = 2;
//	G13uc_WFC_OFA_interval_prev = 0;
	G13uc_WFC_OFA_E_interval_prev = 0;
	G13uc_WFC_OFA_B_interval_prev = 0;

	// WFCE OFA channel
	G13uc_WFCE_L_channel = 0;
	G13uc_WFCE_M1_channel = 1;
	G13uc_WFCE_M2_channel = 2;
	
	// WFCB OFA channel
	G13uc_WFCB_L_channel = 0;
	G13uc_WFCB_M1_channel = 1;
	G13uc_WFCB_M2_channel = 2;

	// WFC OFA-L count
	G13uc_OFA_E_L_count = -1;
	G13uc_OFA_B_L_count = -1;
		
	// **********************
	// ***** EWO-AGC *****
	// **********************
	
	// EWO AGC
	G13uc_EWOE_AGC_ena = 0;
	G13uc_EWOB_AGC_ena = 0;
	G13c_EWO_WFCE_AGC_act = 0;
	G13c_EWO_WFCB_AGC_act = 0;
	G13i_EWO_WFCE_X_max = 0;
	G13i_EWO_WFCE_Y_max = 0;
	G13i_EWO_WFCB_X_max = 0;
	G13i_EWO_WFCB_Y_max = 0;
	G13i_EWO_WFCB_Z_max = 0;
	G13i_EWO_WFCE_upper_limit = 4095;
	G13i_EWO_WFCE_lower_limit = 128;
	G13i_EWO_WFCB_upper_limit = 4095;
	G13i_EWO_WFCB_lower_limit = 128;
	G13uc_EWO_AGC_interval = 0x07;
	
	// **********************
	// ***** AM2P / CAL *****
	// **********************
	// WFC CAL ON/OFF
	G14uc_WFC_CAL_stage = 0;
	G14uc_WFC_CAL_ready = 0;
	G14uc_WFC_CAL_stage_cnt = 0;
	
	// AM2P stage
	G14uc_AM2P_stage = 0;
	G2uc_AM2P_stage_cnt = 0;
	G14uc_AM2P_ready = 0;
	
	// AM2P interval
//	G14uc_AM2P_interval = 0;	// 0x00:DIS
	G14ui_AM2P_interval = 0;	// 0x00:DIS
	G14ui_AM2P_interval_preset = 0;	// 0x00:DIS
	G14uc_AM2P_suspend = 0;
	G14uc_AM2P_trg_num = 1;
	G14c_AM2P_trg_count = -1;
	G14ui_AM2P_counter = 0;
	G14uc_AM2P_disable = 0;
	G14uc_AM2P_finished = 0;
	
	// AM2P TC word and shift
	G14s_AM2P_TCWord_reserve = 0xffff;
	G14uc_AM2P_shift_reserve = 0xff;
	G14s_AM2P_TCWord_preset = 0xffff;
	G14uc_AM2P_shift_preset = 0xff;

	Gui_AM2P_start_TI = 0x00000000;
	Gui_AM2P_end_TI = 0x00000000;
//	Guc_AM2P_act = 0;

	// **********************
	// ***** WFC-VL *****
	// **********************
	
	// WFC VL mode
	G14uc_WFCE_VL_ch = 0x03;	// E1, E2
	G14uc_WFCB_VL_ch = 0x07;	// Bx, By, Bz
	G14uc_WFCE_VL_L_ena = 1;
	G14uc_WFCB_VL_L_ena = 1;
	G14uc_WFCE_VL_M_ena = 1;
	G14uc_WFCB_VL_M_ena = 1;
	G14uc_WFC_VL_stage = 0xff;
	Gui_EWO_WFCB_blockTime = 0;
	
	// WFC VL interval
//	G14uc_WFC_VL_interval = 0;	// 0x00:DIS
	G14ui_WFC_VL_interval = 0;	// 0x00:DIS
	G14ui_WFC_VL_counter = 0;

	// **********************
	// ***** WFC-H *****
	// **********************
	
	G5uc_WFCE_H_ch = 0x03;	// E1, E2
	G5uc_WFCB_H_ch = 0x07;	// Bx, By, Bz
	G5ui_EWO_WFCH_prec = 8;	// �ő�ʎq����
	G5uc_EWO_WFCH_rate = 0x20;	// WFC-H number of skiped packet percentage	// 2013.11.18	T.Imachi
	Guc_TLMh_cmp[Gd_N_EWOE] = Guc_TLMh_cmp[Gd_N_EWOB] = 3;												// rev. by YK 121126

	// **********************
	// ***** ISDM *****
	// **********************
	
	// WFC ISDM
	G14uc_WFC_ISDM_ena = 1;
	G14_ISDM_noiseback_ptr = 16;				// pointer for last
	// WFC ISDM interval
//	G14uc_ISDM_interval = 0;	// 0x00:DIS
	G14ui_ISDM_interval = 0;	// 0x00:DIS
	G14ui_ISDM_counter = 0;

	G14uc_ISDM_init = 1;
	G14uc_ISDM_reset = 1;
	G14uc_ISDM_WPTP_gain = 0;
	G14uc_ISDM_EWO_gain = 0;
	
	G14_ISDM_energy_ns = 0;						// energy of noise bacground
	G14_ISDM_event_on = 0;						// 1: inside event, 0: no event
	G14_ISDM_event_fcnt = 0;					// counting frames during event
	G14_ISDM_avg_lock = 0;						// when 16 noise background contains valid spectra
	G14_ISDM_isdm_stat = 0;						// 3,2,1: still counting, 0: calculation done
	G14_ISDM_isdm_avg_done = 0;					// 0: background calculation is going not allowed to kill process
												// 1: background calculation done process kill is allowed
	G14uc_ISDM_tlm_size = 0;
	G14uc_ISDM_result_size = 0;

	G14uc_ISDM_table_dump_ena = 0;
	G14uc_ISDM_dump_ena = 0;			// Dump spectrum	2013.11.14	T.Imachi
	
	// **********************
	// ***** EWO-MDM *****
	// **********************
	// MDM �A�g
	G14uc_WFC_MDM_eve_ena = 1;
	G14uc_WFC_MDM_eve_cnt = 0;
	Guc_EwoMdmData_after  = 2;
	Guc_EwoMdmData_before = 8;
	
	// ***************
	// ***** EFD *****
	// ***************
	// Data mode
	Guc_EFD_SPB_ena	= 0xF5;		// ENA/DIS for SPB  M: b7:WPT-S1  b6:WPT-S2  b5:MEF-S1 b4:MEF-S2	=0xF	all
					// 		    L: b3:WPT-S1  b2:WPT-S2  b1:MEF-S1 b0:MEF-S2	=0x5	WPT-S1(X+) MEF-S1(Y+)
	Guc_EFD_DPB_ena	= 0xF7;		// ENA/DIS for DPB  M: b7:WPT-S   b6:WPT-W   b5:MEF-S  b4:MEF-W		=0xF	all
					//                  L: b3:WPT-S   b2:WPT-W   b1:MEF-S  b0:MEF-W		=0x7	WPT/MEF-W MEF-S
	Guc_EFD_SlowSweep = 0;
	Guc_EFD_Bias1     = 0;		//	Bias1
	Guc_EFD_Bias2     = 0;		//	Bias2

	// DPB: data
	for (i=0; i<5; i++) {
		Gus_EFD_SPB_Size [i] =
		Gui_EFD_SPB_Ti   [i] =
		Gus_EFD_SPB_TiSun[i] =
		Gus_EFD_DPB_Size [i] =
		Gui_EFD_DPB_Ti   [i] =
		Gus_EFD_DPB_TiSun[i] = 0;
	}
	Gui_EFD_Spin = 0;

	// SORBET/EFD status
	Guc_SOR_data_status0 = Guc_SOR_data_status  = Guc_EFD_data_status  = 0;

	return(0);
}



// unsigned char	app01_ErrClr_EWO()
// {
//	return(0);
// }