mirror of
https://github.com/esphome/esphome.git
synced 2025-11-15 22:35:46 +00:00
## Description: Move esphome-core codebase into esphome (and a bunch of other refactors). See https://github.com/esphome/feature-requests/issues/97 Yes this is a shit ton of work and no there's no way to automate it :( But it will be worth it 👍 Progress: - Core support (file copy etc): 80% - Base Abstractions (light, switch): ~50% - Integrations: ~10% - Working? Yes, (but only with ported components). Other refactors: - Moves all codegen related stuff into a single class: `esphome.codegen` (imported as `cg`) - Rework coroutine syntax - Move from `component/platform.py` to `domain/component.py` structure as with HA - Move all defaults out of C++ and into config validation. - Remove `make_...` helpers from Application class. Reason: Merge conflicts with every single new integration. - Pointer Variables are stored globally instead of locally in setup(). Reason: stack size limit. Future work: - Rework const.py - Move all `CONF_...` into a conf class (usage `conf.UPDATE_INTERVAL` vs `CONF_UPDATE_INTERVAL`). Reason: Less convoluted import block - Enable loading from `custom_components` folder. **Related issue (if applicable):** https://github.com/esphome/feature-requests/issues/97 **Pull request in [esphome-docs](https://github.com/esphome/esphome-docs) with documentation (if applicable):** esphome/esphome-docs#<esphome-docs PR number goes here> ## Checklist: - [ ] The code change is tested and works locally. - [ ] Tests have been added to verify that the new code works (under `tests/` folder). If user exposed functionality or configuration variables are added/changed: - [ ] Documentation added/updated in [esphomedocs](https://github.com/OttoWinter/esphomedocs).
58 lines
2.2 KiB
C++
58 lines
2.2 KiB
C++
#include "basic_messages.h"
|
|
#include "esphome/core/log.h"
|
|
|
|
namespace esphome {
|
|
namespace api {
|
|
|
|
// Hello
|
|
bool HelloRequest::decode_length_delimited(uint32_t field_id, const uint8_t *value, size_t len) {
|
|
switch (field_id) {
|
|
case 1: // string client_info = 1;
|
|
this->client_info_ = as_string(value, len);
|
|
return true;
|
|
default:
|
|
return false;
|
|
}
|
|
}
|
|
const std::string &HelloRequest::get_client_info() const { return this->client_info_; }
|
|
void HelloRequest::set_client_info(const std::string &client_info) { this->client_info_ = client_info; }
|
|
APIMessageType HelloRequest::message_type() const { return APIMessageType::HELLO_REQUEST; }
|
|
|
|
// Connect
|
|
bool ConnectRequest::decode_length_delimited(uint32_t field_id, const uint8_t *value, size_t len) {
|
|
switch (field_id) {
|
|
case 1: // string password = 1;
|
|
this->password_ = as_string(value, len);
|
|
return true;
|
|
default:
|
|
return false;
|
|
}
|
|
}
|
|
const std::string &ConnectRequest::get_password() const { return this->password_; }
|
|
void ConnectRequest::set_password(const std::string &password) { this->password_ = password; }
|
|
APIMessageType ConnectRequest::message_type() const { return APIMessageType::CONNECT_REQUEST; }
|
|
|
|
APIMessageType DeviceInfoRequest::message_type() const { return APIMessageType::DEVICE_INFO_REQUEST; }
|
|
APIMessageType DisconnectRequest::message_type() const { return APIMessageType::DISCONNECT_REQUEST; }
|
|
bool DisconnectRequest::decode_length_delimited(uint32_t field_id, const uint8_t *value, size_t len) {
|
|
switch (field_id) {
|
|
case 1: // string reason = 1;
|
|
this->reason_ = as_string(value, len);
|
|
return true;
|
|
default:
|
|
return false;
|
|
}
|
|
}
|
|
const std::string &DisconnectRequest::get_reason() const { return this->reason_; }
|
|
void DisconnectRequest::set_reason(const std::string &reason) { this->reason_ = reason; }
|
|
void DisconnectRequest::encode(APIBuffer &buffer) {
|
|
// string reason = 1;
|
|
buffer.encode_string(1, this->reason_);
|
|
}
|
|
APIMessageType DisconnectResponse::message_type() const { return APIMessageType::DISCONNECT_RESPONSE; }
|
|
APIMessageType PingRequest::message_type() const { return APIMessageType::PING_REQUEST; }
|
|
APIMessageType PingResponse::message_type() const { return APIMessageType::PING_RESPONSE; }
|
|
|
|
} // namespace api
|
|
} // namespace esphome
|