123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869 |
- //
- // Created by zx on 23-4-11.
- //
- #include "terminator_emqx.h"
- #include "unistd.h"
- Terminator_emqx::~Terminator_emqx()
- {
- if(client_!= nullptr){
- client_->disconnect();
- delete client_;
- client_= nullptr;
- }
- }
- bool Terminator_emqx::Connect(std::string ip,int port)
- {
- if(client_!= nullptr)
- {
- client_->disconnect();
- delete client_;
- }
- client_=new Paho_client(nodeId_);
- bool ret= client_->connect(ip,port);
- if(ret)
- {
- while(!client_->isconnected()) usleep(1000);
- client_->subcribe(subTopic_,1,StatuArrivedCallback,this);
- }
- return ret;
- }
- void Terminator_emqx::SendNavCmd(const NavMessage::NavCmd& cmd)
- {
- MqttMsg msg;
- msg.fromProtoMessage(cmd);
- if(client_)
- client_->publish(pubTopic_,1,msg);
- else
- printf("Send NavCmd failed : emqx client disconnected...\n");
- }
- void Terminator_emqx::set_statu_arrived(NavStatuCallback callback, void *context)
- {
- StatuArrivedCallback_=callback;
- context_=context;
- }
- Terminator_emqx::Terminator_emqx(std::string nodeId,std::string pubTopic,std::string subTopic)
- :client_(nullptr),nodeId_(nodeId),pubTopic_(pubTopic),subTopic_(subTopic)
- {
- StatuArrivedCallback_= nullptr;
- context_= nullptr;
- }
- void Terminator_emqx::StatuArrivedCallback(std::string topic,int QOS,MqttMsg& msg,void* context)
- {
- Terminator_emqx* terminator=(Terminator_emqx*)context;
- double x=0,y=0,theta=0,v=0,vth=0;
- NavMessage::NavStatu statu;
- if(msg.toProtoMessage(statu))
- {
- if (terminator->StatuArrivedCallback_)
- terminator->StatuArrivedCallback_(statu,terminator->context_);
- }
- }
|