shepherd-core 2025.6.4__py3-none-any.whl → 2025.10.1__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (45) hide show
  1. shepherd_core/data_models/__init__.py +4 -2
  2. shepherd_core/data_models/base/content.py +2 -0
  3. shepherd_core/data_models/content/__init__.py +4 -2
  4. shepherd_core/data_models/content/{virtual_harvester.py → virtual_harvester_config.py} +3 -3
  5. shepherd_core/data_models/content/{virtual_source.py → virtual_source_config.py} +82 -58
  6. shepherd_core/data_models/content/virtual_source_fixture.yaml +24 -24
  7. shepherd_core/data_models/content/virtual_storage_config.py +426 -0
  8. shepherd_core/data_models/content/virtual_storage_fixture_creator.py +267 -0
  9. shepherd_core/data_models/content/virtual_storage_fixture_ideal.yaml +637 -0
  10. shepherd_core/data_models/content/virtual_storage_fixture_lead.yaml +49 -0
  11. shepherd_core/data_models/content/virtual_storage_fixture_lipo.yaml +735 -0
  12. shepherd_core/data_models/content/virtual_storage_fixture_mlcc.yaml +200 -0
  13. shepherd_core/data_models/content/virtual_storage_fixture_param_experiments.py +151 -0
  14. shepherd_core/data_models/content/virtual_storage_fixture_super.yaml +150 -0
  15. shepherd_core/data_models/content/virtual_storage_fixture_tantal.yaml +550 -0
  16. shepherd_core/data_models/experiment/observer_features.py +8 -2
  17. shepherd_core/data_models/experiment/target_config.py +1 -1
  18. shepherd_core/data_models/task/emulation.py +9 -6
  19. shepherd_core/data_models/task/firmware_mod.py +1 -0
  20. shepherd_core/data_models/task/harvest.py +4 -4
  21. shepherd_core/data_models/task/observer_tasks.py +5 -2
  22. shepherd_core/data_models/task/programming.py +1 -0
  23. shepherd_core/data_models/task/testbed_tasks.py +6 -1
  24. shepherd_core/decoder_waveform/uart.py +2 -1
  25. shepherd_core/fw_tools/patcher.py +60 -34
  26. shepherd_core/fw_tools/validation.py +7 -1
  27. shepherd_core/inventory/system.py +1 -1
  28. shepherd_core/reader.py +4 -3
  29. shepherd_core/version.py +1 -1
  30. shepherd_core/vsource/__init__.py +4 -0
  31. shepherd_core/vsource/virtual_converter_model.py +27 -26
  32. shepherd_core/vsource/virtual_harvester_model.py +27 -19
  33. shepherd_core/vsource/virtual_harvester_simulation.py +38 -39
  34. shepherd_core/vsource/virtual_source_model.py +17 -13
  35. shepherd_core/vsource/virtual_source_simulation.py +71 -73
  36. shepherd_core/vsource/virtual_storage_model.py +164 -0
  37. shepherd_core/vsource/virtual_storage_model_fixed_point_math.py +58 -0
  38. shepherd_core/vsource/virtual_storage_models_kibam.py +449 -0
  39. shepherd_core/vsource/virtual_storage_simulator.py +104 -0
  40. {shepherd_core-2025.6.4.dist-info → shepherd_core-2025.10.1.dist-info}/METADATA +4 -6
  41. {shepherd_core-2025.6.4.dist-info → shepherd_core-2025.10.1.dist-info}/RECORD +44 -32
  42. shepherd_core/data_models/virtual_source_doc.txt +0 -207
  43. {shepherd_core-2025.6.4.dist-info → shepherd_core-2025.10.1.dist-info}/WHEEL +0 -0
  44. {shepherd_core-2025.6.4.dist-info → shepherd_core-2025.10.1.dist-info}/top_level.txt +0 -0
  45. {shepherd_core-2025.6.4.dist-info → shepherd_core-2025.10.1.dist-info}/zip-safe +0 -0
