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

Method HandleRemoveNodeFromNetworkRequest

cpp/src/Driver.cpp:3398–3536  ·  view source on GitHub ↗

----------------------------------------------------------------------------- Process a request from the Z-Wave PC interface -----------------------------------------------------------------------------

Source from the content-addressed store, hash-verified

3396// Process a request from the Z-Wave PC interface
3397//-----------------------------------------------------------------------------
3398void Driver::HandleRemoveNodeFromNetworkRequest
3399(
3400 uint8* _data
3401)
3402{
3403 //uint8 nodeId = GetNodeNumber( m_currentMsg );
3404 if( m_currentControllerCommand == NULL )
3405 {
3406 return;
3407 }
3408 ControllerState state = m_currentControllerCommand->m_controllerState;
3409 Log::Write( LogLevel_Info, "FUNC_ID_ZW_REMOVE_NODE_FROM_NETWORK:" );
3410
3411 switch( _data[3] )
3412 {
3413 case REMOVE_NODE_STATUS_LEARN_READY:
3414 {
3415 Log::Write( LogLevel_Info, "REMOVE_NODE_STATUS_LEARN_READY" );
3416 state = ControllerState_Waiting;
3417 m_currentControllerCommand->m_controllerCommandNode = 0;
3418 break;
3419 }
3420 case REMOVE_NODE_STATUS_NODE_FOUND:
3421 {
3422 Log::Write( LogLevel_Info, "REMOVE_NODE_STATUS_NODE_FOUND" );
3423 state = ControllerState_InProgress;
3424 break;
3425 }
3426 case REMOVE_NODE_STATUS_REMOVING_SLAVE:
3427 {
3428 Log::Write( LogLevel_Info, "REMOVE_NODE_STATUS_REMOVING_SLAVE" );
3429 if (_data[4] != 0)
3430 {
3431 Log::Write( LogLevel_Info, "Removing node ID %d", _data[4] );
3432 m_currentControllerCommand->m_controllerCommandNode = _data[4];
3433 }
3434 else
3435 {
3436 Log::Write( LogLevel_Warning, "Remove Node Failed - NodeID 0 Returned");
3437 state = ControllerState_Failed;
3438 }
3439 break;
3440 }
3441 case REMOVE_NODE_STATUS_REMOVING_CONTROLLER:
3442 {
3443 Log::Write( LogLevel_Info, "REMOVE_NODE_STATUS_REMOVING_CONTROLLER" );
3444 m_currentControllerCommand->m_controllerCommandNode = _data[4];
3445 if( m_currentControllerCommand->m_controllerCommandNode == 0 ) // Some controllers don't return node number
3446 {
3447 if( _data[5] >= 3 )
3448 {
3449 LockGuard LG(m_nodeMutex);
3450 for( int i=0; i<256; i++ )
3451 {
3452 if( m_nodes[i] == NULL )
3453 {
3454 continue;
3455 }

Callers

nothing calls this directly

Calls 2

WriteFunction · 0.85
UnlockMethod · 0.45

Tested by

no test coverage detected