Host library for controlling a WiConnect enabled Wi-Fi module.
Dependents: wiconnect-ota_example wiconnect-web_setup_example wiconnect-test-console wiconnect-tcp_server_example ... more
FileInterface.h@11:ea484e1b7fc4, 2014-08-12 (annotated)
- Committer:
- dan_ackme
- Date:
- Tue Aug 12 02:34:46 2014 -0700
- Revision:
- 11:ea484e1b7fc4
- Parent:
- 1:6ec9998427ad
- Child:
- 13:2b51f5267c92
updated documnetation
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
dan_ackme | 0:ea85c4bb5e1f | 1 | /* |
dan_ackme | 0:ea85c4bb5e1f | 2 | * Copyright 2014, ACKme Networks |
dan_ackme | 0:ea85c4bb5e1f | 3 | * All Rights Reserved. |
dan_ackme | 0:ea85c4bb5e1f | 4 | * |
dan_ackme | 0:ea85c4bb5e1f | 5 | * This is UNPUBLISHED PROPRIETARY SOURCE CODE of ACKme Networks; |
dan_ackme | 0:ea85c4bb5e1f | 6 | * the contents of this file may not be disclosed to third parties, copied |
dan_ackme | 0:ea85c4bb5e1f | 7 | * or duplicated in any form, in whole or in part, without the prior |
dan_ackme | 0:ea85c4bb5e1f | 8 | * written permission of ACKme Networks. |
dan_ackme | 0:ea85c4bb5e1f | 9 | */ |
dan_ackme | 0:ea85c4bb5e1f | 10 | |
dan_ackme | 0:ea85c4bb5e1f | 11 | #pragma once |
dan_ackme | 0:ea85c4bb5e1f | 12 | |
dan_ackme | 0:ea85c4bb5e1f | 13 | #include "mbed.h" |
dan_ackme | 0:ea85c4bb5e1f | 14 | |
dan_ackme | 0:ea85c4bb5e1f | 15 | #include "WiconnectTypes.h" |
dan_ackme | 0:ea85c4bb5e1f | 16 | #include "types/FileList.h" |
dan_ackme | 0:ea85c4bb5e1f | 17 | |
dan_ackme | 0:ea85c4bb5e1f | 18 | |
dan_ackme | 11:ea484e1b7fc4 | 19 | /** |
dan_ackme | 11:ea484e1b7fc4 | 20 | * @ingroup api_file_macro |
dan_ackme | 11:ea484e1b7fc4 | 21 | * @brief The maximum filename size of a file on the WiConnect WiFi module filesystem |
dan_ackme | 11:ea484e1b7fc4 | 22 | */ |
dan_ackme | 0:ea85c4bb5e1f | 23 | #define FILE_NAME_MAX_SIZE 96 |
dan_ackme | 11:ea484e1b7fc4 | 24 | |
dan_ackme | 11:ea484e1b7fc4 | 25 | /** |
dan_ackme | 11:ea484e1b7fc4 | 26 | * @ingroup api_file_macro |
dan_ackme | 11:ea484e1b7fc4 | 27 | * @def FILE_MAKE_VERSION(major, minor, patch, rc) |
dan_ackme | 11:ea484e1b7fc4 | 28 | * @brief Combine <\a major>.<\a minor>.<\a patch>.<\a rc> and create version as a uint32_t |
dan_ackme | 11:ea484e1b7fc4 | 29 | */ |
dan_ackme | 0:ea85c4bb5e1f | 30 | #define FILE_MAKE_VERSION(major, minor, patch, rc) ((unsigned int)((major) << 27)|(unsigned int)((minor) << 21)|(unsigned int)((patch) << 8)|(unsigned int)((rc) << 0)) |
dan_ackme | 11:ea484e1b7fc4 | 31 | /** |
dan_ackme | 11:ea484e1b7fc4 | 32 | * @ingroup api_file_macro |
dan_ackme | 11:ea484e1b7fc4 | 33 | * @def FILE_VERSION_ARGS(version) |
dan_ackme | 11:ea484e1b7fc4 | 34 | * @brief Given a uint32_t \a version, return arguments for a variable argument function such as printf(). The format string is: %d.%d.%d.%d |
dan_ackme | 11:ea484e1b7fc4 | 35 | */ |
dan_ackme | 0:ea85c4bb5e1f | 36 | #define FILE_VERSION_ARGS(version) (unsigned int)((version >> 27) & 0x1F),(unsigned int)((version >> 21) & 0x3F),(unsigned int)((version >> 8) & 0x1FFF),(unsigned int)(version & 0xFF) |
dan_ackme | 0:ea85c4bb5e1f | 37 | |
dan_ackme | 0:ea85c4bb5e1f | 38 | |
dan_ackme | 0:ea85c4bb5e1f | 39 | namespace wiconnect { |
dan_ackme | 0:ea85c4bb5e1f | 40 | |
dan_ackme | 0:ea85c4bb5e1f | 41 | |
dan_ackme | 11:ea484e1b7fc4 | 42 | /** |
dan_ackme | 11:ea484e1b7fc4 | 43 | * @ingroup types_file |
dan_ackme | 11:ea484e1b7fc4 | 44 | * |
dan_ackme | 11:ea484e1b7fc4 | 45 | * @brief The provides an interface for creating TCP/UDP/TLS/HTTP client sockets. |
dan_ackme | 11:ea484e1b7fc4 | 46 | * A client socket connects to a remote server. |
dan_ackme | 11:ea484e1b7fc4 | 47 | * |
dan_ackme | 11:ea484e1b7fc4 | 48 | */ |
dan_ackme | 0:ea85c4bb5e1f | 49 | class FileInterface |
dan_ackme | 0:ea85c4bb5e1f | 50 | { |
dan_ackme | 0:ea85c4bb5e1f | 51 | public: |
dan_ackme | 11:ea484e1b7fc4 | 52 | /** |
dan_ackme | 11:ea484e1b7fc4 | 53 | * @ingroup api_file |
dan_ackme | 11:ea484e1b7fc4 | 54 | * |
dan_ackme | 11:ea484e1b7fc4 | 55 | * @brief Create a file on the Wiconnect WiFi module flash filesystem. |
dan_ackme | 11:ea484e1b7fc4 | 56 | */ |
dan_ackme | 0:ea85c4bb5e1f | 57 | WiconnectResult createFile(const ReaderFunc &reader, void *user, const char *name, uint32_t size, uint32_t version = 0, FileType type = FILE_TYPE_ANY, bool isEssential = false, int32_t checksum = -1); |
dan_ackme | 11:ea484e1b7fc4 | 58 | |
dan_ackme | 11:ea484e1b7fc4 | 59 | /** |
dan_ackme | 11:ea484e1b7fc4 | 60 | * @ingroup api_file |
dan_ackme | 11:ea484e1b7fc4 | 61 | * |
dan_ackme | 11:ea484e1b7fc4 | 62 | * @brief Open a file on the Wiconnect WiFi module flash filesystem for reading. |
dan_ackme | 11:ea484e1b7fc4 | 63 | */ |
dan_ackme | 0:ea85c4bb5e1f | 64 | WiconnectResult openFile(File &file, const char *name); |
dan_ackme | 11:ea484e1b7fc4 | 65 | |
dan_ackme | 11:ea484e1b7fc4 | 66 | /** |
dan_ackme | 11:ea484e1b7fc4 | 67 | * @ingroup api_file |
dan_ackme | 11:ea484e1b7fc4 | 68 | * |
dan_ackme | 11:ea484e1b7fc4 | 69 | * @brief Delete a file for the Wiconnect WiFi module flash filesystem. |
dan_ackme | 11:ea484e1b7fc4 | 70 | */ |
dan_ackme | 0:ea85c4bb5e1f | 71 | WiconnectResult deleteFile(const char *name); |
dan_ackme | 11:ea484e1b7fc4 | 72 | |
dan_ackme | 11:ea484e1b7fc4 | 73 | /** |
dan_ackme | 11:ea484e1b7fc4 | 74 | * @ingroup api_file |
dan_ackme | 11:ea484e1b7fc4 | 75 | * |
dan_ackme | 11:ea484e1b7fc4 | 76 | * @brief Delete a file for the Wiconnect WiFi module flash filesystem. |
dan_ackme | 11:ea484e1b7fc4 | 77 | */ |
dan_ackme | 0:ea85c4bb5e1f | 78 | WiconnectResult deleteFile(const File &file); |
dan_ackme | 11:ea484e1b7fc4 | 79 | |
dan_ackme | 11:ea484e1b7fc4 | 80 | /** |
dan_ackme | 11:ea484e1b7fc4 | 81 | * @ingroup api_file |
dan_ackme | 11:ea484e1b7fc4 | 82 | * |
dan_ackme | 11:ea484e1b7fc4 | 83 | * @brief List the files on the Wiconnect WiFi module flash filesystem. |
dan_ackme | 11:ea484e1b7fc4 | 84 | */ |
dan_ackme | 0:ea85c4bb5e1f | 85 | WiconnectResult listFiles(FileList &list, const char *name = NULL, FileType type = FILE_TYPE_ANY, uint32_t version = 0); |
dan_ackme | 0:ea85c4bb5e1f | 86 | |
dan_ackme | 11:ea484e1b7fc4 | 87 | |
dan_ackme | 11:ea484e1b7fc4 | 88 | // ------------------------------------------------------------------------ |
dan_ackme | 11:ea484e1b7fc4 | 89 | |
dan_ackme | 11:ea484e1b7fc4 | 90 | |
dan_ackme | 11:ea484e1b7fc4 | 91 | /** |
dan_ackme | 11:ea484e1b7fc4 | 92 | * @ingroup conversion_util |
dan_ackme | 11:ea484e1b7fc4 | 93 | * |
dan_ackme | 11:ea484e1b7fc4 | 94 | * @brief Convert file version uint32 to string. |
dan_ackme | 11:ea484e1b7fc4 | 95 | */ |
dan_ackme | 0:ea85c4bb5e1f | 96 | static const char* fileVersionIntToStr(uint32_t version, bool verbose = true, char *buffer = NULL); |
dan_ackme | 11:ea484e1b7fc4 | 97 | |
dan_ackme | 11:ea484e1b7fc4 | 98 | /** |
dan_ackme | 11:ea484e1b7fc4 | 99 | * @ingroup conversion_util |
dan_ackme | 11:ea484e1b7fc4 | 100 | * |
dan_ackme | 11:ea484e1b7fc4 | 101 | * @brief Convert string to file version uint32. |
dan_ackme | 11:ea484e1b7fc4 | 102 | */ |
dan_ackme | 0:ea85c4bb5e1f | 103 | static bool fileVersionStrToInt(const char *versionStr, uint32_t *versionIntPtr); |
dan_ackme | 11:ea484e1b7fc4 | 104 | |
dan_ackme | 11:ea484e1b7fc4 | 105 | /** |
dan_ackme | 11:ea484e1b7fc4 | 106 | * @ingroup conversion_util |
dan_ackme | 11:ea484e1b7fc4 | 107 | * |
dan_ackme | 11:ea484e1b7fc4 | 108 | * Convert @ref FileType to string. |
dan_ackme | 11:ea484e1b7fc4 | 109 | */ |
dan_ackme | 0:ea85c4bb5e1f | 110 | static const char* fileTypeToStr(FileType type); |
dan_ackme | 11:ea484e1b7fc4 | 111 | |
dan_ackme | 11:ea484e1b7fc4 | 112 | /** |
dan_ackme | 11:ea484e1b7fc4 | 113 | * @ingroup conversion_util |
dan_ackme | 11:ea484e1b7fc4 | 114 | * |
dan_ackme | 11:ea484e1b7fc4 | 115 | * @brief Convert @ref FileFlags to string. |
dan_ackme | 11:ea484e1b7fc4 | 116 | */ |
dan_ackme | 0:ea85c4bb5e1f | 117 | static const char* fileFlagsToStr(FileFlags flags, char *buffer = NULL); |
dan_ackme | 0:ea85c4bb5e1f | 118 | |
dan_ackme | 0:ea85c4bb5e1f | 119 | protected: |
dan_ackme | 1:6ec9998427ad | 120 | FileInterface(Wiconnect *wiconnect); |
dan_ackme | 1:6ec9998427ad | 121 | |
dan_ackme | 0:ea85c4bb5e1f | 122 | WiconnectResult processFileList(char *responseStr, FileList &list, const char *name, FileType type, uint32_t version); |
dan_ackme | 0:ea85c4bb5e1f | 123 | private: |
dan_ackme | 0:ea85c4bb5e1f | 124 | Wiconnect *wiconnect; |
dan_ackme | 0:ea85c4bb5e1f | 125 | }; |
dan_ackme | 0:ea85c4bb5e1f | 126 | |
dan_ackme | 0:ea85c4bb5e1f | 127 | } |