@@ -3,41 +3,49 @@ shepherd_core/calibration_hw_def.py,sha256=aL94bA1Sf14L5A3PLdVvQVYtGi28S4NUWA65w
3
3
  shepherd_core/commons.py,sha256=_phovuhCgLmO5gcazQ5hyykUPc907dyK9KpY2lUtoIM,205
4
4
  shepherd_core/config.py,sha256=YegFEXuBUBnbq5mb67em8ozEnSkEQSPXjqHlKA2HXCQ,967
5
5
  shepherd_core/logger.py,sha256=Plx7JFZXSYWAKbeOTyo7uApe3sDBKEQhG4ovhiET9Sc,1772
6
- shepherd_core/reader.py,sha256=lFpcsnia72vGrR0othUZxh_pn_cM_9sbjzZRywjXus0,29246
7
- shepherd_core/version.py,sha256=MnQ5sTXfw9kncBl7S6djzJEU8gMQaI_BCLsZeqaoU9A,76
6
+ shepherd_core/reader.py,sha256=irae0ezLOG6FkJNVsh_u7QG-u8B_qo7MEnzm51IjJ5w,29392
7
+ shepherd_core/version.py,sha256=tUkZ6me00iSazuJnSdnp61gMccxWO_JUMJuiZDvpTfg,76
8
8
  shepherd_core/writer.py,sha256=W4jWCQ2br_iJHvgknnuCThC5JQ9p5VxsWhsMnviOGHY,14489
9
- shepherd_core/data_models/__init__.py,sha256=jBsk2RpD5Gw5GNe1gql9YrWD-7Uv7F2jwRRx-CHdceQ,1909
9
+ shepherd_core/data_models/__init__.py,sha256=S13slmH4yByO9juym0PXVbi4_D-ymEcECIRB5eVoyso,2016
10
10
  shepherd_core/data_models/readme.md,sha256=DHPVmkWqDksWomRHRTVWVHy9wXF9oMJrITgKs4Pnz2g,2494
11
- shepherd_core/data_models/virtual_source_doc.txt,sha256=OK_7zYbLvr6cEj3KaUcWwZJ9naoFB2KwAaXudbhzouQ,6076
12
11
  shepherd_core/data_models/base/__init__.py,sha256=PSJ6acWViqBm0Eiom8DIgKfFVrp5lzYr8OsDvP79vwI,94
13
12
  shepherd_core/data_models/base/cal_measurement.py,sha256=ZZYoXfpehZkKRLnRqzuPakYHrpMwIMJVaPkUw0W_Ybo,3340
14
13
  shepherd_core/data_models/base/calibration.py,sha256=69ihSXuIjogqICRLhbZJu9-KdkGR8UXyMyBDSAY2ajY,10713
15
- shepherd_core/data_models/base/content.py,sha256=Oar3cSYF-ywIm5BKH77epdSy5zscw1UKC7h3PuhbJ9M,2064
14
+ shepherd_core/data_models/base/content.py,sha256=35VQ4CRduULa0j2xridrBXp7T0cBwCJR8yuD6GEfgG8,2188
16
15
  shepherd_core/data_models/base/shepherd.py,sha256=bkG4UA4q6AXMnwvnZlDITnP-cYMr21tDthPi7DRVFAY,7345
17
16
  shepherd_core/data_models/base/timezone.py,sha256=2T6E46hJ1DAvmqKfu6uIgCK3RSoAKjGXRyzYNaqKyjY,665
18
17
  shepherd_core/data_models/base/wrapper.py,sha256=W82OHSfRIFQgBR19B-xVu-vPspkQjgo_aHKOMwcFR0g,747
19
- shepherd_core/data_models/content/__init__.py,sha256=69aiNG0h5t1OF7HsLg_ke5eaQKsKyMK8o6Kfaby5vlY,525
18
+ shepherd_core/data_models/content/__init__.py,sha256=m3U5qbtHGWpox0B8tv0UVP-V2jQNWsftHK5vn-_B-04,624
20
19
  shepherd_core/data_models/content/_external_fixtures.yaml,sha256=BsHW5UP1UtrEkcI-efCHq4gFtnsuOvoCPv1ri-f6JOI,12132
