NerfUS mobile node that manages a target for the Nerf gun firing range

Dependencies:   LedController mbed-rtos mbed NerfUSXbee Servomotor TargetManager

Fork of NerfUS by NerfUS

Committer:
Maxime Dupuis
Date:
Wed Apr 12 10:33:32 2017 -0400
Revision:
51:6bf268cd1a1b
Parent:
38:70a1c8bd2877
Update tests to ignore target hits before 750ms threshold

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Maxime Dupuis 28:8fc53a870691 1 #ifndef TARGET_MANAGER_HPP
Maxime Dupuis 28:8fc53a870691 2 #define TARGET_MANAGER_HPP
Maxime Dupuis 28:8fc53a870691 3
Maxime Dupuis 30:412a779cf607 4 #include "NerfusTickerInterface.hpp"
Maxime Dupuis 28:8fc53a870691 5 #include "TargetInfo.hpp"
Maxime Dupuis 30:412a779cf607 6 #include "TargetInterface.hpp"
Maxime Dupuis 28:8fc53a870691 7 #include "TargetManagerInterface.hpp"
Maxime Dupuis 28:8fc53a870691 8
Maxime Dupuis 28:8fc53a870691 9 #include <vector>
Maxime Dupuis 35:7ee45f6d6484 10 #include "stdint.h"
Maxime Dupuis 28:8fc53a870691 11
Maxime Dupuis 28:8fc53a870691 12 class TargetManager : public TargetManagerInterface
Maxime Dupuis 28:8fc53a870691 13 {
Maxime Dupuis 28:8fc53a870691 14 public:
Maxime Dupuis 38:70a1c8bd2877 15 TargetManager(std::vector<TargetInterface*>& targets, std::vector<NerfusTickerInterface*>& nerfus_tickers);
Maxime Dupuis 30:412a779cf607 16
Maxime Dupuis 34:85994e0501fb 17 void execute(const TargetInfo& target_info);
Maxime Dupuis 37:8fc7845ae95b 18 virtual void execute(const std::vector<uint8_t>& target_info_bytes, int *address = 0);
Maxime Dupuis 28:8fc53a870691 19
Maxime Dupuis 28:8fc53a870691 20 virtual void target_missed(int target_id);
Maxime Dupuis 28:8fc53a870691 21 virtual void target_hit(int target_id);
Maxime Dupuis 28:8fc53a870691 22
Maxime Dupuis 28:8fc53a870691 23 private:
Maxime Dupuis 30:412a779cf607 24 std::vector<TargetInterface*>& targets;
Maxime Dupuis 38:70a1c8bd2877 25 std::vector<NerfusTickerInterface*>& nerfus_tickers;
Maxime Dupuis 32:50b777bab5a4 26 std::vector<bool> is_active_target;
Maxime Dupuis 28:8fc53a870691 27 };
Maxime Dupuis 28:8fc53a870691 28
Maxime Dupuis 28:8fc53a870691 29 #endif