1 /* 2 * Copyright (c) 2025 Huawei Device Co., Ltd. 3 * Licensed under the Apache License, Version 2.0 (the "License"); 4 * you may not use this file except in compliance with the License. 5 * You may obtain a copy of the License at 6 * 7 * http://www.apache.org/licenses/LICENSE-2.0 8 * 9 * Unless required by applicable law or agreed to in writing, software 10 * distributed under the License is distributed on an "AS IS" BASIS, 11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 * See the License for the specific language governing permissions and 13 * limitations under the License. 14 */ 15 16 #ifndef USB_SERIAL_DDK_SERVICE_H 17 #define USB_SERIAL_DDK_SERVICE_H 18 19 #include "v1_0/iusb_serial_ddk.h" 20 21 namespace OHOS { 22 namespace HDI { 23 namespace Usb { 24 namespace UsbSerialDdk { 25 namespace V1_0 { 26 27 class UsbSerialOsAdapter; 28 29 typedef enum { 30 DATA_BITS_5 = 5, 31 DATA_BITS_6 = 6, 32 DATA_BITS_7 = 7, 33 DATA_BITS_8 = 8 34 } UsbSerialDataBits; 35 36 typedef enum { 37 STOP_ONE = 1, 38 STOP_TWO = 2 39 } UsbSerialStopBits; 40 41 enum UsbSerialDdkRetCode { 42 USB_SERIAL_DDK_NO_PERM = 201, 43 USB_SERIAL_DDK_INVALID_PARAMETER = 401, 44 USB_SERIAL_DDK_SUCCESS = 31600000, 45 USB_SERIAL_DDK_INVALID_OPERATION = 31600001, 46 USB_SERIAL_DDK_INIT_ERROR = 31600002, 47 USB_SERIAL_DDK_SERVICE_ERROR = 31600003, 48 USB_SERIAL_DDK_MEMORY_ERROR = 31600004, 49 USB_SERIAL_DDK_IO_ERROR = 31600005, 50 USB_SERIAL_DDK_DEVICE_NOT_FOUND = 31600006, 51 }; 52 53 class UsbSerialDdkService : public IUsbSerialDdk { 54 public: UsbSerialDdkService(std::shared_ptr<UsbSerialOsAdapter> & osAdapter)55 UsbSerialDdkService(std::shared_ptr<UsbSerialOsAdapter> &osAdapter) : osAdapter_(osAdapter) {}; 56 virtual ~UsbSerialDdkService() = default; 57 58 int32_t Init() override; 59 60 int32_t Release() override; 61 62 int32_t Open(uint64_t deviceId, uint64_t interfaceIndex, 63 OHOS::HDI::Usb::UsbSerialDdk::V1_0::UsbSerialDeviceHandle &dev) override; 64 65 int32_t Close(const OHOS::HDI::Usb::UsbSerialDdk::V1_0::UsbSerialDeviceHandle &dev) override; 66 67 int32_t Read(const OHOS::HDI::Usb::UsbSerialDdk::V1_0::UsbSerialDeviceHandle &dev, uint32_t bufferSize, 68 std::vector<uint8_t> &buff) override; 69 70 int32_t Write(const OHOS::HDI::Usb::UsbSerialDdk::V1_0::UsbSerialDeviceHandle &dev, 71 const std::vector<uint8_t> &buff, uint32_t &bytesWritten) override; 72 73 int32_t SetBaudRate(const OHOS::HDI::Usb::UsbSerialDdk::V1_0::UsbSerialDeviceHandle &dev, 74 uint32_t baudRate) override; 75 76 int32_t SetParams(const OHOS::HDI::Usb::UsbSerialDdk::V1_0::UsbSerialDeviceHandle &dev, 77 const OHOS::HDI::Usb::UsbSerialDdk::V1_0::UsbSerialParams ¶ms) override; 78 79 int32_t SetTimeout(const OHOS::HDI::Usb::UsbSerialDdk::V1_0::UsbSerialDeviceHandle &dev, int32_t timeout) override; 80 81 int32_t SetFlowControl(const OHOS::HDI::Usb::UsbSerialDdk::V1_0::UsbSerialDeviceHandle &dev, 82 OHOS::HDI::Usb::UsbSerialDdk::V1_0::UsbSerialFlowControl flowControl) override; 83 84 int32_t Flush(const OHOS::HDI::Usb::UsbSerialDdk::V1_0::UsbSerialDeviceHandle &dev) override; 85 86 int32_t FlushInput(const OHOS::HDI::Usb::UsbSerialDdk::V1_0::UsbSerialDeviceHandle &dev) override; 87 88 int32_t FlushOutput(const OHOS::HDI::Usb::UsbSerialDdk::V1_0::UsbSerialDeviceHandle &dev) override; 89 90 private: 91 std::shared_ptr<UsbSerialOsAdapter> osAdapter_; 92 }; 93 } // namespace V1_0 94 } // namespace UsbSerialDdk 95 } // namespace Usb 96 } // namespace HDI 97 } // namespace OHOS 98 #endif // USB_SERIAL_DDK_SERVICE_H