21
20
  shepherd_core/data_models/content/energy_environment.py,sha256=y_DiLKkABFn0kP9XFEy918JQg-mBSXgOEMISOTV7S0g,1593
22
21
  shepherd_core/data_models/content/energy_environment_fixture.yaml,sha256=UBXTdGT7MK98zx5w_RBCu-f9uNCKxRgiFBQFbmDUxPc,1301
23
22
  shepherd_core/data_models/content/firmware.py,sha256=1N9dFY3hDiis4rmqrNyXHVNN5TLscIb3OwJ8R9aaKd0,6114
24
23
  shepherd_core/data_models/content/firmware_datatype.py,sha256=XPU9LOoT3h5qFOlE8WU0vAkw-vymNxzor9kVFyEqsWg,255
25
- shepherd_core/data_models/content/virtual_harvester.py,sha256=8MAzZm5P3vAvwJ5IsFZwHmZV-CBU5czAD_EmwUAaCr8,20263
24
+ shepherd_core/data_models/content/virtual_harvester_config.py,sha256=6bUGvuzMrlVebtnkqLKdKdAH9YFfFyUuHTymYgp2IGM,20275
26
25
  shepherd_core/data_models/content/virtual_harvester_fixture.yaml,sha256=4eNQyFI9LozpButOTlBQ07T0MFCaPEYIxwtedMjUf3U,4575
27
- shepherd_core/data_models/content/virtual_source.py,sha256=GbdRghRLmLEUrMo1dyd0Pc0-bm7-3LCIgVaOhCb6NxQ,15850
28
- shepherd_core/data_models/content/virtual_source_fixture.yaml,sha256=WWbo9ACoD-JJ-jidMFTfwSn4PR_nRPwKQ0Aa2qKVrxE,11202
26
+ shepherd_core/data_models/content/virtual_source_config.py,sha256=RF6yS0De-6kfiQgRuBeE7-hLruy-VoRbkCKATf2ESBA,16671
27
+ shepherd_core/data_models/content/virtual_source_fixture.yaml,sha256=eW5JFlt7RxCF3WgLI5OW2i4sDd2uLITzhCRIiikbce4,11151
28
+ shepherd_core/data_models/content/virtual_storage_config.py,sha256=U6ky_Wh3_Orreope-dovkaQ-YMA3JTdW0HV0uKAhnHM,15778
29
+ shepherd_core/data_models/content/virtual_storage_fixture_creator.py,sha256=pFBNekbLvT61xZDMA00inIfvmuy2ujVkz3M-19fDmBs,9281
30
+ shepherd_core/data_models/content/virtual_storage_fixture_ideal.yaml,sha256=_fal7Egnq1_yIMCh-clZhrs2yNKIBxAUpxm4Y4J6JtM,11838
31
+ shepherd_core/data_models/content/virtual_storage_fixture_lead.yaml,sha256=m3aptqq7S0WCuHbkG_7Ly9isTcioVsayjV56CSBvfrs,926
32
+ shepherd_core/data_models/content/virtual_storage_fixture_lipo.yaml,sha256=zAFUapOxAeW14ndqQHKnFgUOUylB4DCuwngC1ERMsGw,13788
33
+ shepherd_core/data_models/content/virtual_storage_fixture_mlcc.yaml,sha256=DjvQVw3YY3Qwq_MUkSgt-mTHyixra_T73uZBiSJKc9A,3778
34
+ shepherd_core/data_models/content/virtual_storage_fixture_param_experiments.py,sha256=7fFA_4K0QPYimjzRkW89s6daKSsTLud5RX65CmRoQOo,5209
35
+ shepherd_core/data_models/content/virtual_storage_fixture_super.yaml,sha256=I4vuW4Pg94qxh17miNj8a_batVEFAL-nAhZS0hHPOKI,2875
36
+ shepherd_core/data_models/content/virtual_storage_fixture_tantal.yaml,sha256=7E0zby__SvxWXO_saHbR8ir7N0KwuvGCyKlitZMUoeM,10600
29
37
  shepherd_core/data_models/experiment/__init__.py,sha256=lorsx0M-JWPIrt_UZfexsLwaITv5slFb3krBOt0idm8,618
