PageRenderTime 43ms CodeModel.GetById 13ms RepoModel.GetById 1ms app.codeStats 0ms

/client_v4_1/Test/PortingKitTest/Archive/Commmon/SpotNetFramework/Device/IClient.cs

#
C# | 301 lines | 281 code | 20 blank | 0 comment | 15 complexity | 7fb7e373ba0bb9cae96c4f45062efbee MD5 | raw file
Possible License(s): Apache-2.0, LGPL-2.0, MIT, MPL-2.0-no-copyleft-exception
  1. #region Using directives
  2. using System;
  3. using System.Collections.Generic;
  4. using System.Text;
  5. using System.IO;
  6. using _DBG = Microsoft.SPOT.Debugger;
  7. #endregion
  8. namespace Microsoft.SPOT.Test.Client.Common.SpotNetFramework
  9. {
  10. public interface IClient
  11. {
  12. _DBG.Engine DbgEng { get; }
  13. DeviceTypes DeviceType { get; }
  14. DeviceSKUs DeviceSKU { get; }
  15. DeviceVersions DeviceVersion { get; }
  16. DeviceOEMs DeviceOEM { get; }
  17. bool InUse { get; }
  18. string UniqueID { get; }
  19. bool FactoryReset();
  20. object GetProperty(object key);
  21. void SetProperty(object key, object value);
  22. }
  23. public enum NetworkIds
  24. {
  25. INT = 21,
  26. LAB = 22,
  27. PROD = 1,
  28. }
  29. public enum DeviceTypes
  30. {
  31. Microsoft_P3B = 0xff,
  32. DOT = 0xfe,
  33. Microsoft_P3D = 0xfd,
  34. Fossil_C3D = 1,
  35. Suunto_N3D = 2,
  36. Swatch_TboneD = 3,
  37. Swatch_Euro = 4,
  38. Suunto_n3i_n6hr = 5,
  39. Swatch_HeidiD = 6,
  40. Fossil_C3D_1_25 = 7,
  41. Fossil_C3D_1_30 = 8,
  42. Swatch_CES05 = 9,
  43. Unknown = 0xbadd,
  44. }
  45. public enum DeviceSKUs
  46. {
  47. Fossil_Square = 1,
  48. Fossil_Round = 2,
  49. Abacus_Sport = 3,
  50. Fossil_DickTracy = 4,
  51. Fossil_Stark = 5,
  52. Abacus_1_25_Black = 6,
  53. Abacus_1_25_Brown = 7,
  54. Fossil_ClockNet = 8,
  55. Abacus_ClockNet = 9,
  56. Fossil_1_25_Casual = 10,
  57. Fossil_1_26_Leather = 11,
  58. Abacus_1_26_Leather = 12,
  59. Fossil_1_30_Leather = 13,
  60. Abacus_1_30_Leather = 14,
  61. Suunto_n3 = 101,
  62. Suunto_n6hr = 102,
  63. Suunto_n3i = 103,
  64. Suunto_n3i_x = 259,
  65. Swatch_Tissot = 201,
  66. Swatch_Urban = 301,
  67. Swatch_Urban2 = 303,
  68. Swatch_Sport = 302,
  69. Swatch_Sport2 = 304,
  70. Swatch_CES05 = 305,
  71. Microsoft_P3B = 0xffff,
  72. Microsoft_P3D = 0xfffe,
  73. Unknown = 0xbadd,
  74. }
  75. public enum DeviceOEMs
  76. {
  77. Fossil,
  78. Suunto,
  79. Swatch,
  80. Microsoft,
  81. DOT,
  82. Citizen,
  83. Harold,
  84. Unknown
  85. }
  86. public enum DeviceVersions
  87. {
  88. V1_0,
  89. V1_1,
  90. V2_0,
  91. }
  92. public class DeviceHelper
  93. {
  94. public static DeviceOEMs SKU_to_OEM( DeviceSKUs sku )
  95. {
  96. if ((int)sku >= 1 && (int)sku <= 100)
  97. return DeviceOEMs.Fossil;
  98. else if ((int)sku >= 101 && (int)sku <= 200)
  99. return DeviceOEMs.Suunto;
  100. else if ((int)sku >= 201 && (int)sku <= 500 && (int)sku != 259)
  101. return DeviceOEMs.Swatch;
  102. else
  103. return DeviceOEMs.Microsoft;
  104. }
  105. public static DeviceTypes SKU_to_DeviceType(DeviceSKUs sku)
  106. {
  107. switch (sku)
  108. {
  109. case DeviceSKUs.Abacus_1_25_Black:
  110. case DeviceSKUs.Abacus_1_25_Brown:
  111. case DeviceSKUs.Fossil_1_25_Casual:
  112. case DeviceSKUs.Abacus_1_26_Leather:
  113. case DeviceSKUs.Fossil_1_26_Leather:
  114. return DeviceTypes.Fossil_C3D_1_25;
  115. case DeviceSKUs.Abacus_1_30_Leather:
  116. case DeviceSKUs.Fossil_1_30_Leather:
  117. return DeviceTypes.Fossil_C3D_1_30;
  118. case DeviceSKUs.Abacus_ClockNet:
  119. case DeviceSKUs.Abacus_Sport:
  120. case DeviceSKUs.Fossil_ClockNet:
  121. case DeviceSKUs.Fossil_DickTracy:
  122. case DeviceSKUs.Fossil_Square:
  123. case DeviceSKUs.Fossil_Stark:
  124. return DeviceTypes.Fossil_C3D;
  125. case DeviceSKUs.Suunto_n3:
  126. return DeviceTypes.Suunto_N3D;
  127. case DeviceSKUs.Suunto_n3i:
  128. case DeviceSKUs.Suunto_n3i_x:
  129. case DeviceSKUs.Suunto_n6hr:
  130. return DeviceTypes.Suunto_n3i_n6hr;
  131. case DeviceSKUs.Swatch_Tissot:
  132. return DeviceTypes.Swatch_TboneD;
  133. case DeviceSKUs.Swatch_Sport:
  134. case DeviceSKUs.Swatch_Sport2:
  135. case DeviceSKUs.Swatch_Urban:
  136. case DeviceSKUs.Swatch_Urban2:
  137. return DeviceTypes.Swatch_HeidiD;
  138. case DeviceSKUs.Swatch_CES05:
  139. return DeviceTypes.Swatch_CES05;
  140. case DeviceSKUs.Microsoft_P3B:
  141. return DeviceTypes.Microsoft_P3B;
  142. case DeviceSKUs.Microsoft_P3D:
  143. return DeviceTypes.Microsoft_P3D;
  144. }
  145. return DeviceTypes.Unknown;
  146. }
  147. public static DeviceSKUs DeviceType_to_SKU( DeviceTypes type )
  148. {
  149. DeviceSKUs sku = DeviceSKUs.Unknown;
  150. switch (type)
  151. {
  152. case DeviceTypes.DOT:
  153. sku = DeviceSKUs.Unknown;
  154. break;
  155. case DeviceTypes.Fossil_C3D:
  156. sku = DeviceSKUs.Fossil_Round;
  157. break;
  158. case DeviceTypes.Fossil_C3D_1_25:
  159. sku = DeviceSKUs.Fossil_1_25_Casual;
  160. break;
  161. case DeviceTypes.Fossil_C3D_1_30:
  162. sku = DeviceSKUs.Fossil_1_30_Leather;
  163. break;
  164. case DeviceTypes.Microsoft_P3B:
  165. sku = DeviceSKUs.Microsoft_P3B;
  166. break;
  167. case DeviceTypes.Microsoft_P3D:
  168. sku = DeviceSKUs.Microsoft_P3D;
  169. break;
  170. case DeviceTypes.Suunto_N3D:
  171. sku = DeviceSKUs.Suunto_n3;
  172. break;
  173. case DeviceTypes.Suunto_n3i_n6hr:
  174. sku = DeviceSKUs.Suunto_n3i;
  175. break;
  176. case DeviceTypes.Swatch_CES05:
  177. sku = DeviceSKUs.Swatch_CES05;
  178. break;
  179. case DeviceTypes.Swatch_Euro:
  180. case DeviceTypes.Swatch_HeidiD:
  181. sku = DeviceSKUs.Swatch_Urban;
  182. break;
  183. case DeviceTypes.Swatch_TboneD:
  184. sku = DeviceSKUs.Swatch_Tissot;
  185. break;
  186. }
  187. return sku;
  188. }
  189. public static DeviceVersions SKU_to_DeviceVersion(DeviceSKUs sku)
  190. {
  191. switch (sku)
  192. {
  193. case DeviceSKUs.Abacus_1_25_Black:
  194. case DeviceSKUs.Abacus_1_25_Brown:
  195. case DeviceSKUs.Fossil_1_25_Casual:
  196. case DeviceSKUs.Abacus_1_26_Leather:
  197. case DeviceSKUs.Fossil_1_26_Leather:
  198. case DeviceSKUs.Abacus_1_30_Leather:
  199. case DeviceSKUs.Fossil_1_30_Leather:
  200. case DeviceSKUs.Suunto_n3i:
  201. case DeviceSKUs.Suunto_n3i_x:
  202. case DeviceSKUs.Suunto_n6hr:
  203. case DeviceSKUs.Swatch_Sport:
  204. case DeviceSKUs.Swatch_Sport2:
  205. case DeviceSKUs.Swatch_Urban:
  206. case DeviceSKUs.Swatch_Urban2:
  207. case DeviceSKUs.Swatch_CES05:
  208. case DeviceSKUs.Microsoft_P3D:
  209. case DeviceSKUs.Microsoft_P3B:
  210. return DeviceVersions.V1_1;
  211. case DeviceSKUs.Abacus_ClockNet:
  212. case DeviceSKUs.Abacus_Sport:
  213. case DeviceSKUs.Fossil_ClockNet:
  214. case DeviceSKUs.Fossil_DickTracy:
  215. case DeviceSKUs.Fossil_Square:
  216. case DeviceSKUs.Fossil_Stark:
  217. case DeviceSKUs.Suunto_n3:
  218. case DeviceSKUs.Swatch_Tissot:
  219. return DeviceVersions.V1_0;
  220. }
  221. return DeviceVersions.V1_1;
  222. }
  223. public static bool DeviceType_to_StorageAddress(DeviceTypes type, out uint storage_A, out uint storage_B )
  224. {
  225. bool bRet = false;
  226. storage_A = 0x100c0000;
  227. storage_B = 0x100e0000;
  228. switch (type)
  229. {
  230. case DeviceTypes.Swatch_Euro:
  231. case DeviceTypes.DOT:
  232. bRet = false;
  233. break;
  234. case DeviceTypes.Fossil_C3D:
  235. case DeviceTypes.Fossil_C3D_1_25:
  236. case DeviceTypes.Fossil_C3D_1_30:
  237. case DeviceTypes.Microsoft_P3D:
  238. case DeviceTypes.Suunto_N3D:
  239. case DeviceTypes.Suunto_n3i_n6hr:
  240. case DeviceTypes.Swatch_CES05:
  241. case DeviceTypes.Swatch_HeidiD:
  242. case DeviceTypes.Swatch_TboneD:
  243. storage_A = 0x100c0000;
  244. storage_B = 0x100e0000;
  245. bRet = true;
  246. break;
  247. case DeviceTypes.Microsoft_P3B:
  248. storage_A = 0x10700000;
  249. storage_B = 0x10720000;
  250. bRet = true;
  251. break;
  252. }
  253. return bRet;
  254. }
  255. public static uint DeviceType_to_ConfigAddress(DeviceTypes type)
  256. {
  257. uint addr = 0x100be000;
  258. switch (type)
  259. {
  260. case DeviceTypes.Swatch_Euro:
  261. case DeviceTypes.DOT:
  262. break;
  263. case DeviceTypes.Fossil_C3D:
  264. case DeviceTypes.Fossil_C3D_1_25:
  265. case DeviceTypes.Fossil_C3D_1_30:
  266. case DeviceTypes.Microsoft_P3D:
  267. case DeviceTypes.Suunto_N3D:
  268. case DeviceTypes.Suunto_n3i_n6hr:
  269. case DeviceTypes.Swatch_CES05:
  270. case DeviceTypes.Swatch_HeidiD:
  271. case DeviceTypes.Swatch_TboneD:
  272. addr = 0x100be000;
  273. break;
  274. case DeviceTypes.Microsoft_P3B:
  275. addr = 0x10080000;
  276. break;
  277. }
  278. return addr;
  279. }
  280. }
  281. }