TbVmsCtlrStts.java 6.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190
  1. package com.its.vms.entity;
  2. import com.its.app.utils.SysUtils;
  3. import lombok.Data;
  4. import java.io.Serializable;
  5. /**
  6. * DTO Class
  7. */
  8. @Data
  9. public class TbVmsCtlrStts implements Serializable {
  10. private static final long serialVersionUID = 1L;
  11. private Long vmsCtlrNmbr;
  12. private String updtDt;
  13. private String cmncSttsCd; // 통신 상태 코드('CMS')
  14. private String pwerSttsCd; // 전원 상태 코드('PWS')
  15. private String modlSttsCd; // 모듈(LED) 상태 코드
  16. private String cboxDoorSttsCd; // 함체 문 상태 코드('CDS')
  17. private String fanSttsCd; // 팬 상태 코드('PAS')
  18. private String hetrSttsCd; // 히터 상태 코드('HTS')
  19. private Integer cboxTmpr; // 함체 온도
  20. private Integer brghVal; // 휘도값
  21. private String commSttsCd; // 통신 상태 코드('CMS')
  22. private String modlStts; // 모듈상태(문자열, 0: 꺼짐, 1: 켜짐, 9: 알수없음)
  23. private String pwerStts; // 전원상태(문자열, 0: 꺼짐, 1: 켜짐, 9: 알수없음)
  24. public TbVmsCtlrStts(Long vmsCtlrNmbr) {
  25. this.vmsCtlrNmbr = vmsCtlrNmbr;
  26. initUnknown();
  27. }
  28. public TbVmsCtlrStts clone() {
  29. TbVmsCtlrStts dto = new TbVmsCtlrStts(this.vmsCtlrNmbr);
  30. dto.setUpdtDt(this.updtDt);
  31. dto.setCmncSttsCd(this.cmncSttsCd);
  32. dto.setPwerSttsCd(this.pwerSttsCd);
  33. dto.setModlSttsCd(this.modlSttsCd);
  34. dto.setCboxDoorSttsCd(this.cboxDoorSttsCd);
  35. dto.setFanSttsCd(this.fanSttsCd);
  36. dto.setHetrSttsCd(this.hetrSttsCd);
  37. dto.setCboxTmpr(this.cboxTmpr);
  38. dto.setBrghVal(this.brghVal);
  39. dto.setCommSttsCd(this.commSttsCd);
  40. dto.setModlStts(this.modlStts);
  41. dto.setPwerStts(this.pwerStts);
  42. return dto;
  43. }
  44. public void initStts(boolean isConnected) {
  45. if (isConnected) {
  46. initUnknown();
  47. } else {
  48. initError();
  49. }
  50. }
  51. public void initUnknown() {
  52. this.updtDt = SysUtils.getSysTime();
  53. this.cmncSttsCd = "CMS2";
  54. this.pwerSttsCd = "PWS2";
  55. this.modlSttsCd = "MOS2";
  56. this.cboxDoorSttsCd = "CDS2";
  57. this.fanSttsCd = "PAS2";
  58. this.hetrSttsCd = "HTS2";
  59. this.cboxTmpr = 0;
  60. this.brghVal = 0;
  61. this.commSttsCd = "CMS2";
  62. this.modlStts = "11111111111111111111";
  63. this.pwerStts = "11111111111111111111";
  64. }
  65. public void initError() {
  66. initUnknown();
  67. this.cmncSttsCd = "CMS1";
  68. this.commSttsCd = "CMS1";
  69. }
  70. public void initNormal() {
  71. initUnknown();
  72. this.cmncSttsCd = "CMS0";
  73. this.commSttsCd = "CMS0";
  74. }
  75. public void updateStts(TbVmsCtlrStts dto) {
  76. this.updtDt = dto.getUpdtDt();
  77. this.cmncSttsCd = dto.getCmncSttsCd();
  78. this.pwerSttsCd = dto.getPwerSttsCd();
  79. this.modlSttsCd = dto.getModlSttsCd();
  80. this.cboxDoorSttsCd = dto.getCboxDoorSttsCd();
  81. this.fanSttsCd = dto.getFanSttsCd();
  82. this.hetrSttsCd = dto.getHetrSttsCd();
  83. this.cboxTmpr = dto.getCboxTmpr();
  84. this.brghVal = dto.getBrghVal();
  85. this.commSttsCd = dto.getCommSttsCd();
  86. this.modlStts = dto.getModlStts();
  87. this.pwerStts = dto.getPwerStts();
  88. }
  89. /*
  90. private int door; // Door Open/Close 상태, 0x00: Open, 0x01: Close, 0x09: Unknown
  91. private int power; // 전원의 ON/OFF 상태, 0x00: On, 0x01: Off, 0x09: Unknown (Sign Board)
  92. private int fan; // VMS Fan 동작 상태, 0x00: On, 0x01: Off, 0x09: Unknown
  93. private int heater; // VMS Heater 동작 상태, 0x00: On, 0x01: Off, 0x09: Unknown
  94. private int formNo; // 표출 폼 번호, 현재 표출중인 폼 번호 : 0~9999
  95. private int reboot; // 표출 폼 번호, 0x00: 정상, 0x01: 재실행
  96. private int cboxTemp; // 함체온도, 127 ~ -127, -128 : Unknown
  97. private int brightMode; // 화면의 밝기 - 휘도 모드, 0x00:주간, 0x01:야간, 0x02:Auto, 0x03:수동
  98. private int brightCurr; // 화면의 밝기 - 현재 휘도값, 0~100
  99. private int brightWeek; // 화면의 밝기 - 주간 휘도값, 0~100
  100. private int brightNght; // 화면의 밝기 - 야간 휘도값, 0~100
  101. private int dpTemp; // 외부온도, -127 ~ 127, -128: Unknown
  102. private int dpHum; // 외부습도, 0 ~ 100, 101: Unknown
  103. private int powerModuleStts = 0x02; // 0x00: 정상, 0x01: 에러, 0x02: Unknown
  104. private int moduleStts = 0x02; // 0x00: 정상, 0x01: 불량, 0x02: Unknown
  105. private int cboxFan = 0x09; // 0x00: On, 0x01: Off, 0x09: Unknown
  106. private int cboxHeather = 0x09; // 0x00: On, 0x01: Off, 0x09: Unknown
  107. */
  108. public boolean updateStatus(int door, int power, int fan, int heater, int formNo, int reboot, int cboxTemp,
  109. int brightMode, int brightCurr, int brightWeek, int brightNght, int dpTemp, int dpHum,
  110. int powerModuleStts, int moduleStts, int cboxFan, int cboxHeather) {
  111. boolean isDifferent = false;
  112. this.updtDt = SysUtils.getSysTime();
  113. int doorSttsCd;
  114. if (door == 0) doorSttsCd = 1;
  115. else if (door == 1) doorSttsCd = 0;
  116. else doorSttsCd = 2;
  117. if (fan > 1) {
  118. fan = 2;
  119. }
  120. if (heater > 1) {
  121. heater = 2;
  122. }
  123. String pwerSttsCd = "PWS" + powerModuleStts;
  124. String modlSttsCd = "MOS" + moduleStts;
  125. String cboxDoorSttsCd = "CDS" + doorSttsCd;
  126. String fanSttsCd = "PAS" + fan;
  127. String hetrSttsCd = "HTS" + heater;
  128. if (!pwerSttsCd.equals(this.pwerSttsCd)) {
  129. isDifferent = true;
  130. this.pwerSttsCd = pwerSttsCd;
  131. }
  132. if (!modlSttsCd.equals(this.modlSttsCd)) {
  133. isDifferent = true;
  134. this.modlSttsCd = modlSttsCd;
  135. }
  136. if (!cboxDoorSttsCd.equals(this.cboxDoorSttsCd)) {
  137. isDifferent = true;
  138. this.cboxDoorSttsCd = cboxDoorSttsCd;
  139. }
  140. if (!fanSttsCd.equals(this.fanSttsCd)) {
  141. isDifferent = true;
  142. this.fanSttsCd = fanSttsCd;
  143. }
  144. if (!hetrSttsCd.equals(this.hetrSttsCd)) {
  145. isDifferent = true;
  146. this.hetrSttsCd = hetrSttsCd;
  147. }
  148. if (cboxTemp != this.cboxTmpr) {
  149. isDifferent = true;
  150. this.cboxTmpr = cboxTemp;
  151. }
  152. if (brightCurr != this.brghVal) {
  153. isDifferent = true;
  154. this.brghVal = brightCurr;
  155. }
  156. return isDifferent;
  157. }
  158. public boolean updatePowerModuleStts(String stts) {
  159. if (stts.equals(this.pwerStts)) {
  160. return false;
  161. }
  162. this.pwerStts = stts;
  163. return true;
  164. }
  165. public boolean updateModuleStts(String stts) {
  166. if (stts.equals(this.modlStts)) {
  167. return false;
  168. }
  169. this.modlStts = stts;
  170. return true;
  171. }
  172. }