30
38
  shepherd_core/data_models/experiment/experiment.py,sha256=6fv-UMIFweWHtJT4KxGcIrqk2EY8MKi0SXZQj0EADHo,4268
31
- shepherd_core/data_models/experiment/observer_features.py,sha256=3Ex92yHzfiJ-O1QldgfUGBZTDG6NoRmrmtxY0IJxsos,8029
32
- shepherd_core/data_models/experiment/target_config.py,sha256=l0_TsE5UYLVe3E8ygsLQdG-KC5v2TVcP3vjDf8Fu_ek,4210
39
+ shepherd_core/data_models/experiment/observer_features.py,sha256=culZr3_PXHas5SL9prSKCGLEyzd3mfVj6jDnYCKDy6I,8341
40
+ shepherd_core/data_models/experiment/target_config.py,sha256=u1bGf5GFuwkMI5fznjT_iYZ_dT7IaiK0XlsUxYK05s8,4217
33
41
  shepherd_core/data_models/task/__init__.py,sha256=lW-U3Ativerhan_8JMlNSgvHvvS6PH02zmTJviLYoNg,3633
34
- shepherd_core/data_models/task/emulation.py,sha256=MEsC42dVlEyG-TAVw84fRETZaCc0X1Ny0gVer5pshro,7697
35
- shepherd_core/data_models/task/firmware_mod.py,sha256=rke3WO69YKq0BLoFttwXqueweM9wEplsQ3GS6BeDDtA,3422
36
- shepherd_core/data_models/task/harvest.py,sha256=aefKeI5zx2OrputmT1_ooq0bcOKr5DF_-fMgSM7sZ_w,3659
42
+ shepherd_core/data_models/task/emulation.py,sha256=h3wuAcGwLj8bbipp2Fjb82enuP3VgGsdlQDPBHQoU6s,7873
43
+ shepherd_core/data_models/task/firmware_mod.py,sha256=0UjCGi7SZ00B-ggZMowXrRlpV9bYjKjYMHEk23c_3Z0,3472
44
+ shepherd_core/data_models/task/harvest.py,sha256=dKLSvAoGN7kcC74f2uiOYh9_XH381rc3csocYx7bLeQ,3723
37
45
  shepherd_core/data_models/task/helper_paths.py,sha256=AOfbZekT1OxH8pUV_B0S_SR7O4tcRbJalhnUBGPfvd4,440
38
- shepherd_core/data_models/task/observer_tasks.py,sha256=_jMlyjyikXAiUw5YHl29FlZP4-3tPmO9wo9wkZwDlpc,3812
39
- shepherd_core/data_models/task/programming.py,sha256=h1mS4x6x1SPzGyxpQcfpMF-JKofvdP4pum1YovLXUTE,2882
40
- shepherd_core/data_models/task/testbed_tasks.py,sha256=_mDctCGyg25LgsAfFq05Bo-YaJALCVfXXF0dSrb7JYc,2269
46
+ shepherd_core/data_models/task/observer_tasks.py,sha256=udkAEfOjYnpDONHeZ5iPnM4qnARQMH_M_t8LG2UHSEI,3991
47
+ shepherd_core/data_models/task/programming.py,sha256=zJ84oW-bchu4CNPK8z3dDQvBNc5FAtUI8bbXd3s2zOY,2932
48
+ shepherd_core/data_models/task/testbed_tasks.py,sha256=cweCmfiQZ364BZ_9y7MCjyL-5yJxQ5A2zCXwPtViUi0,2474
41
49
  shepherd_core/data_models/testbed/__init__.py,sha256=t9nwml5pbu7ZWghimOyZ8ujMIgnRgFkl23pNb5d_KdU,581
42
50
  shepherd_core/data_models/testbed/cape.py,sha256=F4BOYrzgT1u-8A7seaEJsxwi_VZHsLJBXCnyC55Ok-Y,1329
