le_atServer_interface.h
Go to the documentation of this file.
18 * server is compliant with 3GPP 27.007, paragraphs 4.0, 4.1 and 4.2, and V25 ter, paragraphs 5.3,39 * Lowercase characters are changed to their uppercase equivalents. Only characters between quotes63 * All characters after the "D" are considered part of The D command parameter up to a semicolon or91 * Extended syntax command can be concatenated after basic syntax commands without a separator:<br>96 * le_atServer_Open() must be called to bind the file descriptor of the device with the AT commands110 * A new AT command can be added into the parser using le_atServer_Create(), and it can be deleted137 * Even if these types are specific to the extended format commands according to the standards, they142 * parameter value using le_atServer_GetParameter() API. If a parmeter is not parsed with quotes,147 * The AT command handling mechanism may rely on an intermediate handler to reroute the AT commands149 * le_atServer_AddCmdRegistrationHandler() installs such a registration handler that will be called159 * @note If le_atServer_SendIntermediateResponse() return LE_FAULT, the final response have to be170 * le_atServer_SendFinalResultCode() takes as arguments the AT command reference, a pattern (which175 * concatenated commands: if one command is failed, next commands are not executed, the final result186 * If an unsolicited response is sent when an AT command is in progress, the unsolicited response192 * le_atServer_EnableExtendedErrorCodes() allows the user to use extended error codes on a selected194 * le_atServer_EnableVerboseErrorCodes() allows the user to enable verbose error codes on a selected196 * le_atServer_DisableExtendedErrorCodes() allows the user to disable the current error mode namely206 * le_atServer_CreateErrorCode() returns a reference which can be used to attach a custom verbose212 * le_atServer_GetTextAsync() allows the user to register a le_atServer_GetTextCallback_t callback238 * all unknown AT commands to an alternative device (such as the modem). For all devices linked to253 * (e.g.; ATD*99***1#). Sending these commands through the bridge may lock the Legato AT commands264 * @warning Some modem AT commands may conflict with Legato APIs; using both may cause problems that268 * The application can send an unsolicited on all opened device, or only one on a dedicated device.296 //--------------------------------------------------------------------------------------------------300 //--------------------------------------------------------------------------------------------------303 //--------------------------------------------------------------------------------------------------306 * Connect the current client thread to the service providing this API. Block until the service is309 * For each thread that wants to use this API, either ConnectService or TryConnectService must be310 * called before any other functions in this API. Normally, ConnectService is automatically called315 //--------------------------------------------------------------------------------------------------321 //--------------------------------------------------------------------------------------------------324 * Try to connect the current client thread to the service providing this API. Return with an error327 * For each thread that wants to use this API, either ConnectService or TryConnectService must be328 * called before any other functions in this API. Normally, ConnectService is automatically called337 * - LE_NOT_PERMITTED if the client interface is not bound to any service (doesn't have a binding).340 //--------------------------------------------------------------------------------------------------346 //--------------------------------------------------------------------------------------------------350 * When a server connection is lost, call this handler then exit with LE_FATAL. If a program wants353 //--------------------------------------------------------------------------------------------------360 //--------------------------------------------------------------------------------------------------366 * longer a connection to the service, and the functions in this API can't be used. For details, see371 //--------------------------------------------------------------------------------------------------378 //--------------------------------------------------------------------------------------------------382 //--------------------------------------------------------------------------------------------------385 //--------------------------------------------------------------------------------------------------389 //--------------------------------------------------------------------------------------------------392 //--------------------------------------------------------------------------------------------------396 //--------------------------------------------------------------------------------------------------399 //--------------------------------------------------------------------------------------------------403 //--------------------------------------------------------------------------------------------------406 //--------------------------------------------------------------------------------------------------411 //--------------------------------------------------------------------------------------------------414 //--------------------------------------------------------------------------------------------------418 //--------------------------------------------------------------------------------------------------421 //--------------------------------------------------------------------------------------------------425 //--------------------------------------------------------------------------------------------------428 //--------------------------------------------------------------------------------------------------433 //--------------------------------------------------------------------------------------------------436 //--------------------------------------------------------------------------------------------------440 //--------------------------------------------------------------------------------------------------443 //--------------------------------------------------------------------------------------------------450 //--------------------------------------------------------------------------------------------------453 //--------------------------------------------------------------------------------------------------457 //--------------------------------------------------------------------------------------------------460 //--------------------------------------------------------------------------------------------------470 //--------------------------------------------------------------------------------------------------473 //--------------------------------------------------------------------------------------------------486 //--------------------------------------------------------------------------------------------------493 //--------------------------------------------------------------------------------------------------506 //--------------------------------------------------------------------------------------------------513 //--------------------------------------------------------------------------------------------------525 //--------------------------------------------------------------------------------------------------532 //--------------------------------------------------------------------------------------------------543 //--------------------------------------------------------------------------------------------------550 //--------------------------------------------------------------------------------------------------558 //--------------------------------------------------------------------------------------------------565 //--------------------------------------------------------------------------------------------------575 //--------------------------------------------------------------------------------------------------582 //--------------------------------------------------------------------------------------------------589 //--------------------------------------------------------------------------------------------------599 //--------------------------------------------------------------------------------------------------603 //--------------------------------------------------------------------------------------------------610 //--------------------------------------------------------------------------------------------------617 //--------------------------------------------------------------------------------------------------628 //--------------------------------------------------------------------------------------------------632 //--------------------------------------------------------------------------------------------------639 //--------------------------------------------------------------------------------------------------652 //--------------------------------------------------------------------------------------------------665 //--------------------------------------------------------------------------------------------------674 //--------------------------------------------------------------------------------------------------685 //--------------------------------------------------------------------------------------------------695 //--------------------------------------------------------------------------------------------------704 //--------------------------------------------------------------------------------------------------713 //--------------------------------------------------------------------------------------------------723 //--------------------------------------------------------------------------------------------------733 //--------------------------------------------------------------------------------------------------740 //--------------------------------------------------------------------------------------------------749 //--------------------------------------------------------------------------------------------------762 //--------------------------------------------------------------------------------------------------771 //--------------------------------------------------------------------------------------------------786 //--------------------------------------------------------------------------------------------------794 //--------------------------------------------------------------------------------------------------801 //--------------------------------------------------------------------------------------------------809 //--------------------------------------------------------------------------------------------------816 //--------------------------------------------------------------------------------------------------819 * All unknown AT commands will be sent on this alternative file descriptor thanks to the AT client826 //--------------------------------------------------------------------------------------------------833 //--------------------------------------------------------------------------------------------------842 //--------------------------------------------------------------------------------------------------849 //--------------------------------------------------------------------------------------------------858 //--------------------------------------------------------------------------------------------------867 //--------------------------------------------------------------------------------------------------877 //--------------------------------------------------------------------------------------------------886 //--------------------------------------------------------------------------------------------------890 //--------------------------------------------------------------------------------------------------896 //--------------------------------------------------------------------------------------------------900 //--------------------------------------------------------------------------------------------------906 //--------------------------------------------------------------------------------------------------910 //--------------------------------------------------------------------------------------------------916 //--------------------------------------------------------------------------------------------------927 //--------------------------------------------------------------------------------------------------936 //--------------------------------------------------------------------------------------------------944 //--------------------------------------------------------------------------------------------------951 //--------------------------------------------------------------------------------------------------959 //--------------------------------------------------------------------------------------------------968 //--------------------------------------------------------------------------------------------------978 //--------------------------------------------------------------------------------------------------le_result_t le_atServer_AddDeviceToBridge(le_atServer_DeviceRef_t deviceRef, le_atServer_BridgeRef_t bridgeRef)le_result_t le_atServer_GetDevice(le_atServer_CmdRef_t commandRef, le_atServer_DeviceRef_t *deviceRefPtr)void(* le_atServer_CommandHandlerFunc_t)(le_atServer_CmdRef_t commandRef, le_atServer_Type_t type, uint32_t parametersNumber, void *contextPtr)Definition: le_atServer_common.h:179le_result_t le_atServer_Delete(le_atServer_CmdRef_t commandRef)le_result_t le_atServer_GetTextAsync(le_atServer_CmdRef_t cmdRef, le_atServer_GetTextCallbackFunc_t callbackPtr, void *contextPtr)struct le_atServer_ErrorCode * le_atServer_ErrorCodeRef_tDefinition: le_atServer_common.h:81le_atServer_DeviceRef_t le_atServer_Open(int fd)void le_atServer_DisconnectService(void)le_result_t le_atServer_GetParameter(le_atServer_CmdRef_t commandRef, uint32_t index, char *parameter, size_t parameterSize)le_result_t le_atServer_Resume(le_atServer_DeviceRef_t device)le_result_t le_atServer_TryConnectService(void)le_atServer_CmdRef_t le_atServer_Create(const char *LE_NONNULL name)le_result_t le_atServer_DisableEcho(le_atServer_DeviceRef_t device)le_result_t le_atServer_GetCommandName(le_atServer_CmdRef_t commandRef, char *name, size_t nameSize)le_result_t le_atServer_SendFinalResultCode(le_atServer_CmdRef_t commandRef, le_atServer_FinalRsp_t finalResult, const char *LE_NONNULL pattern, uint32_t errorCode)le_result_t le_atServer_SendIntermediateResponse(le_atServer_CmdRef_t commandRef, const char *LE_NONNULL intermediateRsp)void le_atServer_ConnectService(void)le_atServer_CommandHandlerRef_t le_atServer_AddCommandHandler(le_atServer_CmdRef_t commandRef, le_atServer_CommandHandlerFunc_t handlerPtr, void *contextPtr)struct le_atServer_CmdRegistrationHandler * le_atServer_CmdRegistrationHandlerRef_tDefinition: le_atServer_common.h:145void(* le_atServer_DisconnectHandler_t)(void *)Definition: le_atServer_interface.h:301void(* le_atServer_CmdRegistrationHandlerFunc_t)(le_atServer_CmdRef_t commandRef, void *contextPtr)Definition: le_atServer_common.h:163void le_atServer_EnableVerboseErrorCodes(void)le_result_t le_atServer_Close(le_atServer_DeviceRef_t device)le_result_t le_atServer_SendUnsolicitedResponse(const char *LE_NONNULL unsolRsp, le_atServer_AvailableDevice_t availableDevice, le_atServer_DeviceRef_t device)struct le_atServer_Device * le_atServer_DeviceRef_tDefinition: le_atServer_common.h:65le_result_t le_atServer_SetVerboseErrorCode(le_atServer_ErrorCodeRef_t errorCodeRef, const char *LE_NONNULL verboseCode)LE_FULL_API void le_atServer_SetServerDisconnectHandler(le_atServer_DisconnectHandler_t disconnectHandler, void *contextPtr)le_atServer_BridgeRef_t le_atServer_OpenBridge(int fd)le_result_t le_atServer_CloseBridge(le_atServer_BridgeRef_t bridgeRef)le_result_t le_atServer_EnableEcho(le_atServer_DeviceRef_t device)struct le_atServer_Cmd * le_atServer_CmdRef_tDefinition: le_atServer_common.h:57le_result_t le_atServer_Suspend(le_atServer_DeviceRef_t device)le_atServer_CmdRegistrationHandlerRef_t le_atServer_AddCmdRegistrationHandler(le_atServer_CmdRegistrationHandlerFunc_t handlerPtr, void *contextPtr)void le_atServer_EnableExtendedErrorCodes(void)le_result_t le_atServer_DeleteErrorCode(le_atServer_ErrorCodeRef_t errorCodeRef)void le_atServer_RemoveCommandHandler(le_atServer_CommandHandlerRef_t handlerRef)void le_atServer_RemoveCmdRegistrationHandler(le_atServer_CmdRegistrationHandlerRef_t handlerRef)le_result_t le_atServer_SendStoredUnsolicitedResponses(le_atServer_CmdRef_t commandRef)le_result_t le_atServer_RemoveDeviceFromBridge(le_atServer_DeviceRef_t deviceRef, le_atServer_BridgeRef_t bridgeRef)void(* le_atServer_GetTextCallbackFunc_t)(le_atServer_CmdRef_t cmdRef, le_result_t result, const char *LE_NONNULL text, uint32_t len, void *contextPtr)Definition: le_atServer_common.h:202struct le_atServer_Bridge * le_atServer_BridgeRef_tDefinition: le_atServer_common.h:73void le_atServer_DisableExtendedErrorCodes(void)struct le_atServer_CommandHandler * le_atServer_CommandHandlerRef_tDefinition: le_atServer_common.h:153le_atServer_ErrorCodeRef_t le_atServer_CreateErrorCode(uint32_t errorCode, const char *LE_NONNULL pattern)