@@ -49,7 +49,7 @@ open class AdvertiseParser: AdvertiseFilter {
4949 }
5050
5151 let deviceId = vendorData [ 1 + offset] . nodeId
52- let deviceType = getNodeType ( deviceId: deviceId, protocolVersion: protocolVersion)
52+ let deviceType = NodeTypeMapper . getNodeType ( deviceId: deviceId, protocolVersion: protocolVersion)
5353 let isSleeping = vendorData [ 1 + offset] . isSleeping
5454 let hasGeneralPourpose = vendorData [ 1 + offset] . hasGeneralPurpose
5555 let featureMap = vendorData. extractUInt32 ( fromOffset: 2 + offset, endian: . big)
@@ -76,192 +76,6 @@ open class AdvertiseParser: AdvertiseFilter {
7676 }
7777}
7878
79- extension AdvertiseParser {
80- public func getNodeType( deviceId: UInt8 , protocolVersion: UInt8 ) -> NodeType {
81- if protocolVersion == 0x01 {
82- //SDK V1
83- switch deviceId {
84- case 0x00 :
85- return . generic
86- case 0x01 :
87- return . stevalWesu1
88- case 0x02 :
89- return . sensorTile
90- case 0x03 :
91- return . blueCoin
92- case 0x04 :
93- return . stEvalIDB008VX
94- case 0x05 :
95- return . stEvalBCN002V1
96- case 0x06 :
97- return . sensorTileBox
98- case 0x07 :
99- return . discoveryIOT01A
100- case 0x08 :
101- return . stEvalSTWINKIT1
102- case 0x09 :
103- return . stEvalSTWINKT1B
104- case 0x0A :
105- return . bL475eIot01A
106- case 0x0B :
107- return . bU585iIot02A
108- case 0x0C :
109- return . astra
110- case 0x0D :
111- return . sensorTileBoxPro
112- case 0x0E :
113- return . stWinBox
114- case 0x0F :
115- return . proteus
116- case 0x10 :
117- return . stdesCBMLoRaBLE
118- case 0x11 :
119- return . sensorTileBoxProB
120- case 0x12 :
121- return . stWinBoxB
122- case 0x13 :
123- return . sensorTileBoxProC
124- case 0xC3 :
125- return . robKit1
126- case 0x80 :
127- return . nucleo
128- case 0x7F :
129- return . nucleoF401RE
130- case 0x7E :
131- return . nucleoL476RG
132- case 0x7D :
133- return . nucleoL053R8
134- case 0x7C :
135- return . nucleoF446RE
136- case 0x7B :
137- return . nucleoU575ZIQ
138- case 0x7A :
139- return . nucleoU5A5ZJQ
140- case 0x8D :
141- return . nucleoWB0X
142- case 0x8E :
143- return . wba65RiNucleoBoard
144- case 0x8F :
145- return . wb05NucleoBoard
146- case 0x90 :
147- return . wba2NucleoBoard
148- case 0x91 :
149- return . wba5mWpanBoard
150- case 0x92 :
151- return . stm32wba65iDk1Board
152- case 0x9A :
153- return . stm67w61MNucleoBoard
154- case 0x86 :
155- return . wbOtaBoard
156- case 0x81 ... 0x8A :
157- return . wb55NucleoBoard
158- case 0x8B ... 0x8C :
159- return . wba55CGNucleoBoard
160- default :
161- return . generic
162- }
163- } else {
164- //SDK V2
165- switch deviceId {
166- case 0x00 :
167- return . generic
168- case 0x01 :
169- return . stevalWesu1
170- case 0x02 :
171- return . sensorTile
172- case 0x03 :
173- return . blueCoin
174- case 0x04 :
175- return . stEvalIDB008VX
176- case 0x05 :
177- return . stEvalBCN002V1
178- case 0x06 :
179- return . sensorTileBox
180- case 0x07 :
181- return . discoveryIOT01A
182- case 0x08 :
183- return . stEvalSTWINKIT1
184- case 0x09 :
185- return . stEvalSTWINKT1B
186- case 0x0A :
187- return . bL475eIot01A
188- case 0x0B :
189- return . bU585iIot02A
190- case 0x0C :
191- return . astra
192- case 0x0D :
193- return . sensorTileBoxPro
194- case 0x0E :
195- return . stWinBox
196- case 0x0F :
197- return . proteus
198- case 0x10 :
199- return . stdesCBMLoRaBLE
200- case 0x11 :
201- return . sensorTileBoxProB
202- case 0x12 :
203- return . stWinBoxB
204- case 0x13 :
205- return . sensorTileBoxProC
206- case 0xC3 :
207- return . robKit1
208- case 0x80 :
209- return . nucleo
210- case 0x7F :
211- return . nucleoF401RE
212- case 0x7E :
213- return . nucleoL476RG
214- case 0x7D :
215- return . nucleoL053R8
216- case 0x7C :
217- return . nucleoF446RE
218- case 0x7B :
219- return . nucleoU575ZIQ
220- case 0x7A :
221- return . nucleoU5A5ZJQ
222-
223- //WB boards range 0x81->0x86
224- case 0x81 :
225- return . wb55NucleoBoard
226- case 0x82 :
227- return . stm32wb5mmDkBoard
228- case 0x83 :
229- return . wb55UsbDoungleBoard
230- case 0x84 :
231- return . wb15CCNucleoBoard
232- case 0x85 :
233- return . wb1mWpan1Board
234- case 0x86 :
235- return . wbOtaBoard
236-
237- //WBA boards range 0x8B -> 0x8C
238- case 0x8B :
239- return . wba55CGNucleoBoard
240- case 0x8C :
241- return . stm32Wba55gDk1Board
242- case 0x8D :
243- return . nucleoWB0X
244- case 0x8E :
245- return . wba65RiNucleoBoard
246- case 0x8F :
247- return . wb05NucleoBoard
248-
249- case 0x90 :
250- return . wba2NucleoBoard
251- case 0x91 :
252- return . wba5mWpanBoard
253- case 0x92 :
254- return . stm32wba65iDk1Board
255- case 0x9A :
256- return . stm67w61MNucleoBoard
257-
258- default :
259- return . generic
260- }
261- }
262- }
263- }
264-
26579fileprivate extension UInt8 {
26680 private static let nucleoBitMask : UInt8 = 0x80
26781 private static let isSleepingBitMask : UInt8 = 0x70
0 commit comments