Coverage for d7a/system_files/system_files.py: 95%

19 statements  

« prev     ^ index     » next       coverage.py v7.5.0, created at 2024-05-24 08:03 +0200

1# 

2# Copyright (c) 2015-2021 University of Antwerp, Aloxy NV. 

3# 

4# This file is part of pyd7a. 

5# See https://github.com/Sub-IoT/pyd7a for further info. 

6# 

7# Licensed under the Apache License, Version 2.0 (the "License"); 

8# you may not use this file except in compliance with the License. 

9# You may obtain a copy of the License at 

10# 

11# http://www.apache.org/licenses/LICENSE-2.0 

12# 

13# Unless required by applicable law or agreed to in writing, software 

14# distributed under the License is distributed on an "AS IS" BASIS, 

15# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 

16# See the License for the specific language governing permissions and 

17# limitations under the License. 

18# 

19from d7a.system_files.access_profile import AccessProfileFile 

20from d7a.system_files.dll_config import DllConfigFile 

21from d7a.system_files.dll_status import DllStatusFile 

22from d7a.system_files.firmware_version import FirmwareVersionFile 

23from d7a.system_files.not_implemented import NotImplementedFile 

24from d7a.system_files.phy_status import PhyStatusFile 

25from d7a.system_files.security_key import SecurityKeyFile 

26from d7a.system_files.system_file_ids import SystemFileIds 

27from d7a.system_files.uid import UidFile 

28from d7a.system_files.engineering_mode import EngineeringModeFile 

29from d7a.system_files.factory_settings import FactorySettingsFile 

30from d7a.system_files.vid import VidFile 

31from d7a.system_files.root_authentication_key import RootAuthenticationKeyFile 

32from d7a.system_files.user_authentication_key import UserAuthenticationKeyFile 

33 

34 

35class SystemFiles: 

36 enum_class = SystemFileIds 

37 

38 files = { 

39 SystemFileIds.UID: UidFile(), 

40 SystemFileIds.FACTORY_SETTINGS: FactorySettingsFile(), 

41 SystemFileIds.FIRMWARE_VERSION: FirmwareVersionFile(), 

42 SystemFileIds.DEVICE_CAPACITY: NotImplementedFile(SystemFileIds.DEVICE_CAPACITY.value, 19), 

43 SystemFileIds.DEVICE_STATUS: NotImplementedFile(SystemFileIds.DEVICE_STATUS, 9), 

44 SystemFileIds.ENGINEERING_MODE: EngineeringModeFile(), 

45 SystemFileIds.VID: VidFile(), 

46 SystemFileIds.RFU_07: NotImplementedFile(SystemFileIds.RFU_07, 0), 

47 SystemFileIds.PHY_CONFIG: NotImplementedFile(SystemFileIds.PHY_CONFIG, 9), 

48 SystemFileIds.PHY_STATUS: PhyStatusFile(), # TODO assuming 3 channels for now 

49 SystemFileIds.DLL_CONFIG: DllConfigFile(), 

50 SystemFileIds.DLL_STATUS: DllStatusFile(), 

51 SystemFileIds.NWL_ROUTING: NotImplementedFile(SystemFileIds.NWL_ROUTING, 1), # TODO variable routing table 

52 SystemFileIds.NWL_SECURITY: NotImplementedFile(SystemFileIds.NWL_SECURITY, 5), 

53 SystemFileIds.NWL_SECURITY_KEY: SecurityKeyFile(), 

54 SystemFileIds.NWL_SSR: NotImplementedFile(SystemFileIds.NWL_SSR, 4), # TODO 0 recorded devices 

55 SystemFileIds.NWL_STATUS: NotImplementedFile(SystemFileIds.NWL_STATUS, 20), 

56 SystemFileIds.TRL_STATUS: NotImplementedFile(SystemFileIds.TRL_STATUS, 1), # TODO 0 TRL records 

57 SystemFileIds.SEL_CONFIG: NotImplementedFile(SystemFileIds.SEL_CONFIG, 6), 

58 SystemFileIds.FOF_STATUS: NotImplementedFile(SystemFileIds.FOF_STATUS, 10), 

59 SystemFileIds.RFU_14: NotImplementedFile(SystemFileIds.RFU_14, 0), 

60 SystemFileIds.RFU_15: NotImplementedFile(SystemFileIds.RFU_15, 0), 

61 SystemFileIds.RFU_16: NotImplementedFile(SystemFileIds.RFU_16, 0), 

62 SystemFileIds.LOCATION_DATA: NotImplementedFile(SystemFileIds.LOCATION_DATA, 1), # TODO 0 recorded locations 

63 SystemFileIds.ALP_ROOT_AUTHENTICATION_KEY: RootAuthenticationKeyFile(), 

64 SystemFileIds.ALP_USER_AUTHENTICATION_KEY: UserAuthenticationKeyFile(), 

65 SystemFileIds.D7AALP_RFU_1A: NotImplementedFile(SystemFileIds.D7AALP_RFU_1A, 0), 

66 SystemFileIds.D7AALP_RFU_1B: NotImplementedFile(SystemFileIds.D7AALP_RFU_1B, 0), 

67 SystemFileIds.D7AALP_RFU_1C: NotImplementedFile(SystemFileIds.D7AALP_RFU_1C, 0), 

68 SystemFileIds.D7AALP_RFU_1D: NotImplementedFile(SystemFileIds.D7AALP_RFU_1D, 0), 

69 SystemFileIds.D7AALP_RFU_1E: NotImplementedFile(SystemFileIds.D7AALP_RFU_1E, 0), 

70 SystemFileIds.D7AALP_RFU_1F: NotImplementedFile(SystemFileIds.D7AALP_RFU_1F, 0), 

71 SystemFileIds.ACCESS_PROFILE_0: AccessProfileFile(access_specifier=0), 

72 SystemFileIds.ACCESS_PROFILE_1: AccessProfileFile(access_specifier=1), 

73 SystemFileIds.ACCESS_PROFILE_2: AccessProfileFile(access_specifier=2), 

74 SystemFileIds.ACCESS_PROFILE_3: AccessProfileFile(access_specifier=3), 

75 SystemFileIds.ACCESS_PROFILE_4: AccessProfileFile(access_specifier=4), 

76 SystemFileIds.ACCESS_PROFILE_5: AccessProfileFile(access_specifier=5), 

77 SystemFileIds.ACCESS_PROFILE_6: AccessProfileFile(access_specifier=6), 

78 SystemFileIds.ACCESS_PROFILE_7: AccessProfileFile(access_specifier=7), 

79 SystemFileIds.ACCESS_PROFILE_8: AccessProfileFile(access_specifier=8), 

80 SystemFileIds.ACCESS_PROFILE_9: AccessProfileFile(access_specifier=9), 

81 SystemFileIds.ACCESS_PROFILE_10: AccessProfileFile(access_specifier=10), 

82 SystemFileIds.ACCESS_PROFILE_11: AccessProfileFile(access_specifier=11), 

83 SystemFileIds.ACCESS_PROFILE_12: AccessProfileFile(access_specifier=12), 

84 SystemFileIds.ACCESS_PROFILE_13: AccessProfileFile(access_specifier=13), 

85 SystemFileIds.ACCESS_PROFILE_14: AccessProfileFile(access_specifier=14) 

86 } 

87 

88 def get_all_system_files(self): 

89 return sorted(self.files, key=lambda t: t.value) 

90