//================================================================== // // Filename: mapp_ami.c // Description: Entainment Car CAN BUS data process. // //------------------------------------------------------------------ // // version: // data: 21:28pm, 14.Mar.2013, written by Sirius // Description: // //------------------------------------------------------------------ //================================================================== /*------------------------------------------------------------------------------ * I N C L U D E *------------------------------------------------------------------------------*/ #include "stm32f0xx.h" #include "general.h" #include "mapp_ami.h" #include "mapp_msg.h" #include "mapp_ext.h" #include "main.h" #include "mapp_arm.h" #include "mapp_can.h" #include "mapp_gpio.h" #include "mapp_tp_buick.h" /*------------------------------------------------------------------------------ * D E F I N E *------------------------------------------------------------------------------*/ /* Macro define for start or sleep wait timer */ /*------------------------------------------------------------------------------ * S T R U C T *------------------------------------------------------------------------------*/ /*------------------------------------------------------------------------------ * S T A T I C - V A R I A B L E S *------------------------------------------------------------------------------*/ static VU16 s_vu16Car1Tmr = 0; static VU16 s_vu16Car2Tmr = 0; static VU16 s_vu16Car3Tmr = 0; static VU16 s_vu16Car4Tmr = 0; /*------------------------------------------------------------------------------ * E X T E R N *------------------------------------------------------------------------------*/ /*------------------------------------------------------------------------------ * P R O T O T Y P E *------------------------------------------------------------------------------*/ static void s_frmCarTxNull(U16 prm); static void s_frmCarTxSwtich(U16 prm); static void s_frmCarTxLight(U16 prm) ; static void s_frmCarTxFodLight(U16 prm) ; static void s_frmCarTxGMLight(U16 prm) ; //------------------------------------------------------------------ // array for data group transmit ON CAN BUS. // 15:09pm, 14.Jun.2013, modified by Charlie //------------------------------------------------------------------ static fp_prm arryCarTxTbl[NumOfAmiMsg] = { s_frmCarTxNull, s_frmCarTxSwtich, s_frmCarTxLight, s_frmCarTxFodLight, s_frmCarTxGMLight, }; /*---------------------------------------------------------------------- // Function name : CarVarInit // Input parameter : // Output parameter : // Use Function : Init Car module variables. // Reserve date : 21:35pm, 14.Mar.2013, written by Sirius ----------------------------------------------------------------------*/ void AmiVarInit(void) { s_vu16Car1Tmr=0; s_vu16Car2Tmr =0; s_vu16Car3Tmr =0; s_vu16Car4Tmr =0; } /*---------------------------------------------------------------------- // Function name : CanAppLayerActive // Input parameter : // Output parameter : // Use Function : // Reserve date : 09:16am, 12.May.2014, written by Charlie ----------------------------------------------------------------------*/ BOOL CanAppLayerActive(void) { if (s_tCanState != CAN_STATE_RUN) { return (FALSE); } if (!gtAmi.basic.ignit) { return (FALSE); } return (TRUE); } /*---------------------------------------------------------------------- // Function name : CarTxTask // Input parameter : // Output parameter : // Use Function : // Reserve date : 15:35pm, 14.Jun.2013, written by Charlie ----------------------------------------------------------------------*/ void AmiTxTask(void) { T_MESSAGE *pmsg; // if (!CanAppLayerActive()) { // OSQFlush(AmiMsgQueue); // return; // } pmsg = OSQGet(AmiMsgQueue); if ((pmsg->id) &&(pmsg->id < NumOfAmiMsg)) { arryCarTxTbl[pmsg->id](pmsg->prm); } } /*---------------------------------------------------------------------- // Function uses : AmiTaskTmr // Input parameter : // Output parameter : // Use Function : // Reserve date : 09:11am, 30.Aug.2012, written by Sirius ----------------------------------------------------------------------*/ void AmiTaskTmr(void) { if (s_vu16Car1Tmr) { s_vu16Car1Tmr--; } if (s_vu16Car2Tmr) { s_vu16Car2Tmr--; } if (s_vu16Car3Tmr) { s_vu16Car3Tmr--; } if (s_vu16Car4Tmr) { s_vu16Car4Tmr--; } } static void s_frmCarTxNull(U16 prm) { U08 cnt =0; cnt =cnt; } static void s_frmCarTxSwtich(U16 prm) { if (prm ) { s_vu16Car1Tmr = prm; } if (s_vu16Car1Tmr ==0x00) { if(!gtAmi.basic.ignit){ GpioLvdsSwitchCfg(SRC_TYPE_ORIG); return; } /*进入倒车和AVM界面,源信息不变*/ if (gtAmi.basic.avm ) { if (gtArm.slaver.cursrc ==SRC_TYPE_ORIG) { GpioLvdsSwitchCfg(SRC_TYPE_CANADD); } return; } if (gtAmi.basic.rev ) { if ((gtArm.facset.camera ==CAM_TYPE_CAN) || (gtArm.facset.camera ==CAM_TYPE_CANVGA)) { if (gtArm.slaver.cursrc == SRC_TYPE_ORIG) { GpioLvdsSwitchCfg(SRC_TYPE_CANADD); } return; } else if((gtArm.facset.camera ==CAM_TYPE_AVM) ||(gtArm.facset.camera ==CAM_TYPE_AVMVGA)){ // if( gtCarType.CarType == CARTYPE_BUICK) { // if (gtArm.slaver.cursrc == SRC_TYPE_ORIG) { // GpioLvdsSwitchCfg(SRC_TYPE_CANADD); // } // } } else { if (gtArm.slaver.cursrc != SRC_TYPE_ORIG) { GpioLvdsSwitchCfg(SRC_TYPE_ORIG); } return; } } /*原车源和加装源,切换LVDS*/ if (gtArm.slaver.cursrc == SRC_TYPE_ORIG) { GpioLvdsSwitchCfg(SRC_TYPE_ORIG); } else { GpioLvdsSwitchCfg(SRC_TYPE_CANADD); } } else { OSQPost(AmiMsgQueue, AMI_MSG_SWTICH, 0); } } static void s_frmCarTxLight(U16 prm) { if (prm ) { s_vu16Car2Tmr = prm; GpioBackLightCfg(SET); //关屏 } if (s_vu16Car2Tmr ==0x00) { GpioBackLightCfg(RESET); //开屏 gtArm.screenoffflag =1; } else { OSQPost(AmiMsgQueue, AMI_MSG_HONDALIGHT, 0); } } static void s_frmCarTxFodLight(U16 prm) { if (prm ) { s_vu16Car3Tmr = prm; GpioFodGm8LcmCfg(SET); //福特关屏 } if (s_vu16Car3Tmr ==0x00) { GpioFodGm8LcmCfg(RESET); //福特 开屏 } else { OSQPost(AmiMsgQueue, AMI_MSG_FODLIGHT, 0); } } static void s_frmCarTxGMLight(U16 prm) { if (prm ) { s_vu16Car3Tmr = prm; } if (s_vu16Car3Tmr ==0x00) { TpBackLightOn(); } else { OSQPost(AmiMsgQueue, AMI_MSG_GMLIGHT, 0); } } /*------------------------------- E O F ----------------------------------------*/