Merge "update the thread_radio based on latest definition of SpinelInterface" into main am: eec8babbd7
am: 1909c2cb44
am: 5377913fea
Original change: https://android-review.googlesource.com/c/platform/hardware/interfaces/+/2785560 Change-Id: Ic1ef8229a64d00022e1dcb408c363e649d95dd61 Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
commit
a9fcf27202
2 changed files with 11 additions and 13 deletions
|
@ -32,23 +32,19 @@ namespace hardware {
|
|||
namespace threadnetwork {
|
||||
|
||||
ThreadChip::ThreadChip(char* url) : mUrl(), mRxFrameBuffer(), mCallback(nullptr) {
|
||||
static const char kHdlcProtocol[] = "spinel+hdlc";
|
||||
static const char kSpiProtocol[] = "spinel+spi";
|
||||
const char* protocol;
|
||||
const char* interfaceName;
|
||||
|
||||
CHECK_EQ(mUrl.Init(url), 0);
|
||||
|
||||
protocol = mUrl.GetProtocol();
|
||||
CHECK_NE(protocol, nullptr);
|
||||
interfaceName = mUrl.GetProtocol();
|
||||
CHECK_NE(interfaceName, nullptr);
|
||||
|
||||
if (memcmp(protocol, kSpiProtocol, strlen(kSpiProtocol)) == 0) {
|
||||
mSpinelInterface = std::make_shared<ot::Posix::SpiInterface>(handleReceivedFrameJump, this,
|
||||
mRxFrameBuffer);
|
||||
} else if (memcmp(protocol, kHdlcProtocol, strlen(kHdlcProtocol)) == 0) {
|
||||
mSpinelInterface = std::make_shared<ot::Posix::HdlcInterface>(handleReceivedFrameJump, this,
|
||||
mRxFrameBuffer);
|
||||
if (ot::Posix::SpiInterface::IsInterfaceNameMatch(interfaceName)) {
|
||||
mSpinelInterface = std::make_shared<ot::Posix::SpiInterface>(mUrl);
|
||||
} else if (ot::Posix::HdlcInterface::IsInterfaceNameMatch(interfaceName)) {
|
||||
mSpinelInterface = std::make_shared<ot::Posix::HdlcInterface>(mUrl);
|
||||
} else {
|
||||
ALOGE("The protocol \"%s\" is not supported", protocol);
|
||||
ALOGE("The interface \"%s\" is not supported", interfaceName);
|
||||
exit(EXIT_FAILURE);
|
||||
}
|
||||
|
||||
|
@ -106,7 +102,8 @@ ndk::ScopedAStatus ThreadChip::initChip(const std::shared_ptr<IThreadChipCallbac
|
|||
if (in_callback == nullptr) {
|
||||
return ndk::ScopedAStatus::fromExceptionCode(EX_ILLEGAL_ARGUMENT);
|
||||
} else if (mCallback == nullptr) {
|
||||
if (mSpinelInterface->Init(mUrl) != OT_ERROR_NONE) {
|
||||
if (mSpinelInterface->Init(handleReceivedFrameJump, this, mRxFrameBuffer) !=
|
||||
OT_ERROR_NONE) {
|
||||
return errorStatus(ERROR_FAILED, "Failed to initialize the interface");
|
||||
}
|
||||
|
||||
|
|
|
@ -20,6 +20,7 @@
|
|||
#include <aidl/android/hardware/threadnetwork/IThreadChipCallback.h>
|
||||
|
||||
#include "lib/spinel/spinel_interface.hpp"
|
||||
#include "lib/url/url.hpp"
|
||||
#include "mainloop.hpp"
|
||||
|
||||
#include <android/binder_auto_utils.h>
|
||||
|
|
Loading…
Reference in a new issue