tcp_util.cpp 6.8 KB

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