IH100.c 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  1. #include "IH100.h"
  2. #include "rtwtypes.h"
  3. #include "IH100_private.h"
  4. #include "look1_iu8lu16n16tu16_binlcase.h"
  5. #include "BCUDisp.h"
  6. MdlrefDW_IH100_T IH100_MdlrefDW;
  7. B_IH100_c_T IH100_B;
  8. DW_IH100_f_T IH100_DW;
  9. void IH100_Init(void)
  10. {
  11. IH100_DW.UnitDelay_DSTATE = true;
  12. }
  13. void IH100(uint16_T *rty_ihd_tm_parkTime)
  14. {
  15. boolean_T rtb_RelationalOperator;
  16. ihd_tm_yearEo = rted_tm_year;
  17. ihd_tm_monthEo = rted_tm_month;
  18. ihd_tm_dayEo = rted_tm_day;
  19. ihd_tm_hourEo = rted_tm_hour;
  20. ihd_tm_minEo = rted_tm_min;
  21. ihd_tm_secEo = rted_tm_sec;
  22. rtb_RelationalOperator = IH100_DW.UnitDelay_DSTATE;
  23. IH100_DW.UnitDelay_DSTATE = false;
  24. if (rtb_RelationalOperator) {
  25. uint16_T tmp;
  26. uint8_T rtb_Merge1;
  27. uint8_T rtb_Merge2;
  28. uint8_T rtb_Merge3;
  29. uint8_T rtb_Merge4;
  30. uint8_T rtb_Merge5;
  31. uint8_T rtb_Merge6;
  32. rtb_RelationalOperator = ((((uint16_T)(rted_tm_year % 4) == 0) && ((uint16_T)
  33. (rted_tm_year % 100) != 0)) || ((uint16_T)(rted_tm_year % 400) == 0));
  34. if (rtb_RelationalOperator) {
  35. tmp = look1_iu8lu16n16tu16_binlcase((uint8_T)(rted_tm_month - 1),
  36. rtCP_uDLookupTable1_bp01Data, rtCP_uDLookupTable1_tableData, 11U);
  37. } else {
  38. tmp = look1_iu8lu16n16tu16_binlcase((uint8_T)(rted_tm_month - 1),
  39. rtCP_uDLookupTable_bp01Data, rtCP_uDLookupTable_tableData, 11U);
  40. }
  41. IH100_B.Add1 = ((((((uint16_T)(((int32_T)((uint32_T)rted_tm_year >> 2) -
  42. (int32_T)(rted_tm_year / 100U)) - rtb_RelationalOperator) + rted_tm_year *
  43. 365U) + tmp) + (uint8_T)(rted_tm_day - 1)) * 86400U +
  44. rted_tm_hour * 3600U) + rted_tm_min * 60U) + rted_tm_sec;
  45. if (rtev_flg_EESt[0]) {
  46. rtb_Merge6 = ihd_tm_yearEi;
  47. rtb_Merge1 = ihd_tm_monthEi;
  48. rtb_Merge3 = ihd_tm_dayEi;
  49. rtb_Merge2 = ihd_tm_hourEi;
  50. rtb_Merge4 = ihd_tm_minEi;
  51. rtb_Merge5 = ihd_tm_secEi;
  52. } else {
  53. rtb_Merge6 = rted_tm_year;
  54. rtb_Merge1 = rted_tm_month;
  55. rtb_Merge3 = rted_tm_day;
  56. rtb_Merge2 = rted_tm_hour;
  57. rtb_Merge4 = rted_tm_min;
  58. rtb_Merge5 = rted_tm_sec;
  59. }
  60. rtb_RelationalOperator = ((((uint16_T)(rtb_Merge6 % 4) == 0) && ((uint16_T)
  61. (rtb_Merge6 % 100) != 0)) || ((uint16_T)(rtb_Merge6 % 400) == 0));
  62. if (rtb_RelationalOperator) {
  63. tmp = look1_iu8lu16n16tu16_binlcase((uint8_T)(rtb_Merge1 - 1),
  64. rtCP_uDLookupTable1_bp01Data_o, rtCP_uDLookupTable1_tableData_g, 11U);
  65. } else {
  66. tmp = look1_iu8lu16n16tu16_binlcase((uint8_T)(rtb_Merge1 - 1),
  67. rtCP_uDLookupTable_bp01Data_b, rtCP_uDLookupTable_tableData_k, 11U);
  68. }
  69. *rty_ihd_tm_parkTime = (uint16_T)(((((int32_T)IH100_B.Add1 - (int32_T)
  70. (((((uint16_T)(((int32_T)((uint32_T)rtb_Merge6 >> 2) - (int32_T)
  71. (rtb_Merge6 / 100U)) - rtb_RelationalOperator) +
  72. rtb_Merge6 * 365U) + tmp) + (uint8_T)(rtb_Merge3 - 1)) * 86400U)) -
  73. (int32_T)(rtb_Merge2 * 3600U)) - (int32_T)(rtb_Merge4 * 60U)) - rtb_Merge5);
  74. }
  75. IH100_DW.UnitDelay1_DSTATE++;
  76. ihd_tm_realTime = IH100_DW.UnitDelay1_DSTATE / 10U + IH100_B.Add1;
  77. ihv_flg_EESt[0] = rtev_flg_EESt[0];
  78. ihv_flg_EESt[1] = rtev_flg_EESt[1];
  79. ihv_flg_EESt[2] = rtev_flg_EESt[2];
  80. ihv_flg_EESt[3] = rtev_flg_EESt[3];
  81. }
  82. void IH100_initialize(const char_T **rt_errorStatus)
  83. {
  84. RT_MODEL_IH100_T *const IH100_M = &(IH100_MdlrefDW.rtm);
  85. rtmSetErrorStatusPointer(IH100_M, rt_errorStatus);
  86. }