Sends a predetermined color pattern to board.
56{
57
58 m_eCurrentLightingState = eState;
59
60
61 rovecomm::RoveCommPacket<uint8_t> stPacket;
62
63
64 switch (eState)
65 {
66 case MultimediaBoardLightingState::eOff:
67 {
68
69 stPacket.unDataId = manifest::Core::COMMANDS.find("LEDRGB")->second.DATA_ID;
70 stPacket.unDataCount = manifest::Core::COMMANDS.find("LEDRGB")->second.DATA_COUNT;
71 stPacket.eDataType = manifest::Core::COMMANDS.find("LEDRGB")->second.DATA_TYPE;
72
73 stPacket.vData.emplace_back(0);
74 stPacket.vData.emplace_back(0);
75 stPacket.vData.emplace_back(0);
76 break;
77 }
78 case MultimediaBoardLightingState::eCustom:
79 {
80
81 this->
SendRGB(m_stCustomRGBValues);
82 break;
83 }
84 case MultimediaBoardLightingState::eTeleOp:
85 {
86
87 stPacket.unDataId = manifest::Core::COMMANDS.find("STATEDISPLAY")->second.DATA_ID;
88 stPacket.unDataCount = manifest::Core::COMMANDS.find("STATEDISPLAY")->second.DATA_COUNT;
89 stPacket.eDataType = manifest::Core::COMMANDS.find("STATEDISPLAY")->second.DATA_TYPE;
90
91 stPacket.vData.emplace_back(
static_cast<uint8_t>(manifest::Core::DISPLAYSTATE::TELEOP));
92 break;
93 }
94 case MultimediaBoardLightingState::eAutonomy:
95 {
96
97 stPacket.unDataId = manifest::Core::COMMANDS.find("STATEDISPLAY")->second.DATA_ID;
98 stPacket.unDataCount = manifest::Core::COMMANDS.find("STATEDISPLAY")->second.DATA_COUNT;
99 stPacket.eDataType = manifest::Core::COMMANDS.find("STATEDISPLAY")->second.DATA_TYPE;
100
101 stPacket.vData.emplace_back(
static_cast<uint8_t>(manifest::Core::DISPLAYSTATE::AUTONOMY));
102 break;
103 }
104 case MultimediaBoardLightingState::eReachedGoal:
105 {
106
107 stPacket.unDataId = manifest::Autonomy::TELEMETRY.find("REACHEDGOAL")->second.DATA_ID;
108 stPacket.unDataCount = manifest::Autonomy::TELEMETRY.find("REACHEDGOAL")->second.DATA_COUNT;
109 stPacket.eDataType = manifest::Autonomy::TELEMETRY.find("REACHEDGOAL")->second.DATA_TYPE;
110 stPacket.vData.emplace_back(1);
111
112 if (network::g_pRoveCommUDPNode)
113 {
114 network::g_pRoveCommUDPNode->SendUDPPacket(stPacket, "0.0.0.0", constants::ROVECOMM_OUTGOING_UDP_PORT);
115 }
116
117 stPacket.unDataId = manifest::Core::COMMANDS.find("STATEDISPLAY")->second.DATA_ID;
118 stPacket.unDataCount = manifest::Core::COMMANDS.find("STATEDISPLAY")->second.DATA_COUNT;
119 stPacket.eDataType = manifest::Core::COMMANDS.find("STATEDISPLAY")->second.DATA_TYPE;
120 stPacket.vData.clear();
121
122 stPacket.vData.emplace_back(
static_cast<uint8_t>(manifest::Core::DISPLAYSTATE::REACHED_GOAL));
123 break;
124 }
125 default:
126 {
127
128 stPacket.unDataId = manifest::Core::COMMANDS.find("LEDRGB")->second.DATA_ID;
129 stPacket.unDataCount = manifest::Core::COMMANDS.find("LEDRGB")->second.DATA_COUNT;
130 stPacket.eDataType = manifest::Core::COMMANDS.find("LEDRGB")->second.DATA_TYPE;
131
132 stPacket.vData.emplace_back(0);
133 stPacket.vData.emplace_back(0);
134 stPacket.vData.emplace_back(0);
135 break;
136 }
137 }
138
139
140 const char* cIPAddress = constants::MODE_SIM ? constants::SIM_IP_ADDRESS.c_str() : manifest::Core::IP_ADDRESS.IP_STR.c_str();
141
142 if (network::g_pRoveCommUDPNode)
143 {
144 network::g_pRoveCommUDPNode->SendUDPPacket(stPacket, cIPAddress, constants::ROVECOMM_OUTGOING_UDP_PORT);
145 }
146}