mapp_ami.c 7.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243
  1. //==================================================================
  2. //
  3. // Filename: mapp_ami.c
  4. // Description: Entainment Car CAN BUS data process.
  5. //
  6. //------------------------------------------------------------------
  7. //
  8. // version:
  9. // data: 21:28pm, 14.Mar.2013, written by Sirius
  10. // Description:
  11. //
  12. //------------------------------------------------------------------
  13. //==================================================================
  14. /*------------------------------------------------------------------------------
  15. * I N C L U D E
  16. *------------------------------------------------------------------------------*/
  17. #include "stm32f0xx.h"
  18. #include "general.h"
  19. #include "mapp_ami.h"
  20. #include "mapp_msg.h"
  21. #include "mapp_ext.h"
  22. #include "main.h"
  23. #include "mapp_arm.h"
  24. #include "mapp_can.h"
  25. #include "mapp_gpio.h"
  26. #include "mapp_tp_buick.h"
  27. /*------------------------------------------------------------------------------
  28. * D E F I N E
  29. *------------------------------------------------------------------------------*/
  30. /* Macro define for start or sleep wait timer */
  31. /*------------------------------------------------------------------------------
  32. * S T R U C T
  33. *------------------------------------------------------------------------------*/
  34. /*------------------------------------------------------------------------------
  35. * S T A T I C - V A R I A B L E S
  36. *------------------------------------------------------------------------------*/
  37. static VU16 s_vu16Car1Tmr = 0;
  38. static VU16 s_vu16Car2Tmr = 0;
  39. static VU16 s_vu16Car3Tmr = 0;
  40. static VU16 s_vu16Car4Tmr = 0;
  41. /*------------------------------------------------------------------------------
  42. * E X T E R N
  43. *------------------------------------------------------------------------------*/
  44. /*------------------------------------------------------------------------------
  45. * P R O T O T Y P E
  46. *------------------------------------------------------------------------------*/
  47. static void s_frmCarTxNull(U16 prm);
  48. static void s_frmCarTxSwtich(U16 prm);
  49. static void s_frmCarTxLight(U16 prm) ;
  50. static void s_frmCarTxFodLight(U16 prm) ;
  51. static void s_frmCarTxGMLight(U16 prm) ;
  52. //------------------------------------------------------------------
  53. // array for data group transmit ON CAN BUS.
  54. // 15:09pm, 14.Jun.2013, modified by Charlie
  55. //------------------------------------------------------------------
  56. static fp_prm arryCarTxTbl[NumOfAmiMsg] = {
  57. s_frmCarTxNull,
  58. s_frmCarTxSwtich,
  59. s_frmCarTxLight,
  60. s_frmCarTxFodLight,
  61. s_frmCarTxGMLight,
  62. };
  63. /*----------------------------------------------------------------------
  64. // Function name : CarVarInit
  65. // Input parameter :
  66. // Output parameter :
  67. // Use Function : Init Car module variables.
  68. // Reserve date : 21:35pm, 14.Mar.2013, written by Sirius
  69. ----------------------------------------------------------------------*/
  70. void AmiVarInit(void)
  71. {
  72. s_vu16Car1Tmr=0;
  73. s_vu16Car2Tmr =0;
  74. s_vu16Car3Tmr =0;
  75. s_vu16Car4Tmr =0;
  76. }
  77. /*----------------------------------------------------------------------
  78. // Function name : CanAppLayerActive
  79. // Input parameter :
  80. // Output parameter :
  81. // Use Function :
  82. // Reserve date : 09:16am, 12.May.2014, written by Charlie
  83. ----------------------------------------------------------------------*/
  84. BOOL CanAppLayerActive(void)
  85. {
  86. if (s_tCanState != CAN_STATE_RUN) {
  87. return (FALSE);
  88. }
  89. if (!gtAmi.basic.ignit) {
  90. return (FALSE);
  91. }
  92. return (TRUE);
  93. }
  94. /*----------------------------------------------------------------------
  95. // Function name : CarTxTask
  96. // Input parameter :
  97. // Output parameter :
  98. // Use Function :
  99. // Reserve date : 15:35pm, 14.Jun.2013, written by Charlie
  100. ----------------------------------------------------------------------*/
  101. void AmiTxTask(void)
  102. {
  103. T_MESSAGE *pmsg;
  104. // if (!CanAppLayerActive()) {
  105. // OSQFlush(AmiMsgQueue);
  106. // return;
  107. // }
  108. pmsg = OSQGet(AmiMsgQueue);
  109. if ((pmsg->id) &&(pmsg->id < NumOfAmiMsg)) {
  110. arryCarTxTbl[pmsg->id](pmsg->prm);
  111. }
  112. }
  113. /*----------------------------------------------------------------------
  114. // Function uses : AmiTaskTmr
  115. // Input parameter :
  116. // Output parameter :
  117. // Use Function :
  118. // Reserve date : 09:11am, 30.Aug.2012, written by Sirius
  119. ----------------------------------------------------------------------*/
  120. void AmiTaskTmr(void)
  121. {
  122. if (s_vu16Car1Tmr) { s_vu16Car1Tmr--; }
  123. if (s_vu16Car2Tmr) { s_vu16Car2Tmr--; }
  124. if (s_vu16Car3Tmr) { s_vu16Car3Tmr--; }
  125. if (s_vu16Car4Tmr) { s_vu16Car4Tmr--; }
  126. }
  127. static void s_frmCarTxNull(U16 prm) {
  128. U08 cnt =0;
  129. cnt =cnt;
  130. }
  131. static void s_frmCarTxSwtich(U16 prm) {
  132. if (prm ) {
  133. s_vu16Car1Tmr = prm;
  134. }
  135. if (s_vu16Car1Tmr ==0x00) {
  136. if(!gtAmi.basic.ignit){
  137. GpioLvdsSwitchCfg(SRC_TYPE_ORIG);
  138. return;
  139. }
  140. /*进入倒车和AVM界面,源信息不变*/
  141. if (gtAmi.basic.avm ) {
  142. if (gtArm.slaver.cursrc ==SRC_TYPE_ORIG) {
  143. GpioLvdsSwitchCfg(SRC_TYPE_CANADD);
  144. }
  145. return;
  146. }
  147. if (gtAmi.basic.rev ) {
  148. if ((gtArm.facset.camera ==CAM_TYPE_CAN) || (gtArm.facset.camera ==CAM_TYPE_CANVGA)) {
  149. if (gtArm.slaver.cursrc == SRC_TYPE_ORIG) {
  150. GpioLvdsSwitchCfg(SRC_TYPE_CANADD);
  151. }
  152. return;
  153. } else if((gtArm.facset.camera ==CAM_TYPE_AVM) ||(gtArm.facset.camera ==CAM_TYPE_AVMVGA)){
  154. // if( gtCarType.CarType == CARTYPE_BUICK) {
  155. // if (gtArm.slaver.cursrc == SRC_TYPE_ORIG) {
  156. // GpioLvdsSwitchCfg(SRC_TYPE_CANADD);
  157. // }
  158. // }
  159. } else {
  160. if (gtArm.slaver.cursrc != SRC_TYPE_ORIG) {
  161. GpioLvdsSwitchCfg(SRC_TYPE_ORIG);
  162. }
  163. return;
  164. }
  165. }
  166. /*原车源和加装源,切换LVDS*/
  167. if (gtArm.slaver.cursrc == SRC_TYPE_ORIG) {
  168. GpioLvdsSwitchCfg(SRC_TYPE_ORIG);
  169. } else {
  170. GpioLvdsSwitchCfg(SRC_TYPE_CANADD);
  171. }
  172. } else {
  173. OSQPost(AmiMsgQueue, AMI_MSG_SWTICH, 0);
  174. }
  175. }
  176. static void s_frmCarTxLight(U16 prm) {
  177. if (prm ) {
  178. s_vu16Car2Tmr = prm;
  179. GpioBackLightCfg(SET); //关屏
  180. }
  181. if (s_vu16Car2Tmr ==0x00) {
  182. GpioBackLightCfg(RESET); //开屏
  183. gtArm.screenoffflag =1;
  184. } else {
  185. OSQPost(AmiMsgQueue, AMI_MSG_HONDALIGHT, 0);
  186. }
  187. }
  188. static void s_frmCarTxFodLight(U16 prm) {
  189. if (prm ) {
  190. s_vu16Car3Tmr = prm;
  191. GpioFodGm8LcmCfg(SET); //福特关屏
  192. }
  193. if (s_vu16Car3Tmr ==0x00) {
  194. GpioFodGm8LcmCfg(RESET); //福特 开屏
  195. } else {
  196. OSQPost(AmiMsgQueue, AMI_MSG_FODLIGHT, 0);
  197. }
  198. }
  199. static void s_frmCarTxGMLight(U16 prm) {
  200. if (prm ) {
  201. s_vu16Car3Tmr = prm;
  202. }
  203. if (s_vu16Car3Tmr ==0x00) {
  204. TpBackLightOn();
  205. } else {
  206. OSQPost(AmiMsgQueue, AMI_MSG_GMLIGHT, 0);
  207. }
  208. }
  209. /*------------------------------- E O F ----------------------------------------*/