fix windows compat and some bugs

This commit is contained in:
2017-12-16 11:06:29 +01:00
parent 56a935cdd0
commit 62096da6e6
8 changed files with 28 additions and 4 deletions
+3 -1
View File
@@ -5,14 +5,16 @@
#include "platform.h"
#include "utils/str_utils.h"
#include "system_settings.h"
#include "platform/lock_jumper.h"
struct system_settings SystemSettings;
void systemsettings_init(void)
{
SystemSettings.visible_vcom = true;
SystemSettings.editable = false; // This will be loaded in platform init based on the LOCK pin
SystemSettings.modified = false;
LockJumper_ReadHardware();
}
// to binary
+1 -1
View File
@@ -46,7 +46,7 @@ GEX_CDEFS = \
-DUSE_FULL_LL_DRIVER \
-DUSE_FULL_ASSERT=1 \
-DVERBOSE_ASSERT=1 \
-DDEBUG_VFS=0 \
-DDEBUG_VFS=1 \
-DVERBOSE_HARDFAULT=1 \
-DUSE_STACK_MONITOR=1 \
-DUSE_DEBUG_UART=1
+6 -1
View File
@@ -75,7 +75,7 @@ void LockJumper_Check(void)
// Read the pin state
bool old = SystemSettings.editable;
SystemSettings.editable = (bool) LL_GPIO_IsInputPinSet(lock_periph, lock_llpin);
LockJumper_ReadHardware();
if (old != SystemSettings.editable) {
// --- State changed ---
@@ -84,3 +84,8 @@ void LockJumper_Check(void)
jumper_changed();
}
}
void LockJumper_ReadHardware(void)
{
SystemSettings.editable = (bool) LL_GPIO_IsInputPinSet(lock_periph, lock_llpin);
}
+6
View File
@@ -17,4 +17,10 @@ void LockJumper_Init(void);
*/
void LockJumper_Check(void);
/**
* Check hardware jumper and load it's value into the settings struct.
* Does NOT trigger MSC changes or anything else.
*/
void LockJumper_ReadHardware(void);
#endif //GEX_LOCK_JUMPER_H
-1
View File
@@ -238,7 +238,6 @@ static error_t close_conf(void *state)
ini_parse_end();
settings_read_ini_end();
// force a full remount to have the changes be visible
vfs_mngr_fs_remount(true);
return E_SUCCESS;
+2
View File
@@ -38,6 +38,8 @@
// TRANSFER_NOT_STARTED || TRASNFER_FINISHED
#define DISCONNECT_DELAY_MS 500
bool vfs_is_windows = false;
// Make sure none of the delays exceed the max time
COMPILER_ASSERT(CONNECT_DELAY_MS < MAX_EVENT_TIME_MS);
COMPILER_ASSERT(RECONNECT_DELAY_MS < MAX_EVENT_TIME_MS);
+2
View File
@@ -29,6 +29,8 @@
extern "C" {
#endif
extern bool vfs_is_windows;
/* Callable from anywhere */
// Enable or disable the virtual filesystem
+8
View File
@@ -23,6 +23,7 @@
#include "framework/settings.h"
#include "platform.h"
#include "vfs_manager.h"
#include "str_utils.h"
const vfs_filename_t daplink_drive_name = "VIRTUALFS";
@@ -67,6 +68,13 @@ void vfs_user_file_change_handler(const vfs_filename_t filename,
vfs_file_change_t change,
vfs_file_t file, vfs_file_t new_file_data)
{
if (strstarts(filename, "SYSTEM~1")) {
vfs_printf("ATENTION - we are dealing with windows! Careful or it will crash!");
// TODO take precautions
vfs_is_windows = true;
return;
}
if (VFS_FILE_CHANGED == change) {
// Unused
vfs_printf(">>> CHANGED %s", filename);