MCPcopy Create free account
hub / github.com/OpenZWave/open-zwave / HandleMsg

Method HandleMsg

cpp/src/command_classes/BarrierOperator.cpp:201–331  ·  view source on GitHub ↗

----------------------------------------------------------------------------- Handle a message from the Z-Wave network -----------------------------------------------------------------------------

Source from the content-addressed store, hash-verified

199// Handle a message from the Z-Wave network
200//-----------------------------------------------------------------------------
201bool BarrierOperator::HandleMsg
202(
203 uint8 const* _data,
204 uint32 const _length,
205 uint32 const _instance // = 1
206)
207{
208 if (BarrierOperatorCmd_Report == (BarrierOperatorCmd)_data[0])
209 {
210 uint8 state_index = 5;
211 switch (_data[1])
212 {
213 case BarrierOperatorState_Closed:
214 {
215 state_index = 0;
216 break;
217 }
218 case BarrierOperatorState_Closing:
219 {
220 state_index = 1;
221 break;
222 }
223 case BarrierOperatorState_Stopped:
224 {
225 state_index = 2;
226 break;
227 }
228 case BarrierOperatorState_Opening:
229 {
230 state_index = 3;
231 break;
232 }
233 case BarrierOperatorState_Open:
234 {
235 state_index = 4;
236 break;
237 }
238 default:
239 {
240 Log::Write(LogLevel_Warning, GetNodeId(), "Received Invalid BarrierOperatorState %d", _data[1]);
241 break;
242 }
243 }
244
245 if( ValueList* value = static_cast<ValueList*>( GetValue( _instance, BarrierOperatorLabel_Index ) ) )
246 {
247 value->OnValueRefreshed( state_index );
248 value->Release();
249 } else {
250 Log::Write( LogLevel_Warning, GetNodeId(), "No ValueID created for BarrierOperator state");
251 return false;
252 }
253 return true;
254 }
255 if (BarrierOperatorCmd_SignalSupportedReport == (BarrierOperatorCmd)_data[0])
256 {
257
258 Log::Write(LogLevel_Info, GetNodeId(), "Received BarrierOperator Signal Support Report");

Callers

nothing calls this directly

Calls 5

WriteFunction · 0.85
RequestValueFunction · 0.85
GetNodeIdFunction · 0.70
OnValueRefreshedMethod · 0.45
ReleaseMethod · 0.45

Tested by

no test coverage detected