car_sim.cpp 991 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. #include <stdint.h>
  2. #include <random>
  3. #include "../common/comm.h"
  4. #include "Protocol.pb.h"
  5. #include "car_sim.h"
  6. #include "EgoClient.h"
  7. CCarSim::CCarSim(CEgoClient* car) :_car(car)
  8. {
  9. }
  10. void CCarSim::Start()
  11. {
  12. }
  13. void CCarSim::Stop()
  14. {
  15. }
  16. void CCarSim::OnPeerMessage(int16_t cmd, int16_t length, const void* data)
  17. {
  18. switch (cmd)
  19. {
  20. case RemoNet::CC_Ping:
  21. {
  22. RemoNet::CCPing Req;
  23. Req.ParseFromArray(data, length);
  24. int64_t tick = GetTickCount64();
  25. int32_t diff = tick - Req.tick();
  26. _car->OnPingValue(diff);
  27. }
  28. break;
  29. case RemoNet::CC_StopACK:
  30. {
  31. _car->OnStopAck();
  32. }
  33. break;
  34. case RemoNet::CC_BootRep:
  35. {
  36. RemoNet::CCBooStrapRep rep;
  37. rep.ParseFromArray(data, length);
  38. _car->OnBootstrapd(rep.ret());
  39. }
  40. break;
  41. case RemoNet::CC_StartupRep:
  42. {
  43. RemoNet::CCStartupRep rep;
  44. rep.ParseFromArray(data, length);
  45. _car->OnStartupd(rep.ret());
  46. }
  47. break;
  48. }
  49. }