tcp_util.cpp 7.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277
  1. /*
  2. * tcp_util.cpp
  3. *
  4. * Created on: 2024年7月18日
  5. * Author: m
  6. */
  7. #include "tcp_model.h"
  8. #include "tcp_util.h"
  9. #include "json/json.h"
  10. #include <utils/TimeHelper.h>
  11. #include "base/strings.hpp"
  12. #include "service/BusinessConfig.h"
  13. void sendAuthLogin(std::string clerkNfc) {
  14. Json::Value json;
  15. json["passNo"] = clerkNfc;
  16. json["operationData"] = "";
  17. // 发送tcp, tcp_type = AUTH, tcp_action = LOGIN
  18. TcpModel tcpModel;
  19. tcpModel.tid = base::format("t%d",TimeHelper::getCurrentTime());
  20. tcpModel.type = TcpType::AUTH;
  21. tcpModel.action = AuthAction::LOGIN;
  22. tcpModel.from_id = StoragePreferences::getInt(STORE_DEVICE_ID,0);
  23. tcpModel.to_id = 0;
  24. tcpModel.json = json;
  25. sendTcpModel(tcpModel);
  26. }
  27. void sendAuthLogout(std::string authItId) {
  28. TcpModel tcpModel;
  29. tcpModel.tid = base::format("t%d",TimeHelper::getCurrentTime());
  30. tcpModel.type = TcpType::AUTH;
  31. tcpModel.action = AuthAction::LOGOUT;
  32. tcpModel.from_id = StoragePreferences::getInt(STORE_DEVICE_ID,0);
  33. tcpModel.to_id = 0;
  34. tcpModel.data = authItId;
  35. sendTcpModel(tcpModel);
  36. }
  37. void sendSignIn(std::string clerkNfc) {
  38. Json::Value json;
  39. json["passNo"] = clerkNfc;
  40. json["operationData"] = "";
  41. // 发送tcp, tcp_type = AUTH, tcp_action = LOGIN
  42. TcpModel tcpModel;
  43. tcpModel.tid = base::format("t%d",TimeHelper::getCurrentTime());
  44. tcpModel.type = TcpType::SIGN_IN;
  45. tcpModel.action = SignInAction::SIGN_IN;
  46. tcpModel.from_id = StoragePreferences::getInt(STORE_DEVICE_ID,0);
  47. tcpModel.to_id = 0;
  48. tcpModel.json = json;
  49. sendTcpModel(tcpModel);
  50. }
  51. void sendPostionStart(std::string clerkNfc) {
  52. Json::Value json;
  53. json["passNo"] = clerkNfc;
  54. json["operationData"] = "";
  55. TcpModel tcpModel;
  56. tcpModel.tid = base::format("t%d", TimeHelper::getCurrentTime());
  57. tcpModel.type = TcpType::POSITION;
  58. tcpModel.action = PositionAction::POSITION_START;
  59. tcpModel.from_id = StoragePreferences::getInt(STORE_DEVICE_ID,0);
  60. tcpModel.to_id = 0;
  61. tcpModel.json = json;
  62. sendTcpModel(tcpModel);
  63. }
  64. void sendRoomCheckStart(std::string clerkNfc) {
  65. Json::Value json;
  66. json["passNo"] = clerkNfc;
  67. json["operationData"] = "";
  68. TcpModel tcpModel;
  69. tcpModel.tid = base::format("t%d", TimeHelper::getCurrentTime());
  70. tcpModel.type = TcpType::ROOMCHECK;
  71. tcpModel.action = RoomCheckAction::START;
  72. tcpModel.from_id = StoragePreferences::getInt(STORE_DEVICE_ID,0);
  73. tcpModel.to_id = 0;
  74. tcpModel.json = json;
  75. sendTcpModel(tcpModel);
  76. }
  77. void sendNursing() {
  78. // 门灯控制
  79. std::string color = StoragePreferences::getString(STORE_NURSING_COLOR_RGB, "010");
  80. if (color != "" && color.size() == 3) {
  81. color = color + "F";
  82. } else {
  83. color = "010F";
  84. }
  85. lightControl("DOORLED", color);
  86. // 发送tcp, tcp_type = SIDE, tcp_action = NURSING
  87. TcpModel tcpModel;
  88. tcpModel.tid = base::format("t%d",TimeHelper::getCurrentTime());
  89. tcpModel.type = TcpType::SIDE;
  90. tcpModel.action = SideAction::NURSING;
  91. tcpModel.from_id = StoragePreferences::getInt(STORE_DEVICE_ID,0);
  92. tcpModel.to_id = 0;
  93. sendTcpModel(tcpModel);
  94. }
  95. void sendNursingEnd() {
  96. // 发送tcp, tcp_type = SIDE, tcp_action = NURSING_END
  97. TcpModel tcpModel;
  98. tcpModel.tid = base::format("t%d", TimeHelper::getCurrentTime());
  99. tcpModel.type = TcpType::SIDE;
  100. tcpModel.action = SideAction::NURSING_END;
  101. tcpModel.from_id = StoragePreferences::getInt(STORE_DEVICE_ID,0);
  102. tcpModel.to_id = 0;
  103. tcpModel.data = StoragePreferences::getString(STORE_NURSING_INTERACTION_ID, ""); // 获取nursingTcpModel里,id字段的数据
  104. sendTcpModel(tcpModel);
  105. }
  106. void sendReinforceCall() {
  107. TcpModel tcpModel;
  108. tcpModel.type = TcpType::REINFORCE;
  109. tcpModel.action = ReinforceAction::CALL;
  110. tcpModel.from_id = StoragePreferences::getInt(STORE_DEVICE_ID,0);
  111. tcpModel.to_id = 0;
  112. sendTcpModel(tcpModel);
  113. }
  114. void sendCallByDoor() {
  115. // 发送tcp, tcp_type = VOICE, tcp_action = CANCEL_BY_DOOR
  116. TcpModel tcpModel;
  117. tcpModel.tid = base::format("t%d",TimeHelper::getCurrentTime());
  118. tcpModel.type = TcpType::VOICE;
  119. tcpModel.action = VoiceAction::CANCEL_BY_DOOR;
  120. tcpModel.from_id = StoragePreferences::getInt(STORE_DEVICE_ID,0);
  121. tcpModel.to_id = 0;
  122. sendTcpModel(tcpModel);
  123. }
  124. void sendBlueCodeCall() {
  125. TcpModel tcpModel;
  126. tcpModel.tid = base::format("t%d",TimeHelper::getCurrentTime());
  127. tcpModel.type = TcpType::BLUE_CODE;
  128. tcpModel.action = BlueCodeAction::CALL;
  129. tcpModel.from_id = StoragePreferences::getInt(STORE_DEVICE_ID,0);
  130. tcpModel.to_id = 0;
  131. sendTcpModel(tcpModel);
  132. }
  133. void sendBlueCodeResponse(std::string tid, std::string blueCodeId) {
  134. TcpModel tcpModel;
  135. tcpModel.tid = tid;
  136. tcpModel.type = TcpType::BLUE_CODE;
  137. tcpModel.action = BlueCodeAction::RESPONSE;
  138. tcpModel.from_id = StoragePreferences::getInt(STORE_DEVICE_ID,0);
  139. tcpModel.to_id = 0;
  140. tcpModel.data = blueCodeId;
  141. sendTcpModel(tcpModel);
  142. }
  143. std::string sendVoiceCall(int toId) {
  144. TcpModel tcpModel;
  145. tcpModel.tid = base::format("t%d", TimeHelper::getCurrentTime());
  146. tcpModel.type = TcpType::VOICE;
  147. tcpModel.action = VoiceAction::CALL;
  148. tcpModel.from_id = StoragePreferences::getInt(STORE_DEVICE_ID,0);
  149. tcpModel.to_id = toId;
  150. sendTcpModel(tcpModel);
  151. return tcpModel.tid;
  152. }
  153. void sendVoiceTcp(std::string action, TcpModel model, int toId){
  154. //发出TCP
  155. TcpModel tcpModel;
  156. tcpModel.tid = model.tid;
  157. tcpModel.type = TcpType::VOICE;
  158. tcpModel.action = action;
  159. tcpModel.from_id = StoragePreferences::getInt(STORE_DEVICE_ID,0);
  160. tcpModel.to_id = toId;
  161. if (model.data!=""){
  162. tcpModel.data = model.data;
  163. } else if (model.json>0){
  164. tcpModel.json = model.json;
  165. }
  166. sendTcpModel(tcpModel);
  167. }
  168. void sendVoiceCancel(int fromId, int toId) {
  169. TcpModel tcpModel;
  170. tcpModel.type = TcpType::VOICE;
  171. tcpModel.action = VoiceAction::CANCEL;
  172. tcpModel.from_id = fromId;
  173. tcpModel.to_id = toId;
  174. sendTcpModel(tcpModel);
  175. }
  176. std::string sendVoiceHCall(int id) {
  177. Json::Value json;
  178. json["roleType"] = "NURSE";
  179. TcpModel tcpModel;
  180. tcpModel.tid = base::format("t%d",TimeHelper::getCurrentTime());
  181. tcpModel.type = TcpType::VOICE;
  182. tcpModel.action = VoiceAction::HCALL;
  183. tcpModel.from_id = id;
  184. tcpModel.to_id = 0;
  185. tcpModel.json = json;
  186. sendTcpModel(tcpModel);
  187. return tcpModel.tid;
  188. }
  189. void sendSosCall(std::string sosMsg) {
  190. TcpModel tcpModel;
  191. tcpModel.tid = base::format("t%d", TimeHelper::getCurrentTime());
  192. tcpModel.type = TcpType::SOS;
  193. tcpModel.action = SosAction::CALL;
  194. tcpModel.from_id = StoragePreferences::getInt(STORE_DEVICE_ID, 0);
  195. tcpModel.to_id = 0;
  196. if (sosMsg != "") {
  197. Json::Value data;
  198. data["title"] = sosMsg;
  199. tcpModel.json = data;
  200. }
  201. sendTcpModel(tcpModel);
  202. }
  203. void sendSosCancel(std::string sosId) {
  204. TcpModel tcpModel;
  205. tcpModel.tid = base::format("t%d", TimeHelper::getCurrentTime());
  206. tcpModel.type = TcpType::SOS;
  207. tcpModel.action = SosAction::CANCEL;
  208. tcpModel.from_id = StoragePreferences::getInt(STORE_DEVICE_ID, 0);
  209. tcpModel.to_id = 0;
  210. tcpModel.data = sosId;
  211. sendTcpModel(tcpModel);
  212. }
  213. void sendDataRemindOhter(std::string msg) {
  214. TcpModel tcpModel;
  215. tcpModel.tid = base::format("t%d", TimeHelper::getCurrentTime());
  216. tcpModel.type = TcpType::DATA;
  217. tcpModel.action = DataAction::REMIND_OTHER;
  218. tcpModel.from_id = StoragePreferences::getInt(STORE_DEVICE_ID, 0);
  219. tcpModel.to_id = 0;
  220. tcpModel.data = msg;
  221. sendTcpModel(tcpModel);
  222. }