Esta página abordará informações sobre conceitos de configuração específicos do Servo Hub. Para obter mais informações sobre a configuração geral no REVLib, consulte esta página.
Classes de Configuração
Embora o Servo Hub tenha sua própria classe de configuração, ServoHubConfig, a maior parte da configuração ocorre na classe ServoChannelConfig.
A configuração de um Servo Hub mantém automaticamente as definições de configuração entre os ciclos de energia ao chamar o método configure().
A persistência dos parâmetros envolve salvá-los na memória do Servo Hub, o que consome muito tempo e bloqueia a comunicação com o dispositivo.
Casos de uso
Recomenda-se atualizar a maioria dos parâmetros do dispositivo durante a configuração inicial do dispositivo no início do programa para garantir que o controlador mantenha sua configuração no caso de um ciclo de energia durante a operação, por exemplo, devido a um disparo do disjuntor ou a uma queda de energia.
Em geral, recomenda-se não fazer atualizações na configuração durante a operação para evitar o bloqueio do programa e afetar o desempenho do robô.
Abaixo está um exemplo de um desses casos:
Robot() {ServoHubConfig config =newServoHubConfig(); config.channel0.pulseRange(500,1500,2500).disableBehavior(ServoChannelConfig.BehaviorWhenDisabled.kSupplyPower);// Persist parameters and reset any not explicitly set above to// their defaults.servoHub.configure(config,ServoHub.ResetMode.kResetSafeParameters);}voidreduceRange() {ServoHubConfig config =newServoHubConfig();config.channel0.pulseRange(500,1500,2500)// Don't reset the parameters the at are not explicitly set aboveservoHub.configure(config,ServoHub.ResetMode.kNoResetSafeParameters);}
usingnamespace rev::servohub;Robot() { ServoHubConfig config; config .channel0.pulseRange(500,1500,2500) .disableBehavior(ServoChannelConfig::BehaviorWhenDisabled::kSupplyPower); // Persist parameters and reset any not explicitly set above to // their defaults.servoHub.configure(config, ServoHub::ResetMode::kResetSafeParameters);}voidreduceRange() { ServoHubConfig config;config.channel0.pulseRange(500,1500,2500) // Don't reset the parameters the at are not explicitly set aboveservoHub.configure(config,ResetMode.kNoResetSafeParameters);}
Robot() {ServoHubConfig config =newServoHubConfig(); config.channel0.pulseRange(500,1500,2500).disableBehavior(ServoChannelConfig.BehaviorWhenDisabled.kSupplyPower);// Persist parameters and reset any not explicitly set above to// their defaults.servoHub.configure(config,ServoHub.ResetMode.kResetSafeParameters);}voidreduceRange() {ServoHubConfig config =newServoHubConfig();config.channel0.pulseRange(500,1500,2500)// Don't reset the parameters the at are not explicitly set aboveservoHub.configure(config,ServoHub.ResetMode.kNoResetSafeParameters);}
usingnamespace rev::servohub;Robot() { ServoHubConfig config; config .channel0.pulseRange(500,1500,2500) .disableBehavior(ServoChannelConfig::BehaviorWhenDisabled::kSupplyPower); // Persist parameters and reset any not explicitly set above to // their defaults.servoHub.configure(config, ServoHub::ResetMode::kResetSafeParameters);}voidreduceRange() { ServoHubConfig config;config.channel0.pulseRange(500,1500,2500) // Don't reset the parameters the at are not explicitly set aboveservoHub.configure(config,ResetMode.kNoResetSafeParameters);}