You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
24 lines
1.1 KiB
24 lines
1.1 KiB
from pydantic import BaseModel, Field
|
|
from typing import Optional
|
|
|
|
class ATCommandRequest(BaseModel):
|
|
"""AT指令请求模型"""
|
|
command: str = Field(..., description="AT指令内容")
|
|
timeout: Optional[int] = Field(5, description="响应超时时间(秒)", ge=1)
|
|
wait_response: Optional[bool] = Field(True, description="是否等待响应")
|
|
|
|
class ATCommandResponse(BaseModel):
|
|
"""AT指令响应模型"""
|
|
success: bool = Field(..., description="执行是否成功")
|
|
command: str = Field(..., description="发送的指令")
|
|
response: str = Field(..., description="设备响应")
|
|
execution_time: float = Field(..., description="执行时间(秒)")
|
|
|
|
class SerialConnectionInfo(BaseModel):
|
|
"""串口连接信息模型"""
|
|
port: str = Field(..., description="串口名称")
|
|
baudrate: int = Field(115200, description="波特率")
|
|
timeout: int = Field(5, description="超时时间(秒)")
|
|
bytesize: int = Field(8, description="数据位")
|
|
parity: str = Field("N", description="校验位")
|
|
stopbits: int = Field(1, description="停止位")
|