]> vault307.fbx.one Git - PicoTamachibi.git/blob - sdcardtest.py
one new line for demonstarion purposes
[PicoTamachibi.git] / sdcardtest.py
1 import machine
2 import sdcard
3 import uos
4 import json
5
6 mytestdata = {
7 "health":11,
8 "happiness":1,
9 "energy":1
10 }
11
12 # Create a file and write something to it
13 #with open("/sd/test01.txt", "w") as file:
14 # file.write(json.dumps(mytestdata))
15
16 # Open the file we just created and read from it
17 #with open("/sd/test01.txt", "r") as file:
18 # data = file.read()
19 # print(data)
20 # varx =json.loads(data)
21 # print(varx["health"])
22
23 class SaveGameManager:
24 __SaveGameData = {}
25 __FileSocket = None
26 __cs = None
27 __spi = None
28 __sd = None
29
30 def __init__(self, savename="01"):
31 print("initializing")
32 try:
33 # Assign chip select (CS) pin (and start it high)
34 self.__cs = machine.Pin(9, machine.Pin.OUT)
35
36 # Intialize SPI peripheral (start with 1 MHz)
37 self.__spi = machine.SPI(1,
38 baudrate=1000000,
39 polarity=0,
40 phase=0,
41 bits=8,
42 firstbit=machine.SPI.MSB,
43 sck=machine.Pin(10),
44 mosi=machine.Pin(11),
45 miso=machine.Pin(8))
46
47 # Initialize SD card
48 self.__sd = sdcard.SDCard(self.__spi, self.__cs)
49
50 # Mount filesystem
51 self.__FileSocket = uos.VfsFat(self.__sd)
52 uos.mount(self.__FileSocket, "/sd")
53
54 #load values from FS
55 self.LoadSaveData()
56 except:
57 pass
58
59
60
61 @property
62 def CheckFilesystemReady(self):
63 if self.__FileSocket is None:
64 print("No FileSocket")
65 return False
66 return True
67
68 def LoadSaveData(self):
69 print("loading")
70 # Open the file we just created and read from it
71 if not self.CheckFilesystemReady:
72 return # If we have no filesystem we cannot write or read anyways...
73
74 with open("/sd/test00.txt", "rb") as file:
75 file.read(1) #ignore first byte, it containes the version number as binary... later :)
76 data = file.read()
77 self.__SaveGameData = json.loads(data)
78
79 def WriteSaveData(self):
80 if not self.CheckFilesystemReady:
81 pass # If we have no filesystem we cannot write or read anyways...
82 # Create a file and write something to it
83 with open("/sd/test01.txt", "wb") as file:
84 file.write("0")
85 file.write(json.dumps(self.__SaveGameData))
86
87 def UpdateData(self, key, value):
88 print("updating internal data")
89 self.__SaveGameData[key]=value
90
91 def GetData(self, key, defaultvalue=""):
92 print("getting internaldata")
93 if key in self.__SaveGameData:
94 return self.__SaveGameData
95 return defaultvalue
96
97
98 mysavegame = SaveGameManager()
99 mysavegame.UpdateData("bla","blub")
100 mysavegame.WriteSaveData()
101 mysavegame.LoadSaveData()
102 print(mysavegame.GetData("bla"))
103 print("x:"+mysavegame.GetData("something"))
104 print("x:"+mysavegame.GetData("something","defaultthing"))