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