43
51
  shepherd_core/data_models/testbed/cape_fixture.yaml,sha256=ZCjQSlHE3_5EQpusmRYuw-z9NlxT-8MU49RCd04PfAg,2373
@@ -53,15 +61,15 @@ shepherd_core/data_models/testbed/target_fixture.yaml,sha256=aoP7Al_sXw8nBQpIP25
53
61
  shepherd_core/data_models/testbed/testbed.py,sha256=e2szb1vFG0aiYMaYOT5Y1y1Y8mqvgnoP3oq9DcQgSGk,3727
54
62
  shepherd_core/data_models/testbed/testbed_fixture.yaml,sha256=ca5LI-fWoc3I9m2QScVAh84Bv-ftkSGAizR3ZR0lkC8,980
55
63
  shepherd_core/decoder_waveform/__init__.py,sha256=-ohGz0fA2tKxUJk4FAQXKtI93d6YGdy0CrkdhOod1QU,120
56
- shepherd_core/decoder_waveform/uart.py,sha256=ZMDA9-UL7FCjEIoVrdfeQ_thtXdckNDJF-STd5GH05E,10974
64
+ shepherd_core/decoder_waveform/uart.py,sha256=zQX64dBXmhEYXN__OfS2h_1fDgZLomhbptQX34-Fobc,10989
57
65
  shepherd_core/fw_tools/__init__.py,sha256=D9GGj9TzLWZfPjG_iV2BsF-Q1TGTYTgEzWTUI5ReVAA,2090
58
66
  shepherd_core/fw_tools/converter.py,sha256=wRJvcaFyMpApUTNBTh3a-vqqfRXDJWYppEaH0oyrACY,3626
59
67
  shepherd_core/fw_tools/converter_elf.py,sha256=DC-zDi1v7pCFTA1d4VqErDvIMAYwAbv_efqh17wLeRA,1058
60
- shepherd_core/fw_tools/patcher.py,sha256=zwcDITrEZ_CESg1uEMQaxM40VJHnwIt_zaK5lcoPPUk,3878
61
- shepherd_core/fw_tools/validation.py,sha256=usX-wifUrDmAh2QNhPv0qn0CFrsdjgkOEcYwcVaTc1A,4786
68
+ shepherd_core/fw_tools/patcher.py,sha256=V5Dg-uhTxT7Ro4UdFS7pVl2GwkKHLWd8YIvZKxMdePg,4941
69
+ shepherd_core/fw_tools/validation.py,sha256=unm6jsj2538EfIAuRcrpnA2dee1-THD5_dKWFVmCmMI,5095
62
70
  shepherd_core/inventory/__init__.py,sha256=yQxP55yV61xXWfZSSzekQQYopPZCspFpHSyG7VTqtpg,3819
63
71
  shepherd_core/inventory/python.py,sha256=uchavGsssM4CTYQ23kF6hxhl3NUeEpGVvJYX8t7dWU4,1210
64
- shepherd_core/inventory/system.py,sha256=VHXJjTgImppbYEkAZqBPduDMCQ1z1iYTr3OWKcUJGSc,3168
72
+ shepherd_core/inventory/system.py,sha256=1BkS71SCOGscD6aW9EDW47-CZM9gyBLED28cy1u83Es,3162
65
73
  shepherd_core/inventory/target.py,sha256=4ju4HwXxEJ2naNEfL-gS8Z6s0eacllMmBu4iKKz-14Y,489
66
74
  shepherd_core/testbed_client/__init__.py,sha256=QtbsBUzHwOoM6rk0qa21ywuz63YV7af1fwUtWW8Vg_4,234
67
75
  shepherd_core/testbed_client/cache_path.py,sha256=BXklO72gFDhJ9i2gGlgw5MbuxexGA42two7DCdpd9dM,437
