2016-04-20 18 views
1

如果我的一些參數已更改並重新啓動,我想更改ESP模塊的行爲。我的意思是這樣的。在ESP中重啓後實現參數更改wifi(Lua)

if (????) then print ("default value") else print ("modified value") end

首先,我想寫一個標誌到一個文件,但它會導致引導過程中的錯誤,如果它不存在。 有什麼更好的想法?

回答

1

如果你想存儲超過重新啓動,你必須將它們存儲在一些非揮發性內存的值。所以使用文件是一種很好的方式,正如你已經提出的那樣。

可惜你沒有提供當它不存在尚未得到錯誤信息,如果該標誌或文件不存在,你不說。

你必須做的是處理錯誤。因此,如果您的文件不存在,請用戶創建一個新文件或使用程序中的默認內容創建一個文件。 同樣的國旗。如果該文件尚未包含標誌,請使用默認值或要求用戶提供一個標誌。

這不是壞的或錯誤的出現錯誤,只要他們學習或妥善處理。

io.open(filename[,mode])返回nil加在發生錯誤的情況下的錯誤消息。 所以,簡單地做這樣的事情:

local fileName = "C:\\superfile.txt" 
local fileHandle, errorMsg = io.open(fileName) 
if not fileHandle then 
    print("File access error: ", errorMsg) 
    -- add some error handling here 
end 

所以,如果你沒有這個文件,你會得到

文件訪問錯誤:C:\ superfile.txt:沒有這樣的文件或目錄

+0

因此,如果您的文件不存在,請求用戶創建一個新的不可思議的 – Steve

+0

「因此,如果您的文件不存在,請求用戶創建一個新文件」。不幸的是,它並不那麼簡單。正如標題中提到的那樣,問題是關於ESP微wifi板。如果參數修改是通過wifi通訊進行的,那麼在重新啓動之後,應該修改但是自主的行爲。 – Steve

+0

@steve好的用戶交互只是一個普遍的選擇。我還建議使用硬編碼的默認值,這當然更適合嵌入式系統。無論如何,您必須處理文件錯誤以解決特殊情況。 – Piglet