Exemplo n.º 1
0
void ProcessMessage(SMBData *smb)
{
  if (smb->state != SMB_STATE_WRITE_REQUESTED)
  {
    smb->state = SMB_STATE_IDLE;
    return;
  }

  switch (smb->rxBuffer[0]) // Command code.
  {
  case DRV_WHO_AM_I:
    WhoAmI(smb);
    break;
  case DRV_SET_DIRECTION:
    SetDirection(smb);
    break;
  case DRV_SET_SPEED:
    SetSpeed(smb);
    break;
  case DRV_DRV_ENABLE:
    EnableMotors(smb);
    break;
  case DRV_SET_ADDRESS:
    SetAddress(smb);
    break;
  case DRV_DRV_DISABLE:
    DisableMotors(smb);
    break;
  default:
    UndefinedCommand(smb);
  break;
  }
}
Exemplo n.º 2
0
// Disables motors (base class closes I2C connection)
Motor::~Motor() 
{
    DisableMotors();
}