@@ -69,15 +77,19 @@ shepherd_core/testbed_client/client_abc_fix.py,sha256=DX51I8Wh4ROU4SBwdeM-2VznIN
69
77
  shepherd_core/testbed_client/client_web.py,sha256=7dEPjYOWXAbeU_zaJ7Pk9cj7LafKjFBfCw8UBD5v7HA,5939
70
78
  shepherd_core/testbed_client/fixtures.py,sha256=PzQLsMxs8Ddz01dMtpt59nOPGMWTKQ10dBDu49BjMyA,9317
71
79
  shepherd_core/testbed_client/user_model.py,sha256=9vqW9Vzs-QwD3SqgXDyNGLR8siQ9-2ueRcaI3yxs6yA,2037
72
- shepherd_core/vsource/__init__.py,sha256=vTvFWuJn4eurPNzEiMd15c1Rd6o3DTWzCfbhOomflZU,771
80
+ shepherd_core/vsource/__init__.py,sha256=D8FB8ugsFp3XBM5io33j6SJTYy3TfK_-3FW7boLDCaw,933
73
81
  shepherd_core/vsource/target_model.py,sha256=BjOlwX_gIOJ91e4OOLB4_OsCpuhq9vm57ERjM-iBhAM,5129
74
- shepherd_core/vsource/virtual_converter_model.py,sha256=D9lkvRe6gTm3kEfyLmuBvuxDyacmCEQUPHPCDUu8IJo,11597
75
- shepherd_core/vsource/virtual_harvester_model.py,sha256=K9RnAHCz1ibdYMte5l_U7vrY6_mVRZBg7xBL2ZYC16c,9757
76
- shepherd_core/vsource/virtual_harvester_simulation.py,sha256=SGAqXb-PC_JblbyBRoYxu-64VKawnixuhsnlv_xk6Mk,2516
77
- shepherd_core/vsource/virtual_source_model.py,sha256=VMiDDJYhc5LZIBoi-uHWeXKPnZASqaLMd4FmArj21qw,3126
78
- shepherd_core/vsource/virtual_source_simulation.py,sha256=UcGDY5a2JeL-Hr-A8zfXjeQiEO6K6sWNVl3AWpvgGiU,5236
79
- shepherd_core-2025.6.4.dist-info/METADATA,sha256=DxMxk9kGMXyy3PsgiICLYYoJxI13gqWURkjqUBUmGLU,7729
80
- shepherd_core-2025.6.4.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
81
- shepherd_core-2025.6.4.dist-info/top_level.txt,sha256=wy-t7HRBrKARZxa-Y8_j8d49oVHnulh-95K9ikxVhew,14
82
- shepherd_core-2025.6.4.dist-info/zip-safe,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
83
- shepherd_core-2025.6.4.dist-info/RECORD,,
82
+ shepherd_core/vsource/virtual_converter_model.py,sha256=k-Et_u4XZ7YIEMyCWqoC2J-vnz1Y1DYmf8IT2IBEirs,11618
83
+ shepherd_core/vsource/virtual_harvester_model.py,sha256=n0kBtEGuXpCOmLC8w7lnLEeveCyplSOMi5rg2P2X7go,10091
84
+ shepherd_core/vsource/virtual_harvester_simulation.py,sha256=0o9TgA-7UQ_Q9QGxRYdLXPUfEU93yzKTAQ9AtyA-h1Q,2659
85
+ shepherd_core/vsource/virtual_source_model.py,sha256=N0oDy6lalUDzQ6yNe-BCvCND7nvhpgIOfFaisxIG5wk,3411
86
+ shepherd_core/vsource/virtual_source_simulation.py,sha256=aiDGJZYdD5n61H1eVIdgSbixAZpsjJ7nQZ2Vy9QiKRA,5512
87
+ shepherd_core/vsource/virtual_storage_model.py,sha256=UNV5HkU4ahiHE213ygpovs4FqgtIc3v6TWW1aaijKCc,5634
88
+ shepherd_core/vsource/virtual_storage_model_fixed_point_math.py,sha256=v4SbEb7bY4ZBg0p9xgHd76Pq2B3M98xSZ16AWRyUNTQ,2050
89
+ shepherd_core/vsource/virtual_storage_models_kibam.py,sha256=Gubk6VSBcXYfoa_yNLxTy2Qj_Iu4FDJz5czEtnTGVSE,18292
90
+ shepherd_core/vsource/virtual_storage_simulator.py,sha256=qPWHwIdey9aDOA8oSJjNX5WKBMV8avzWkcEpp1m3uyY,4268
91
+ shepherd_core-2025.10.1.dist-info/METADATA,sha256=muJaAktfPNxE3R4RzBqTcG_5SRpg8m57pE0q5hjEVfc,7680
92
+ shepherd_core-2025.10.1.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
93
+ shepherd_core-2025.10.1.dist-info/top_level.txt,sha256=wy-t7HRBrKARZxa-Y8_j8d49oVHnulh-95K9ikxVhew,14
94
+ shepherd_core-2025.10.1.dist-info/zip-safe,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
95
+ shepherd_core-2025.10.1.dist-info/RECORD,,
@@ -1,207 +0,0 @@
1
- from pydantic import Field
2
-
3
- from ..data_models import ShpModel
4
- from .content import VirtualHarvesterConfig
5
- from .content.virtual_source import LUT1D
6
- from .content.virtual_source import LUT2D
7
-
8
-
9
- @DeprecationWarning
10
- class VirtualSourceDoc(ShpModel, title="Virtual Source (Documented, Testversion)"):
11
- # General Config
12
- name: str = Field(
13
- title="Name of Virtual Source",
14
- description="Slug to use this Name as later reference",
15
- default="neutral",
16
- )
17
- inherit_from: str = Field(
18
- description="Name of converter to derive defaults from",
19
- default="neutral",
20
- )
21
-
22
- enable_boost: bool = Field(
23
- description="If false -> V_intermediate becomes V_input, "
24
- "output-switch-hysteresis is still usable",
25
- default=False,
26
- )
27
- enable_buck: bool = Field(
28
- description="If false -> V_output becomes V_intermediate",
29
- default=False,
30
- )
31
- log_intermediate_voltage: bool = Field(
32
- description="Record / log virtual intermediate (cap-)voltage and "
33
- "-current (out) instead of output-voltage and -current",
34
- default=False,
35
- )
36
-
37
- interval_startup_delay_drain_ms: float = Field(
38
- description="Model begins running but Target is not draining the storage capacitor",
39
- default=0,
40
- ge=0,
41
- le=10e3,
42
- )
43
-
44
- harvester: VirtualHarvesterConfig = Field(
45
- description="Only active / needed if input is ivsurface / curves,
46
- default=VirtualHarvesterConfig(name="mppt_opt"),
47
- )
48
-
49
- V_input_max_mV: float = Field(
50
- description="Maximum input Voltage [mV]",
51
- default=10_000,
52
- ge=0,
53
- le=10e3,
54
- )
55
- I_input_max_mA: float = Field(
56
- description="Maximum input Current [mA]",
57
- default=4_200,
58
- ge=0,
59
- le=4.29e3,
60
- )
61
- V_input_drop_mV: float = Field(
62
- title="Drop of Input-Voltage [mV]",
63
- description="Simulate an input-diode",
64
- default=0,
65
- ge=0,
66
- le=4.29e6,
67
- )
68
- R_input_mOhm: float = Field(
69
- description="Resistance only active with disabled boost, range [1 mOhm; 1MOhm]",
70
- default=0,
71
- ge=0,
72
- le=4.29e6,
73
- )
74
-
75
- C_intermediate_uF: float = Field(
76
- description="Capacity of primary Storage-Capacitor",
77
- default=0,
78
- ge=0,
79
- le=100_000,
80
- )
81
- V_intermediate_init_mV: float = Field(
82
- description="Allow a proper / fast startup",
83
- default=3_000,
84
- ge=0,
85
- le=10_000,
86
- )
87
- I_intermediate_leak_nA: float = Field(
88
- description="Current leakage of intermediate storage capacitor",
89
- default=0,
90
- ge=0,
91
- le=4.29e9,
92
- )
93
-
94
- V_intermediate_enable_threshold_mV: float = Field(
95
- description="Target gets connected (hysteresis-combo with next value)",
96
- default=1,
97
- ge=0,
98
- le=10_000,
99
- )
100
- V_intermediate_disable_threshold_mV: float = Field(
101
- description="Target gets disconnected",
102
- default=0,
103
- ge=0,
104
- le=10_000,
105
- )
106
- interval_check_thresholds_ms: float = Field(
107
- description="Some BQs check every 64 ms if output should be disconnected",
108
- default=0,
109
- ge=0,
110
- le=4.29e3,
111
- )
112
-
113
- V_pwr_good_enable_threshold_mV: float = Field(
114
- description="Target is informed by pwr-good on output-pin (hysteresis) "
115
- "-> for intermediate voltage",
116
- default=2800,
117
- ge=0,
118
- le=10_000,
119
- )
120
- V_pwr_good_disable_threshold_mV: float = Field(
121
- description="Target is informed by pwr-good on output-pin (hysteresis) "
122
- "-> for intermediate voltage",
123
- default=2200,
124
- ge=0,
125
- le=10_000,
126
- )
127
- immediate_pwr_good_signal: bool = Field(
128
- description="1: activate instant schmitt-trigger, "
129
- "0: stay in interval for checking thresholds",
130
- default=True,
131
- )
132
-
133
- C_output_uF: float = Field(
134
- description="Final (always last) stage to compensate undetectable "
135
- "current spikes when enabling power for target",
136
- default=1.0,
137
- ge=0,
138
- le=4.29e6,
139
- )
140
-
141
- # Extra
142
- V_output_log_gpio_threshold_mV: float = Field(
143
- description="Min voltage needed to enable recording changes in gpio-bank",
144
- default=1400,
145
- ge=0,
146
- le=4.29e6,
147
- )
148
-
149
- # Boost Converter
150
- V_input_boost_threshold_mV: float = Field(
151
- description="min input-voltage for the boost converter to work",
152
- default=0,
153
- ge=0,
154
- le=10_000,
155
- )
156
- V_intermediate_max_mV: float = Field(
157
- description="Threshold for shutting off Boost converter",
158
- default=10_000,
159
- ge=0,
160
- le=10_000,
161
- )
162
-
163
- LUT_input_efficiency: LUT2D = Field(
164
- description="# input-array[12][12] depending on "
165
- "array[inp_voltage][log(inp_current)], "
166
- "influence of cap-voltage is not implemented",
167
- default=12 * [12 * [1.00]],
168
- )
169
- LUT_input_V_min_log2_uV: int = Field(
170
- description="Example: n=7, 2^n = 128 uV -> array[0] is for inputs < 128 uV",
171
- default=0,
172
- ge=0,
173
- le=20,
174
- )
175
- LUT_input_I_min_log2_nA: int = Field(
176
- description="Example: n=8, 2^n = 256 nA -> array[0] is for inputs < 256 nA",
177
- default=0,
178
- ge=0,
179
- le=20,
180
- )
181
-
182
- # Buck Converter
183
- V_output_mV: float = Field(
184
- description="Fixed Voltage of Buck-Converter (as long as "
185
- "Input is > Output + Drop-Voltage)",
186
- default=2400,
187
- ge=0,
188
- le=5_000,
189
- )
190
- V_buck_drop_mV: float = Field(
191
- description="Simulate LDO min voltage differential or output-diode",
192
- default=0,
193
- ge=0,
194
- le=5_000,
195
- )
196
-
197
- LUT_output_efficiency: LUT1D = Field(
198
- description="Output-Array[12] depending on output_current. In & Output is linear",
199
- default=12 * [1.00],
200
- )
201
- LUT_output_I_min_log2_nA: int = Field(
202
- description="Example: n=8, 2^n = 256 nA -> array[0] is for inputs < 256 nA, "
203
- "see notes on LUT_input for explanation",
204
- default=0,
205
- ge=0,
206
- le=20,
207
- )