/******************************************************************************* * モジュール名称 :アプリケーション02 - HK read & anaylses - MWE * * 参考 : app02_DPU.c を参照 * * 作成日・作成者 :2012/06/22 Y.K. * * :2012/1/7 rev. by YK * * * * 変更履歴 :2012/7/18 A.K. * * 内部モード照合機能(照合・DRV-OFF送出・HK)を追加 * * :2012/12/26 Y.K. * * MOTOR-PSU OFFx3 when "TIMER<=2" or "LINK-OFF" * * :2013/2/14 A.K. * * ユーザーリクエスト機能を消去(TIMER<3 はそのまま) * * : 2017/07/13 A.K. Added(app15_putAplHK_CORE) * * To check SW-HK by on-off keying * * during deployment operation * *******************************************************************************/ #include "app_common.h" #include "app_MWE.h" #define d_SIZEhk_MWE 128 // HK-size // ******************************************************************** // *** MWE : HK analyses, HW CMD production, HK packet production *** // ******************************************************************** int app02_MWE ( unsigned char uc_dataHK[], unsigned int ui_counter, unsigned char uc_link ) { int i; unsigned char cmd_buf[8]; //AK// int cmd_num; //AK// unsigned char uc_SwHk[0x06]; unsigned char uc_flag = 0; //AK// // ************************* // *** HW HK analyses *** // ************************* if ( uc_link ) { // --- HW-ON --- } else { // --- HW-OFF --- for (i=0; iGus_MWE_WPT_Timer) { //AK 130214// if (uc_dataHK[7]&0x08) Gus_MWE_WPT_Timer_Hist=1; //AK110618// WPT-S1 Drive ON? if (uc_dataHK[6]&0x02) Gus_MWE_WPT_Timer_Hist=1; //AK110618// WPT-S2 Drive ON? cmd_buf[0]=0x0A; //AK110618// //AK// WPT-S1&S2 Drive Off cmd_buf[1]=0x60; //AK110618// //AK// cmd_buf[2]=0x00; //AK110618// //AK// cmd_buf[3]=0x5B; //AK110618// //AK// cmd_num=4; //AK// uc_flag = app_PiCmd(Gd_N_MWE, cmd_buf, cmd_num ); //AK// } //AK// } //AK// //AM// MST Deployment Timer if (Gus_MWE_MST_Timer) { //AM// Gus_MWE_MST_Timer--; //AM// if (3>Gus_MWE_MST_Timer) { //AM 130214// if (uc_dataHK[4]&0x02) Gus_MWE_MST_Timer_Hist=1; //AK110618// MST-MGF Drive ON? if (uc_dataHK[5]&0x08) Gus_MWE_MST_Timer_Hist=1; //AK110618// MST-SC Drive ON? cmd_buf[0]=0x0A; //AK110618// //AM// MST-MGF&SC Drive Off cmd_buf[1]=0x40; //AK110618// //AM// cmd_buf[2]=0x00; //AK110618// //AM// cmd_buf[3]=0x3B; //AK110618// //AM// cmd_num=4; //AM// uc_flag = app_PiCmd(Gd_N_MWE, cmd_buf, cmd_num ); //AM// } //AM// } //AM// if (Guc_MWE_stat_chk) { //AK120718// if ((uc_dataHK[0x08]!=Guc_MWE_stat_para1)|| //AK120718// (uc_dataHK[0x09]!=Guc_MWE_stat_para2)|| //AK120718// (uc_dataHK[0x74]!=Guc_MWE_stat_para3)|| //AK120718// (uc_dataHK[0x75]!=Guc_MWE_stat_para4)|| //AK120718// (uc_dataHK[0x76]!=Guc_MWE_stat_para5)|| //AK120718// (uc_dataHK[0x77]!=Guc_MWE_stat_para6)) { //AK120718// cmd_buf[0]=0x0A; //AK120718// //WPT-S1&S2 Drive Off cmd_buf[1]=0x60; //AK120718// cmd_buf[2]=0x00; //AK120718// cmd_buf[3]=0x5B; //AK120718// cmd_num=4; //AK120718// uc_flag = app_PiCmd(Gd_N_MWE, cmd_buf, cmd_num ); //AK120718// Guc_MWE_stat_log = 1; //AK120718// } //AK120718// Guc_MWE_stat_chk = 0; //AK120718// } //AK120718// if (Guc_MWE_stat_chk2) { //AK120718// if ((uc_dataHK[0x08]!=Guc_MWE_stat_para1)|| //AK120718// (uc_dataHK[0x09]!=Guc_MWE_stat_para2)|| //AK120718// (uc_dataHK[0x74]!=Guc_MWE_stat_para3)|| //AK120718// (uc_dataHK[0x75]!=Guc_MWE_stat_para4)|| //AK120718// (uc_dataHK[0x76]!=Guc_MWE_stat_para5)|| //AK120718// (uc_dataHK[0x77]!=Guc_MWE_stat_para6)) { //AK120718// cmd_buf[0]=0x0A; //AK120718// // MST-MGF&SC Drive Off cmd_buf[1]=0x40; //AK120718// cmd_buf[2]=0x00; //AK120718// cmd_buf[3]=0x3B; //AK120718// cmd_num=4; //AK120718// uc_flag = app_PiCmd(Gd_N_MWE, cmd_buf, cmd_num ); //AK120718// Guc_MWE_stat_log = 1; //AK120718// } //AK120718// Guc_MWE_stat_chk2 = 0; //AK120807// } //AK120718// //AK// WPT Software HK Update uc_SwHk[0] = Gus_MWE_WPT_Timer>>8; //AK// APID 06A0, Byte 128, Bit 0-7 uc_SwHk[1] = Gus_MWE_WPT_Timer&0xFF; //AK// APID 06A0, Byte 129, Bit 0-7 uc_SwHk[2] = 0x00; //AK// if (Gus_MWE_WPT_Timer_Hist) uc_SwHk[2]=0x80; //AK// APID 06A0, Byte 130, Bit 0 // uc_SwHk[2] |= Guc_MWE_WPTSext; // HRM-release: // b7 Gus_MWE_WPT_Timer_Hist [継続] // b4-6 0* No-action // 1* WPT-S1 HRM Release executed (WPT-S1 通常終了) // 2* WPT-S2 HRM Release executed (WPT-S2 通常終了) // 3* WPT-S1 HRM Release failed (WPT-S1 異常終了 - CMD1秒後送信に失敗) // 4* WPT-S2 HRM Release executed (WPT-S2 異常終了 - CMD1秒後送信に失敗) // 5*-7* (N/A) // b0-3 *0 WPT-S1/2 HRM Release DIS // *1 WPT-S1 HRM Release ENA (WPT-S1 HRM release機能 ENA) // *2 WPT-S2 HRM Release ENA (WPT-S2 HRM release機能 ENA) // *3 WPT-S1 HRM Release Activated / not STOPPED // *4 WPT-S2 HRM Release Activated / not STOPED // *5-*7 (N/A) //AM// MST Software HK Update uc_SwHk[3] = Gus_MWE_MST_Timer>>8; //AK// APID 06A0, Byte 131, Bit 0-7 uc_SwHk[4] = Gus_MWE_MST_Timer&0xFF; //AK// APID 06A0, Byte 132, Bit 0-7 uc_SwHk[5] = 0x00; //AK// if (Gus_MWE_MST_Timer_Hist) uc_SwHk[5]=0x80; //AK// APID 06A0, Byte 133, Bit 0 if (Guc_MWE_stat_log) uc_SwHk[5]|=0x08; //AK120807// //uc_SwHk[0] = 0xB3; //AK120719// // *********************************************** //AK170713 // *** Special HK Packet for MGA on-off keying *** //AK170713 // *********************************************** //AK170713 app15_putAplHK_MAST(uc_SwHk); //AK170713 // ***************************** // *** HK Packet production *** // ***************************** memcpy( &(uc_dataHK[d_SIZEhk_MWE]), uc_SwHk, 6 ); return( d_SIZEhk_MWE + 7 ); } else { return( 0 ); } }