summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorTim Keller <geekboy1011@gmail.com>2021-10-17 22:07:43 +0000
committerTim Keller <geekboy1011@gmail.com>2021-12-10 01:18:57 +0000
commiteabbbfa373de04d1dc694618d5a9d475f0918592 (patch)
treed930c1f013bfd73a4ec3291d39804bcac1a3d5a3 /src
parent2690c274af72cfbac88a8c83fce311665a917a93 (diff)
Fix folder count in output
Diffstat (limited to 'src')
-rw-r--r--src/components/ble/FSService.cpp4
-rw-r--r--src/components/ble/FSService.h56
2 files changed, 40 insertions, 20 deletions
diff --git a/src/components/ble/FSService.cpp b/src/components/ble/FSService.cpp
index 2f02cd96..40679e5c 100644
--- a/src/components/ble/FSService.cpp
+++ b/src/components/ble/FSService.cpp
@@ -78,7 +78,7 @@ int FSService::FSCommandHandler(uint16_t connectionHandle, os_mbuf* om) {
resp.status = 1; // TODO actually use res above!
resp.totalentries = 0;
resp.entry = 0;
- int sr;
+
int res = fs.DirOpen(path, &dir);
NRF_LOG_INFO("[FS_S] ->diropen %d ", res);
@@ -115,7 +115,6 @@ int FSService::FSCommandHandler(uint16_t connectionHandle, os_mbuf* om) {
resp.entry++;
}
fs.DirClose(&dir);
- resp.entry++;
resp.file_size = 0;
resp.path_length = 0;
resp.flags = 0;
@@ -123,6 +122,7 @@ int FSService::FSCommandHandler(uint16_t connectionHandle, os_mbuf* om) {
auto* om = ble_hs_mbuf_from_flat(&resp,sizeof(ListDirResponse)-70+resp.path_length);
ble_gattc_notify_custom(connectionHandle,transferCharacteristicHandle,om);
NRF_LOG_INFO("[FS_S] -> done ");
+ break;
}
}
return 0;
diff --git a/src/components/ble/FSService.h b/src/components/ble/FSService.h
index eb4b34d7..a1c42aa7 100644
--- a/src/components/ble/FSService.h
+++ b/src/components/ble/FSService.h
@@ -44,23 +44,8 @@ namespace Pinetime {
struct ble_gatt_svc_def serviceDefinition[2];
uint16_t versionCharacteristicHandle;
uint16_t transferCharacteristicHandle;
- typedef struct __attribute__((packed)) {
- uint8_t command;
- uint8_t padding;
- uint16_t pathlen;
- char pathstr[70];
- } ListDirHeader;
- typedef struct __attribute__((packed)) {
- uint8_t command;
- uint8_t status;
- uint16_t path_length;
- uint32_t entry;
- uint32_t totalentries;
- uint32_t flags;
- uint32_t modification_time;
- uint32_t file_size;
- char path[70];
- } ListDirResponse;
+
+ int FSCommandHandler(uint16_t connectionHandle, os_mbuf* om);
enum class commands : uint8_t {
INVALID = 0x00,
@@ -80,7 +65,42 @@ namespace Pinetime {
MOVE_STATUS = 0x61
};
- int FSCommandHandler(uint16_t connectionHandle, os_mbuf* om);
+ using ListDirHeader = struct __attribute__((packed)) {
+ uint8_t command;
+ uint8_t padding;
+ uint16_t pathlen;
+ char pathstr[70];
+ };
+
+ using ListDirResponse = struct __attribute__((packed)) {
+ uint8_t command;
+ uint8_t status;
+ uint16_t path_length;
+ uint32_t entry;
+ uint32_t totalentries;
+ uint32_t flags;
+ uint32_t modification_time;
+ uint32_t file_size;
+ char path[70];
+ };
+
+ using MKDirHeader = struct __attribute__((packed)) {
+ uint8_t command;
+ uint8_t padding;
+ uint16_t pathlen;
+ uint32_t padding2;
+ uint64_t time;
+ char pathstr[70];
+ };
+
+ using MKDirResponse = struct __attribute__((packed)) {
+ uint8_t command;
+ uint8_t status;
+ uint32_t padding1;
+ uint16_t padding2;
+ uint64_t modification_time;
+ };
+
};
}
}