Files
mixly3/common/modules/mixly-modules/common/fs-board-handler.js
2024-07-19 10:16:00 +08:00

144 lines
3.0 KiB
JavaScript

goog.loadJs('common', () => {
goog.require('Mixly.Registry');
goog.provide('Mixly.FSBoardHandler');
const { Registry } = Mixly;
class FSBoardHandler {
static {
this.FsType = {
LITTLEFS: 'littlefs',
FATFS: 'fatfs',
SPIFFS: 'spiffs'
};
this.CommandType = {
DOWNLOAD: 'download',
UPLOAD: 'upload'
};
}
#config_ = {
type: FSBoardHandler.FsType.LITTLEFS,
offset: 0x610000,
size: 0x9F0000,
blockSize: 4096,
pageSize: 256,
usrFolder: '/'
};
#commandsRegistry_ = new Registry();
constructor() {
for (let key in FSBoardHandler.FsType) {
const fsRegistry = new Registry();
fsRegistry.register(FSBoardHandler.CommandType.DOWNLOAD, '');
fsRegistry.register(FSBoardHandler.CommandType.UPLOAD, '');
this.#commandsRegistry_.register(FSBoardHandler.FsType[key], fsRegistry);
}
}
getConfig() {
return this.#config_;
}
updateConfig(config) {
Object.assign(this.#config_, config);
}
setFSType(type) {
this.#config_.type = type;
}
getFSType() {
return this.#config_.type;
}
setFSSize() {
this.#config_.size = size;
}
getFSSize() {
return this.#config_.size;
}
setFSPageSize(size) {
this.#config_.pageSize = size;
}
getFSPageSize() {
return this.#config_.pageSize;
}
setFSBlockSize(size) {
this.#config_.blockSize = size;
}
getFSBlockSize() {
return this.#config_.blockSize;
}
setFSOffset(offset) {
this.#config_.offset = offset;
}
getFSOffset() {
return this.#config_.offset;
}
setUsrFolder(usrFolder) {
this.#config_.usrFolder = usrFolder;
}
getUsrFolder() {
return this.#config_.usrFolder;
}
setFSCommands(type, commands) {
const fsRegistry = this.getFSCommands(type);
if (!fsRegistry) {
return;
}
for (let key in commands) {
fsRegistry.hasKey(key) && fsRegistry.unregister(key);
fsRegistry.register(key, commands[key]);
}
}
getFSCommands(type) {
return this.#commandsRegistry_.getItem(type);
}
setLittleFSCommands(commands) {
this.setFSCommands(FSBoardHandler.FsType.LITTLEFS, commands);
}
getLittleFSCommands() {
return this.getFSCommands(FSBoardHandler.FsType.LITTLEFS);
}
setFatFSCommands(commands) {
this.setFSCommands(FSBoardHandler.FsType.FATFS, commands);
}
getFatFSCommands() {
return this.getFSCommands(FSBoardHandler.FsType.FATFS);
}
setSpifFSCommands(commands) {
this.setFSCommands(FSBoardHandler.FsType.SPIFFS, commands);
}
getSpifFSCommands() {
return this.getFSCommands(FSBoardHandler.FsType.SPIFFS);
}
onBeforeUpload() {}
onBeforeDownload() {}
}
Mixly.FSBoardHandler = FSBoardHandler;
});