M module-bsp/board/linux/usb_cdc/usb_cdc.cpp => module-bsp/board/linux/usb_cdc/usb_cdc.cpp +3 -3
@@ 160,7 160,7 @@ namespace bsp
LOG_INFO("usbSuspend");
}
- int usbInit(xQueueHandle receiveQueue, xQueueHandle irqQueue, USBDeviceListener *)
+ int usbInit(const bsp::usbInitParams &initParams)
{
fd = 0;
@@ 203,8 203,8 @@ namespace bsp
tcsetattr(fd, TCSANOW, &newtio);
xTaskHandle taskHandleReceive;
- USBReceiveQueue = receiveQueue;
- USBIrqQueue = irqQueue;
+ USBReceiveQueue = initParams.queueHandle;
+ USBIrqQueue = initParams.irqQueueHandle;
BaseType_t task_error = xTaskCreate(&bsp::usbDeviceTask,
"USBLinuxReceive",
M module-bsp/board/rt1051/bsp/usb => module-bsp/board/rt1051/bsp/usb +1 -1
@@ 1,1 1,1 @@
-Subproject commit 6ca41ce836f160f2253b7d9527124306bd1f9ca1
+Subproject commit a2c9e2d9ab20427cd8675c7eccd2a12a0fd40ccb
M module-bsp/bsp/usb/usb.hpp => module-bsp/bsp/usb/usb.hpp +8 -1
@@ 39,7 39,14 @@ namespace bsp
virtual void rawDataReceived(void *dataPtr, uint32_t dataLen) = 0;
};
- int usbInit(xQueueHandle, xQueueHandle, USBDeviceListener *deviceListener = nullptr);
+ struct usbInitParams {
+ xQueueHandle queueHandle;
+ xQueueHandle irqQueueHandle;
+ USBDeviceListener *deviceListener;
+ const char *serialNumber;
+ };
+
+ int usbInit(const usbInitParams &initParams);
int usbCDCReceive(void *ptr);
int usbCDCSend(std::string *sendMsg);
int usbCDCSendRaw(const char *dataPtr, size_t dataLen);
M module-services/service-desktop/ServiceDesktop.cpp => module-services/service-desktop/ServiceDesktop.cpp +12 -1
@@ 77,13 77,24 @@ ServiceDesktop::~ServiceDesktop()
LOG_INFO("[ServiceDesktop] Cleaning resources");
}
+auto ServiceDesktop::getSerialNumber() const -> std::string
+{
+ return settings->getValue(std::string("factory_data/serial"), settings::SettingsScope::Global);
+}
+
sys::ReturnCodes ServiceDesktop::InitHandler()
{
settings = std::make_unique<settings::Settings>();
settings->init(service::ServiceProxy(shared_from_this()));
usbSecurityModel = std::make_unique<sdesktop::USBSecurityModel>(this, settings.get());
- desktopWorker = std::make_unique<WorkerDesktop>(this, *usbSecurityModel.get());
+
+ auto serialNumber = getSerialNumber();
+
+ LOG_DEBUG("Serial Number: %s", serialNumber.c_str());
+
+ desktopWorker = std::make_unique<WorkerDesktop>(this, *usbSecurityModel.get(), serialNumber);
+
const bool ret =
desktopWorker->init({{sdesktop::RECEIVE_QUEUE_BUFFER_NAME, sizeof(std::string *), sdesktop::cdc_queue_len},
{sdesktop::SEND_QUEUE_BUFFER_NAME, sizeof(std::string *), sdesktop::cdc_queue_object_size},
M module-services/service-desktop/WorkerDesktop.cpp => module-services/service-desktop/WorkerDesktop.cpp +7 -3
@@ 21,9 21,11 @@
inline constexpr auto uploadFailedMessage = "file upload terminated before all data transferred";
-WorkerDesktop::WorkerDesktop(sys::Service *ownerServicePtr, const sdesktop::USBSecurityModel &securityModel)
+WorkerDesktop::WorkerDesktop(sys::Service *ownerServicePtr,
+ const sdesktop::USBSecurityModel &securityModel,
+ const std::string serialNumber)
: sys::Worker(ownerServicePtr, sdesktop::worker_stack), fileDes(nullptr), securityModel(securityModel),
- ownerService(ownerServicePtr), parser(ownerServicePtr)
+ serialNumber(serialNumber), ownerService(ownerServicePtr), parser(ownerServicePtr)
{}
bool WorkerDesktop::init(std::list<sys::WorkerQueueInfo> queues)
@@ 41,7 43,9 @@ bool WorkerDesktop::init(std::list<sys::WorkerQueueInfo> queues)
usbSuspendTimer = sys::TimerFactory::createSingleShotTimer(
ownerService, "usbSuspend", constants::usbSuspendTimeout, [this](sys::Timer &) { suspendUsb(); });
- return (bsp::usbInit(receiveQueue, irqQueue, this) < 0) ? false : true;
+ bsp::usbInitParams initParams = {receiveQueue, irqQueue, this, serialNumber.c_str()};
+
+ return (bsp::usbInit(initParams) < 0) ? false : true;
}
bool WorkerDesktop::deinit(void)
M module-services/service-desktop/service-desktop/ServiceDesktop.hpp => module-services/service-desktop/service-desktop/ServiceDesktop.hpp +1 -0
@@ 110,6 110,7 @@ class ServiceDesktop : public sys::Service
}
private:
+ auto getSerialNumber() const -> std::string;
std::unique_ptr<sdesktop::USBSecurityModel> usbSecurityModel;
std::unique_ptr<settings::Settings> settings;
sys::TimerHandle transferTimer;
M module-services/service-desktop/service-desktop/WorkerDesktop.hpp => module-services/service-desktop/service-desktop/WorkerDesktop.hpp +4 -1
@@ 32,7 32,9 @@ class WorkerDesktop : public sys::Worker, public bsp::USBDeviceListener
CancelTransfer,
};
- WorkerDesktop(sys::Service *ownerServicePtr, const sdesktop::USBSecurityModel &securityModel);
+ WorkerDesktop(sys::Service *ownerServicePtr,
+ const sdesktop::USBSecurityModel &securityModel,
+ const std::string serialNumber);
virtual bool init(std::list<sys::WorkerQueueInfo> queues) override;
virtual bool deinit() override;
@@ 73,6 75,7 @@ class WorkerDesktop : public sys::Worker, public bsp::USBDeviceListener
std::filesystem::path filePath;
std::atomic<bool> rawModeEnabled = false;
const sdesktop::USBSecurityModel &securityModel;
+ const std::string serialNumber;
sys::Service *ownerService = nullptr;
parserFSM::StateMachine parser;
sys::TimerHandle usbSuspendTimer;