DLMS-SPODES-client 0.19.35__tar.gz → 0.19.37__tar.gz
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.
- {dlms_spodes_client-0.19.35 → dlms_spodes_client-0.19.37}/.github/workflows/publish.yaml +43 -39
- {dlms_spodes_client-0.19.35 → dlms_spodes_client-0.19.37}/.gitignore +8 -8
- {dlms_spodes_client-0.19.35 → dlms_spodes_client-0.19.37}/.vscode/launch.json +23 -23
- {dlms_spodes_client-0.19.35/src/DLMS_SPODES_client.egg-info → dlms_spodes_client-0.19.37}/PKG-INFO +29 -29
- {dlms_spodes_client-0.19.35 → dlms_spodes_client-0.19.37}/pyproject.toml +93 -93
- {dlms_spodes_client-0.19.35 → dlms_spodes_client-0.19.37}/setup.cfg +4 -4
- {dlms_spodes_client-0.19.35 → dlms_spodes_client-0.19.37}/src/DLMS_SPODES_client/FCS16.py +39 -39
- {dlms_spodes_client-0.19.35 → dlms_spodes_client-0.19.37}/src/DLMS_SPODES_client/__init__.py +12 -12
- {dlms_spodes_client-0.19.35 → dlms_spodes_client-0.19.37}/src/DLMS_SPODES_client/client.py +2093 -2093
- {dlms_spodes_client-0.19.35 → dlms_spodes_client-0.19.37}/src/DLMS_SPODES_client/gurux_common/enums/TraceLevel.py +21 -21
- {dlms_spodes_client-0.19.35 → dlms_spodes_client-0.19.37}/src/DLMS_SPODES_client/gurux_dlms/AesGcmParameter.py +37 -37
- {dlms_spodes_client-0.19.35 → dlms_spodes_client-0.19.37}/src/DLMS_SPODES_client/gurux_dlms/CountType.py +16 -16
- {dlms_spodes_client-0.19.35 → dlms_spodes_client-0.19.37}/src/DLMS_SPODES_client/gurux_dlms/GXByteBuffer.py +545 -545
- {dlms_spodes_client-0.19.35 → dlms_spodes_client-0.19.37}/src/DLMS_SPODES_client/gurux_dlms/GXCiphering.py +196 -196
- {dlms_spodes_client-0.19.35 → dlms_spodes_client-0.19.37}/src/DLMS_SPODES_client/gurux_dlms/GXDLMS.py +426 -426
- {dlms_spodes_client-0.19.35 → dlms_spodes_client-0.19.37}/src/DLMS_SPODES_client/gurux_dlms/GXDLMSChippering.py +237 -237
- {dlms_spodes_client-0.19.35 → dlms_spodes_client-0.19.37}/src/DLMS_SPODES_client/gurux_dlms/GXDLMSChipperingStream.py +977 -977
- {dlms_spodes_client-0.19.35 → dlms_spodes_client-0.19.37}/src/DLMS_SPODES_client/gurux_dlms/GXDLMSConfirmedServiceError.py +90 -90
- {dlms_spodes_client-0.19.35 → dlms_spodes_client-0.19.37}/src/DLMS_SPODES_client/gurux_dlms/GXDLMSException.py +139 -139
- {dlms_spodes_client-0.19.35 → dlms_spodes_client-0.19.37}/src/DLMS_SPODES_client/gurux_dlms/GXDLMSLNParameters.py +33 -33
- {dlms_spodes_client-0.19.35 → dlms_spodes_client-0.19.37}/src/DLMS_SPODES_client/gurux_dlms/GXDLMSSNParameters.py +21 -21
- {dlms_spodes_client-0.19.35 → dlms_spodes_client-0.19.37}/src/DLMS_SPODES_client/gurux_dlms/GXDLMSSettings.py +254 -254
- {dlms_spodes_client-0.19.35 → dlms_spodes_client-0.19.37}/src/DLMS_SPODES_client/gurux_dlms/GXReplyData.py +87 -87
- {dlms_spodes_client-0.19.35 → dlms_spodes_client-0.19.37}/src/DLMS_SPODES_client/gurux_dlms/HdlcControlFrame.py +9 -9
- {dlms_spodes_client-0.19.35 → dlms_spodes_client-0.19.37}/src/DLMS_SPODES_client/gurux_dlms/MBusCommand.py +8 -8
- {dlms_spodes_client-0.19.35 → dlms_spodes_client-0.19.37}/src/DLMS_SPODES_client/gurux_dlms/MBusEncryptionMode.py +27 -27
- {dlms_spodes_client-0.19.35 → dlms_spodes_client-0.19.37}/src/DLMS_SPODES_client/gurux_dlms/ResponseType.py +8 -8
- {dlms_spodes_client-0.19.35 → dlms_spodes_client-0.19.37}/src/DLMS_SPODES_client/gurux_dlms/SetResponseType.py +29 -29
- {dlms_spodes_client-0.19.35 → dlms_spodes_client-0.19.37}/src/DLMS_SPODES_client/gurux_dlms/_HDLCInfo.py +9 -9
- {dlms_spodes_client-0.19.35 → dlms_spodes_client-0.19.37}/src/DLMS_SPODES_client/gurux_dlms/__init__.py +75 -75
- {dlms_spodes_client-0.19.35 → dlms_spodes_client-0.19.37}/src/DLMS_SPODES_client/gurux_dlms/enums/Access.py +12 -12
- {dlms_spodes_client-0.19.35 → dlms_spodes_client-0.19.37}/src/DLMS_SPODES_client/gurux_dlms/enums/ApplicationReference.py +14 -14
- {dlms_spodes_client-0.19.35 → dlms_spodes_client-0.19.37}/src/DLMS_SPODES_client/gurux_dlms/enums/Authentication.py +41 -41
- {dlms_spodes_client-0.19.35 → dlms_spodes_client-0.19.37}/src/DLMS_SPODES_client/gurux_dlms/enums/BerType.py +35 -35
- {dlms_spodes_client-0.19.35 → dlms_spodes_client-0.19.37}/src/DLMS_SPODES_client/gurux_dlms/enums/Command.py +285 -285
- {dlms_spodes_client-0.19.35 → dlms_spodes_client-0.19.37}/src/DLMS_SPODES_client/gurux_dlms/enums/Definition.py +9 -9
- {dlms_spodes_client-0.19.35 → dlms_spodes_client-0.19.37}/src/DLMS_SPODES_client/gurux_dlms/enums/ErrorCode.py +46 -46
- {dlms_spodes_client-0.19.35 → dlms_spodes_client-0.19.37}/src/DLMS_SPODES_client/gurux_dlms/enums/ExceptionServiceError.py +12 -12
- {dlms_spodes_client-0.19.35 → dlms_spodes_client-0.19.37}/src/DLMS_SPODES_client/gurux_dlms/enums/HardwareResource.py +10 -10
- {dlms_spodes_client-0.19.35 → dlms_spodes_client-0.19.37}/src/DLMS_SPODES_client/gurux_dlms/enums/HdlcFrameType.py +9 -9
- {dlms_spodes_client-0.19.35 → dlms_spodes_client-0.19.37}/src/DLMS_SPODES_client/gurux_dlms/enums/Initiate.py +10 -10
- {dlms_spodes_client-0.19.35 → dlms_spodes_client-0.19.37}/src/DLMS_SPODES_client/gurux_dlms/enums/LoadDataSet.py +13 -13
- {dlms_spodes_client-0.19.35 → dlms_spodes_client-0.19.37}/src/DLMS_SPODES_client/gurux_dlms/enums/ObjectType.py +306 -306
- {dlms_spodes_client-0.19.35 → dlms_spodes_client-0.19.37}/src/DLMS_SPODES_client/gurux_dlms/enums/Priority.py +7 -7
- {dlms_spodes_client-0.19.35 → dlms_spodes_client-0.19.37}/src/DLMS_SPODES_client/gurux_dlms/enums/RequestTypes.py +9 -9
- {dlms_spodes_client-0.19.35 → dlms_spodes_client-0.19.37}/src/DLMS_SPODES_client/gurux_dlms/enums/Security.py +14 -14
- {dlms_spodes_client-0.19.35 → dlms_spodes_client-0.19.37}/src/DLMS_SPODES_client/gurux_dlms/enums/Service.py +16 -16
- {dlms_spodes_client-0.19.35 → dlms_spodes_client-0.19.37}/src/DLMS_SPODES_client/gurux_dlms/enums/ServiceClass.py +9 -9
- {dlms_spodes_client-0.19.35 → dlms_spodes_client-0.19.37}/src/DLMS_SPODES_client/gurux_dlms/enums/ServiceError.py +8 -8
- {dlms_spodes_client-0.19.35 → dlms_spodes_client-0.19.37}/src/DLMS_SPODES_client/gurux_dlms/enums/Standard.py +18 -18
- {dlms_spodes_client-0.19.35 → dlms_spodes_client-0.19.37}/src/DLMS_SPODES_client/gurux_dlms/enums/StateError.py +7 -7
- {dlms_spodes_client-0.19.35 → dlms_spodes_client-0.19.37}/src/DLMS_SPODES_client/gurux_dlms/enums/Task.py +10 -10
- {dlms_spodes_client-0.19.35 → dlms_spodes_client-0.19.37}/src/DLMS_SPODES_client/gurux_dlms/enums/VdeStateError.py +10 -10
- {dlms_spodes_client-0.19.35 → dlms_spodes_client-0.19.37}/src/DLMS_SPODES_client/gurux_dlms/enums/__init__.py +33 -33
- {dlms_spodes_client-0.19.35 → dlms_spodes_client-0.19.37}/src/DLMS_SPODES_client/gurux_dlms/internal/_GXCommon.py +1673 -1673
- {dlms_spodes_client-0.19.35 → dlms_spodes_client-0.19.37}/src/DLMS_SPODES_client/logger.py +56 -56
- {dlms_spodes_client-0.19.35 → dlms_spodes_client-0.19.37}/src/DLMS_SPODES_client/services.py +90 -90
- {dlms_spodes_client-0.19.35 → dlms_spodes_client-0.19.37}/src/DLMS_SPODES_client/session.py +363 -363
- {dlms_spodes_client-0.19.35 → dlms_spodes_client-0.19.37}/src/DLMS_SPODES_client/settings.py +48 -48
- {dlms_spodes_client-0.19.35 → dlms_spodes_client-0.19.37}/src/DLMS_SPODES_client/task.py +1884 -1884
- {dlms_spodes_client-0.19.35 → dlms_spodes_client-0.19.37/src/DLMS_SPODES_client.egg-info}/PKG-INFO +29 -29
- {dlms_spodes_client-0.19.35 → dlms_spodes_client-0.19.37}/src/DLMS_SPODES_client.egg-info/requires.txt +1 -1
- {dlms_spodes_client-0.19.35 → dlms_spodes_client-0.19.37}/test/client_log.txt +44588 -44588
- {dlms_spodes_client-0.19.35 → dlms_spodes_client-0.19.37}/test/config.toml +1955 -1955
- dlms_spodes_client-0.19.37/test/name2.csv +2 -0
- {dlms_spodes_client-0.19.35 → dlms_spodes_client-0.19.37}/test/test_Client.py +722 -722
- {dlms_spodes_client-0.19.35 → dlms_spodes_client-0.19.37}/test/test_logger.py +6 -6
- {dlms_spodes_client-0.19.35 → dlms_spodes_client-0.19.37}/test/test_services.py +10 -10
- {dlms_spodes_client-0.19.35 → dlms_spodes_client-0.19.37}/test//320/272/320/276/320/275/321/204/320/270/320/263/321/203/321/200/320/260/321/206/320/270/321/217 GSM.csv" +4 -4
- dlms_spodes_client-0.19.35/test/name2.csv +0 -2
- {dlms_spodes_client-0.19.35 → dlms_spodes_client-0.19.37}/README.md +0 -0
- {dlms_spodes_client-0.19.35 → dlms_spodes_client-0.19.37}/src/DLMS_SPODES_client/gurux_common/enums/__init__.py +0 -0
- {dlms_spodes_client-0.19.35 → dlms_spodes_client-0.19.37}/src/DLMS_SPODES_client/py.typed +0 -0
- {dlms_spodes_client-0.19.35 → dlms_spodes_client-0.19.37}/src/DLMS_SPODES_client.egg-info/SOURCES.txt +0 -0
- {dlms_spodes_client-0.19.35 → dlms_spodes_client-0.19.37}/src/DLMS_SPODES_client.egg-info/dependency_links.txt +0 -0
- {dlms_spodes_client-0.19.35 → dlms_spodes_client-0.19.37}/src/DLMS_SPODES_client.egg-info/entry_points.txt +0 -0
- {dlms_spodes_client-0.19.35 → dlms_spodes_client-0.19.37}/src/DLMS_SPODES_client.egg-info/top_level.txt +0 -0
- {dlms_spodes_client-0.19.35 → dlms_spodes_client-0.19.37}/test/Firmwares/firmwares.dat +0 -0
- {dlms_spodes_client-0.19.35 → dlms_spodes_client-0.19.37}/test/Firmwares/firmwares_1_2_11.dat +0 -0
- {dlms_spodes_client-0.19.35 → dlms_spodes_client-0.19.37}/test/Firmwares/firmwares_1_7_2.dat +0 -0
- {dlms_spodes_client-0.19.35 → dlms_spodes_client-0.19.37}/test/__init__.py +0 -0
|
@@ -1,39 +1,43 @@
|
|
|
1
|
-
name: Publish Python Package to PyPI
|
|
2
|
-
|
|
3
|
-
on:
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
pip install
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
1
|
+
name: Publish Python Package to PyPI
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
tags:
|
|
6
|
+
- 'v*'
|
|
7
|
+
|
|
8
|
+
jobs:
|
|
9
|
+
deploy:
|
|
10
|
+
runs-on: ubuntu-latest
|
|
11
|
+
environment:
|
|
12
|
+
name: pypi
|
|
13
|
+
url: https://pypi.org/p/DLMS_SPODES_client
|
|
14
|
+
|
|
15
|
+
permissions:
|
|
16
|
+
id-token: write # Важно для Trusted Publishing
|
|
17
|
+
contents: read
|
|
18
|
+
|
|
19
|
+
steps:
|
|
20
|
+
- uses: actions/checkout@v4
|
|
21
|
+
with:
|
|
22
|
+
submodules: true
|
|
23
|
+
fetch-depth: 0 # Важно для setuptools-scm
|
|
24
|
+
|
|
25
|
+
- name: Set up Python
|
|
26
|
+
uses: actions/setup-python@v4
|
|
27
|
+
with:
|
|
28
|
+
python-version: "3.12"
|
|
29
|
+
|
|
30
|
+
- name: Install dependencies
|
|
31
|
+
run: |
|
|
32
|
+
python -m pip install --upgrade pip
|
|
33
|
+
pip install build setuptools wheel
|
|
34
|
+
|
|
35
|
+
- name: Build package
|
|
36
|
+
run: |
|
|
37
|
+
python -m build
|
|
38
|
+
|
|
39
|
+
- name: Publish to PyPI
|
|
40
|
+
uses: pypa/gh-action-pypi-publish@release/v1
|
|
41
|
+
with:
|
|
42
|
+
attestations: true
|
|
43
|
+
verbose: true
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
venv/
|
|
2
|
-
build/
|
|
3
|
-
dist/
|
|
4
|
-
.idea/
|
|
5
|
-
*.pyc
|
|
6
|
-
*.egg-info
|
|
7
|
-
client_log.txt
|
|
8
|
-
Types/
|
|
1
|
+
venv/
|
|
2
|
+
build/
|
|
3
|
+
dist/
|
|
4
|
+
.idea/
|
|
5
|
+
*.pyc
|
|
6
|
+
*.egg-info
|
|
7
|
+
client_log.txt
|
|
8
|
+
Types/
|
|
@@ -1,24 +1,24 @@
|
|
|
1
|
-
{
|
|
2
|
-
// Use IntelliSense to learn about possible attributes.
|
|
3
|
-
// Hover to view descriptions of existing attributes.
|
|
4
|
-
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
|
|
5
|
-
"version": "0.2.0",
|
|
6
|
-
"configurations": [
|
|
7
|
-
{
|
|
8
|
-
"name": "Debug test_SetBits",
|
|
9
|
-
"type": "debugpy",
|
|
10
|
-
"request": "launch",
|
|
11
|
-
"program": "-m",
|
|
12
|
-
"args": [
|
|
13
|
-
"unittest",
|
|
14
|
-
"test.test_Client.TestType.test_Session",
|
|
15
|
-
"-v"
|
|
16
|
-
],
|
|
17
|
-
"console": "integratedTerminal",
|
|
18
|
-
"justMyCode": false,
|
|
19
|
-
"env": {
|
|
20
|
-
"PYTHONPATH": "${workspaceFolder}"
|
|
21
|
-
}
|
|
22
|
-
},
|
|
23
|
-
]
|
|
1
|
+
{
|
|
2
|
+
// Use IntelliSense to learn about possible attributes.
|
|
3
|
+
// Hover to view descriptions of existing attributes.
|
|
4
|
+
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
|
|
5
|
+
"version": "0.2.0",
|
|
6
|
+
"configurations": [
|
|
7
|
+
{
|
|
8
|
+
"name": "Debug test_SetBits",
|
|
9
|
+
"type": "debugpy",
|
|
10
|
+
"request": "launch",
|
|
11
|
+
"program": "-m",
|
|
12
|
+
"args": [
|
|
13
|
+
"unittest",
|
|
14
|
+
"test.test_Client.TestType.test_Session",
|
|
15
|
+
"-v"
|
|
16
|
+
],
|
|
17
|
+
"console": "integratedTerminal",
|
|
18
|
+
"justMyCode": false,
|
|
19
|
+
"env": {
|
|
20
|
+
"PYTHONPATH": "${workspaceFolder}"
|
|
21
|
+
}
|
|
22
|
+
},
|
|
23
|
+
]
|
|
24
24
|
}
|
{dlms_spodes_client-0.19.35/src/DLMS_SPODES_client.egg-info → dlms_spodes_client-0.19.37}/PKG-INFO
RENAMED
|
@@ -1,29 +1,29 @@
|
|
|
1
|
-
Metadata-Version: 2.4
|
|
2
|
-
Name: DLMS_SPODES_client
|
|
3
|
-
Version: 0.19.
|
|
4
|
-
Summary: dlms-spodes
|
|
5
|
-
Author-email: Serj Kotilevski <youserj@outlook.com>
|
|
6
|
-
Project-URL: Source, https://github.com/youserj/SPODESclient_prj
|
|
7
|
-
Keywords: dlms,spodes,client
|
|
8
|
-
Classifier: Programming Language :: Python :: 3
|
|
9
|
-
Classifier: License :: OSI Approved :: MIT License
|
|
10
|
-
Classifier: Operating System :: OS Independent
|
|
11
|
-
Requires-Python: >=3.12
|
|
12
|
-
Description-Content-Type: text/markdown
|
|
13
|
-
Requires-Dist: pydantic>=2.11
|
|
14
|
-
Requires-Dist: pycryptodomex>=3.22.0
|
|
15
|
-
Requires-Dist: semver>=3.0
|
|
16
|
-
Requires-Dist: StructResult<0.10,>=0.9.2
|
|
17
|
-
Requires-Dist: DLMS-SPODES-communications<1.6,>=1.5.
|
|
18
|
-
Requires-Dist: DLMS_SPODES<0.88,>=0.87.12
|
|
19
|
-
Requires-Dist: DLMSadapter<0.8,>=0.7.6
|
|
20
|
-
Requires-Dist: DLMSCommunicationProfile<0.2,>=0.1.11
|
|
21
|
-
Requires-Dist: numpy>=2.3.2
|
|
22
|
-
Provides-Extra: dev
|
|
23
|
-
Requires-Dist: mypy>=1.5.0; extra == "dev"
|
|
24
|
-
Requires-Dist: ruff>=0.11; extra == "dev"
|
|
25
|
-
Requires-Dist: types-requests; extra == "dev"
|
|
26
|
-
Requires-Dist: build; extra == "dev"
|
|
27
|
-
Requires-Dist: twine; extra == "dev"
|
|
28
|
-
|
|
29
|
-
# SPODES-client
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: DLMS_SPODES_client
|
|
3
|
+
Version: 0.19.37
|
|
4
|
+
Summary: dlms-spodes
|
|
5
|
+
Author-email: Serj Kotilevski <youserj@outlook.com>
|
|
6
|
+
Project-URL: Source, https://github.com/youserj/SPODESclient_prj
|
|
7
|
+
Keywords: dlms,spodes,client
|
|
8
|
+
Classifier: Programming Language :: Python :: 3
|
|
9
|
+
Classifier: License :: OSI Approved :: MIT License
|
|
10
|
+
Classifier: Operating System :: OS Independent
|
|
11
|
+
Requires-Python: >=3.12
|
|
12
|
+
Description-Content-Type: text/markdown
|
|
13
|
+
Requires-Dist: pydantic>=2.11
|
|
14
|
+
Requires-Dist: pycryptodomex>=3.22.0
|
|
15
|
+
Requires-Dist: semver>=3.0
|
|
16
|
+
Requires-Dist: StructResult<0.10,>=0.9.2
|
|
17
|
+
Requires-Dist: DLMS-SPODES-communications<1.6,>=1.5.10
|
|
18
|
+
Requires-Dist: DLMS_SPODES<0.88,>=0.87.12
|
|
19
|
+
Requires-Dist: DLMSadapter<0.8,>=0.7.6
|
|
20
|
+
Requires-Dist: DLMSCommunicationProfile<0.2,>=0.1.11
|
|
21
|
+
Requires-Dist: numpy>=2.3.2
|
|
22
|
+
Provides-Extra: dev
|
|
23
|
+
Requires-Dist: mypy>=1.5.0; extra == "dev"
|
|
24
|
+
Requires-Dist: ruff>=0.11; extra == "dev"
|
|
25
|
+
Requires-Dist: types-requests; extra == "dev"
|
|
26
|
+
Requires-Dist: build; extra == "dev"
|
|
27
|
+
Requires-Dist: twine; extra == "dev"
|
|
28
|
+
|
|
29
|
+
# SPODES-client
|
|
@@ -1,93 +1,93 @@
|
|
|
1
|
-
[build-system]
|
|
2
|
-
#requires = ["hatchling"]
|
|
3
|
-
#build-backend = "hatchling.build"
|
|
4
|
-
requires = [
|
|
5
|
-
"setuptools",
|
|
6
|
-
"setuptools-scm"]
|
|
7
|
-
build-backend = "setuptools.build_meta"
|
|
8
|
-
|
|
9
|
-
[tool.setuptools]
|
|
10
|
-
license-files = []
|
|
11
|
-
|
|
12
|
-
[tool.setuptools.packages.find]
|
|
13
|
-
where = ["src"]
|
|
14
|
-
exclude = ["Types"]
|
|
15
|
-
|
|
16
|
-
[project]
|
|
17
|
-
name = "DLMS_SPODES_client"
|
|
18
|
-
version = "0.19.
|
|
19
|
-
requires-python = ">= 3.12"
|
|
20
|
-
authors = [
|
|
21
|
-
{name="Serj Kotilevski", email="youserj@outlook.com"}
|
|
22
|
-
]
|
|
23
|
-
dependencies = [
|
|
24
|
-
"pydantic>=2.11",
|
|
25
|
-
"pycryptodomex >= 3.22.0",
|
|
26
|
-
"semver >= 3.0",
|
|
27
|
-
"StructResult >= 0.9.2, <0.10",
|
|
28
|
-
"DLMS-SPODES-communications >= 1.5.
|
|
29
|
-
"DLMS_SPODES >= 0.87.12, < 0.88",
|
|
30
|
-
"DLMSadapter >= 0.7.6, < 0.8",
|
|
31
|
-
"DLMSCommunicationProfile >= 0.1.11, < 0.2",
|
|
32
|
-
"numpy >= 2.3.2"
|
|
33
|
-
]
|
|
34
|
-
description="dlms-spodes"
|
|
35
|
-
readme = "README.md"
|
|
36
|
-
keywords=['dlms', 'spodes', 'client']
|
|
37
|
-
classifiers = [
|
|
38
|
-
"Programming Language :: Python :: 3",
|
|
39
|
-
"License :: OSI Approved :: MIT License",
|
|
40
|
-
"Operating System :: OS Independent",
|
|
41
|
-
]
|
|
42
|
-
[project.urls]
|
|
43
|
-
Source = "https://github.com/youserj/SPODESclient_prj"
|
|
44
|
-
|
|
45
|
-
[project.scripts]
|
|
46
|
-
DLMS_SPODES_client = "DLMS_SPODES_client:call_script"
|
|
47
|
-
|
|
48
|
-
[project.optional-dependencies]
|
|
49
|
-
dev = [
|
|
50
|
-
"mypy>=1.5.0",
|
|
51
|
-
"ruff>=0.11",
|
|
52
|
-
"types-requests",
|
|
53
|
-
"build",
|
|
54
|
-
"twine"
|
|
55
|
-
]
|
|
56
|
-
|
|
57
|
-
[tool.mypy]
|
|
58
|
-
exclude = [
|
|
59
|
-
"build/*",
|
|
60
|
-
]
|
|
61
|
-
strict = true
|
|
62
|
-
ignore_missing_imports = true
|
|
63
|
-
disallow_any_generics = true
|
|
64
|
-
explicit_package_bases = true
|
|
65
|
-
disallow_subclassing_any = true
|
|
66
|
-
|
|
67
|
-
[tool.ruff]
|
|
68
|
-
src = ["src"]
|
|
69
|
-
line-length = 150
|
|
70
|
-
preview = true
|
|
71
|
-
exclude = [
|
|
72
|
-
".git",
|
|
73
|
-
".mypy_cache",
|
|
74
|
-
".tox",
|
|
75
|
-
".venv",
|
|
76
|
-
"__pycache__",
|
|
77
|
-
"build",
|
|
78
|
-
"dist",
|
|
79
|
-
"node_modules",
|
|
80
|
-
"venv",
|
|
81
|
-
]
|
|
82
|
-
include = [
|
|
83
|
-
"src/*/*.py",
|
|
84
|
-
"test/test_*.py"
|
|
85
|
-
]
|
|
86
|
-
|
|
87
|
-
[tool.ruff.lint]
|
|
88
|
-
ignore = ["SIM108"] # ternary
|
|
89
|
-
select = [
|
|
90
|
-
"E", "F", "W", "C", "Q", "ANN", "ARG", "DTZ", "FBT", "NPY", "PGH", "PIE", "SIM", "RET", "TYP", "TCH", "YTT",
|
|
91
|
-
# "TRY",
|
|
92
|
-
]
|
|
93
|
-
#extend-select = ["D"]
|
|
1
|
+
[build-system]
|
|
2
|
+
#requires = ["hatchling"]
|
|
3
|
+
#build-backend = "hatchling.build"
|
|
4
|
+
requires = [
|
|
5
|
+
"setuptools",
|
|
6
|
+
"setuptools-scm"]
|
|
7
|
+
build-backend = "setuptools.build_meta"
|
|
8
|
+
|
|
9
|
+
[tool.setuptools]
|
|
10
|
+
license-files = []
|
|
11
|
+
|
|
12
|
+
[tool.setuptools.packages.find]
|
|
13
|
+
where = ["src"]
|
|
14
|
+
exclude = ["Types"]
|
|
15
|
+
|
|
16
|
+
[project]
|
|
17
|
+
name = "DLMS_SPODES_client"
|
|
18
|
+
version = "0.19.37"
|
|
19
|
+
requires-python = ">= 3.12"
|
|
20
|
+
authors = [
|
|
21
|
+
{name="Serj Kotilevski", email="youserj@outlook.com"}
|
|
22
|
+
]
|
|
23
|
+
dependencies = [
|
|
24
|
+
"pydantic>=2.11",
|
|
25
|
+
"pycryptodomex >= 3.22.0",
|
|
26
|
+
"semver >= 3.0",
|
|
27
|
+
"StructResult >= 0.9.2, <0.10",
|
|
28
|
+
"DLMS-SPODES-communications >= 1.5.10, <1.6",
|
|
29
|
+
"DLMS_SPODES >= 0.87.12, < 0.88",
|
|
30
|
+
"DLMSadapter >= 0.7.6, < 0.8",
|
|
31
|
+
"DLMSCommunicationProfile >= 0.1.11, < 0.2",
|
|
32
|
+
"numpy >= 2.3.2"
|
|
33
|
+
]
|
|
34
|
+
description="dlms-spodes"
|
|
35
|
+
readme = "README.md"
|
|
36
|
+
keywords=['dlms', 'spodes', 'client']
|
|
37
|
+
classifiers = [
|
|
38
|
+
"Programming Language :: Python :: 3",
|
|
39
|
+
"License :: OSI Approved :: MIT License",
|
|
40
|
+
"Operating System :: OS Independent",
|
|
41
|
+
]
|
|
42
|
+
[project.urls]
|
|
43
|
+
Source = "https://github.com/youserj/SPODESclient_prj"
|
|
44
|
+
|
|
45
|
+
[project.scripts]
|
|
46
|
+
DLMS_SPODES_client = "DLMS_SPODES_client:call_script"
|
|
47
|
+
|
|
48
|
+
[project.optional-dependencies]
|
|
49
|
+
dev = [
|
|
50
|
+
"mypy>=1.5.0",
|
|
51
|
+
"ruff>=0.11",
|
|
52
|
+
"types-requests",
|
|
53
|
+
"build",
|
|
54
|
+
"twine"
|
|
55
|
+
]
|
|
56
|
+
|
|
57
|
+
[tool.mypy]
|
|
58
|
+
exclude = [
|
|
59
|
+
"build/*",
|
|
60
|
+
]
|
|
61
|
+
strict = true
|
|
62
|
+
ignore_missing_imports = true
|
|
63
|
+
disallow_any_generics = true
|
|
64
|
+
explicit_package_bases = true
|
|
65
|
+
disallow_subclassing_any = true
|
|
66
|
+
|
|
67
|
+
[tool.ruff]
|
|
68
|
+
src = ["src"]
|
|
69
|
+
line-length = 150
|
|
70
|
+
preview = true
|
|
71
|
+
exclude = [
|
|
72
|
+
".git",
|
|
73
|
+
".mypy_cache",
|
|
74
|
+
".tox",
|
|
75
|
+
".venv",
|
|
76
|
+
"__pycache__",
|
|
77
|
+
"build",
|
|
78
|
+
"dist",
|
|
79
|
+
"node_modules",
|
|
80
|
+
"venv",
|
|
81
|
+
]
|
|
82
|
+
include = [
|
|
83
|
+
"src/*/*.py",
|
|
84
|
+
"test/test_*.py"
|
|
85
|
+
]
|
|
86
|
+
|
|
87
|
+
[tool.ruff.lint]
|
|
88
|
+
ignore = ["SIM108"] # ternary
|
|
89
|
+
select = [
|
|
90
|
+
"E", "F", "W", "C", "Q", "ANN", "ARG", "DTZ", "FBT", "NPY", "PGH", "PIE", "SIM", "RET", "TYP", "TCH", "YTT",
|
|
91
|
+
# "TRY",
|
|
92
|
+
]
|
|
93
|
+
#extend-select = ["D"]
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
[egg_info]
|
|
2
|
-
tag_build =
|
|
3
|
-
tag_date = 0
|
|
4
|
-
|
|
1
|
+
[egg_info]
|
|
2
|
+
tag_build =
|
|
3
|
+
tag_date = 0
|
|
4
|
+
|
|
@@ -1,39 +1,39 @@
|
|
|
1
|
-
from struct import pack
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
__fcs16Table = (
|
|
5
|
-
0x0000, 0x1189, 0x2312, 0x329B, 0x4624, 0x57AD, 0x6536, 0x74BF, 0x8C48, 0x9DC1, 0xAF5A, 0xBED3, 0xCA6C, 0xDBE5, 0xE97E, 0xF8F7,
|
|
6
|
-
0x1081, 0x0108, 0x3393, 0x221A, 0x56A5, 0x472C, 0x75B7, 0x643E, 0x9CC9, 0x8D40, 0xBFDB, 0xAE52, 0xDAED, 0xCB64, 0xF9FF, 0xE876,
|
|
7
|
-
0x2102, 0x308B, 0x0210, 0x1399, 0x6726, 0x76AF, 0x4434, 0x55BD, 0xAD4A, 0xBCC3, 0x8E58, 0x9FD1, 0xEB6E, 0xFAE7, 0xC87C, 0xD9F5,
|
|
8
|
-
0x3183, 0x200A, 0x1291, 0x0318, 0x77A7, 0x662E, 0x54B5, 0x453C, 0xBDCB, 0xAC42, 0x9ED9, 0x8F50, 0xFBEF, 0xEA66, 0xD8FD, 0xC974,
|
|
9
|
-
0x4204, 0x538D, 0x6116, 0x709F, 0x0420, 0x15A9, 0x2732, 0x36BB, 0xCE4C, 0xDFC5, 0xED5E, 0xFCD7, 0x8868, 0x99E1, 0xAB7A, 0xBAF3,
|
|
10
|
-
0x5285, 0x430C, 0x7197, 0x601E, 0x14A1, 0x0528, 0x37B3, 0x263A, 0xDECD, 0xCF44, 0xFDDF, 0xEC56, 0x98E9, 0x8960, 0xBBFB, 0xAA72,
|
|
11
|
-
0x6306, 0x728F, 0x4014, 0x519D, 0x2522, 0x34AB, 0x0630, 0x17B9, 0xEF4E, 0xFEC7, 0xCC5C, 0xDDD5, 0xA96A, 0xB8E3, 0x8A78, 0x9BF1,
|
|
12
|
-
0x7387, 0x620E, 0x5095, 0x411C, 0x35A3, 0x242A, 0x16B1, 0x0738, 0xFFCF, 0xEE46, 0xDCDD, 0xCD54, 0xB9EB, 0xA862, 0x9AF9, 0x8B70,
|
|
13
|
-
0x8408, 0x9581, 0xA71A, 0xB693, 0xC22C, 0xD3A5, 0xE13E, 0xF0B7, 0x0840, 0x19C9, 0x2B52, 0x3ADB, 0x4E64, 0x5FED, 0x6D76, 0x7CFF,
|
|
14
|
-
0x9489, 0x8500, 0xB79B, 0xA612, 0xD2AD, 0xC324, 0xF1BF, 0xE036, 0x18C1, 0x0948, 0x3BD3, 0x2A5A, 0x5EE5, 0x4F6C, 0x7DF7, 0x6C7E,
|
|
15
|
-
0xA50A, 0xB483, 0x8618, 0x9791, 0xE32E, 0xF2A7, 0xC03C, 0xD1B5, 0x2942, 0x38CB, 0x0A50, 0x1BD9, 0x6F66, 0x7EEF, 0x4C74, 0x5DFD,
|
|
16
|
-
0xB58B, 0xA402, 0x9699, 0x8710, 0xF3AF, 0xE226, 0xD0BD, 0xC134, 0x39C3, 0x284A, 0x1AD1, 0x0B58, 0x7FE7, 0x6E6E, 0x5CF5, 0x4D7C,
|
|
17
|
-
0xC60C, 0xD785, 0xE51E, 0xF497, 0x8028, 0x91A1, 0xA33A, 0xB2B3, 0x4A44, 0x5BCD, 0x6956, 0x78DF, 0x0C60, 0x1DE9, 0x2F72, 0x3EFB,
|
|
18
|
-
0xD68D, 0xC704, 0xF59F, 0xE416, 0x90A9, 0x8120, 0xB3BB, 0xA232, 0x5AC5, 0x4B4C, 0x79D7, 0x685E, 0x1CE1, 0x0D68, 0x3FF3, 0x2E7A,
|
|
19
|
-
0xE70E, 0xF687, 0xC41C, 0xD595, 0xA12A, 0xB0A3, 0x8238, 0x93B1, 0x6B46, 0x7ACF, 0x4854, 0x59DD, 0x2D62, 0x3CEB, 0x0E70, 0x1FF9,
|
|
20
|
-
0xF78F, 0xE606, 0xD49D, 0xC514, 0xB1AB, 0xA022, 0x92B9, 0x8330, 0x7BC7, 0x6A4E, 0x58D5, 0x495C, 0x3DE3, 0x2C6A, 0x1EF1, 0x0F78
|
|
21
|
-
)
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
def get_fcs16(buff, offset: int, count: int):
|
|
25
|
-
fcs16 = 0xFFFF
|
|
26
|
-
pos = offset
|
|
27
|
-
while pos < offset + count:
|
|
28
|
-
fcs16 = int((((fcs16 >> 8) ^ __fcs16Table[(fcs16 ^ buff[pos]) & 0xFF]) & 0xFFFF))
|
|
29
|
-
pos += 1
|
|
30
|
-
fcs16 = ~fcs16
|
|
31
|
-
fcs16 = ((fcs16 >> 8) & 0xFF) | (fcs16 << 8)
|
|
32
|
-
return fcs16 & 0xFFFF
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
def get_fcs16ver2(buff: bytes):
|
|
36
|
-
fcs16 = 0xFFFF
|
|
37
|
-
for i in buff:
|
|
38
|
-
fcs16 = ((fcs16 >> 8) ^ __fcs16Table[(fcs16 ^ i) & 0xFF]) & 0xFFFF
|
|
39
|
-
return pack('H', ~fcs16 & 0xFFFF)
|
|
1
|
+
from struct import pack
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
__fcs16Table = (
|
|
5
|
+
0x0000, 0x1189, 0x2312, 0x329B, 0x4624, 0x57AD, 0x6536, 0x74BF, 0x8C48, 0x9DC1, 0xAF5A, 0xBED3, 0xCA6C, 0xDBE5, 0xE97E, 0xF8F7,
|
|
6
|
+
0x1081, 0x0108, 0x3393, 0x221A, 0x56A5, 0x472C, 0x75B7, 0x643E, 0x9CC9, 0x8D40, 0xBFDB, 0xAE52, 0xDAED, 0xCB64, 0xF9FF, 0xE876,
|
|
7
|
+
0x2102, 0x308B, 0x0210, 0x1399, 0x6726, 0x76AF, 0x4434, 0x55BD, 0xAD4A, 0xBCC3, 0x8E58, 0x9FD1, 0xEB6E, 0xFAE7, 0xC87C, 0xD9F5,
|
|
8
|
+
0x3183, 0x200A, 0x1291, 0x0318, 0x77A7, 0x662E, 0x54B5, 0x453C, 0xBDCB, 0xAC42, 0x9ED9, 0x8F50, 0xFBEF, 0xEA66, 0xD8FD, 0xC974,
|
|
9
|
+
0x4204, 0x538D, 0x6116, 0x709F, 0x0420, 0x15A9, 0x2732, 0x36BB, 0xCE4C, 0xDFC5, 0xED5E, 0xFCD7, 0x8868, 0x99E1, 0xAB7A, 0xBAF3,
|
|
10
|
+
0x5285, 0x430C, 0x7197, 0x601E, 0x14A1, 0x0528, 0x37B3, 0x263A, 0xDECD, 0xCF44, 0xFDDF, 0xEC56, 0x98E9, 0x8960, 0xBBFB, 0xAA72,
|
|
11
|
+
0x6306, 0x728F, 0x4014, 0x519D, 0x2522, 0x34AB, 0x0630, 0x17B9, 0xEF4E, 0xFEC7, 0xCC5C, 0xDDD5, 0xA96A, 0xB8E3, 0x8A78, 0x9BF1,
|
|
12
|
+
0x7387, 0x620E, 0x5095, 0x411C, 0x35A3, 0x242A, 0x16B1, 0x0738, 0xFFCF, 0xEE46, 0xDCDD, 0xCD54, 0xB9EB, 0xA862, 0x9AF9, 0x8B70,
|
|
13
|
+
0x8408, 0x9581, 0xA71A, 0xB693, 0xC22C, 0xD3A5, 0xE13E, 0xF0B7, 0x0840, 0x19C9, 0x2B52, 0x3ADB, 0x4E64, 0x5FED, 0x6D76, 0x7CFF,
|
|
14
|
+
0x9489, 0x8500, 0xB79B, 0xA612, 0xD2AD, 0xC324, 0xF1BF, 0xE036, 0x18C1, 0x0948, 0x3BD3, 0x2A5A, 0x5EE5, 0x4F6C, 0x7DF7, 0x6C7E,
|
|
15
|
+
0xA50A, 0xB483, 0x8618, 0x9791, 0xE32E, 0xF2A7, 0xC03C, 0xD1B5, 0x2942, 0x38CB, 0x0A50, 0x1BD9, 0x6F66, 0x7EEF, 0x4C74, 0x5DFD,
|
|
16
|
+
0xB58B, 0xA402, 0x9699, 0x8710, 0xF3AF, 0xE226, 0xD0BD, 0xC134, 0x39C3, 0x284A, 0x1AD1, 0x0B58, 0x7FE7, 0x6E6E, 0x5CF5, 0x4D7C,
|
|
17
|
+
0xC60C, 0xD785, 0xE51E, 0xF497, 0x8028, 0x91A1, 0xA33A, 0xB2B3, 0x4A44, 0x5BCD, 0x6956, 0x78DF, 0x0C60, 0x1DE9, 0x2F72, 0x3EFB,
|
|
18
|
+
0xD68D, 0xC704, 0xF59F, 0xE416, 0x90A9, 0x8120, 0xB3BB, 0xA232, 0x5AC5, 0x4B4C, 0x79D7, 0x685E, 0x1CE1, 0x0D68, 0x3FF3, 0x2E7A,
|
|
19
|
+
0xE70E, 0xF687, 0xC41C, 0xD595, 0xA12A, 0xB0A3, 0x8238, 0x93B1, 0x6B46, 0x7ACF, 0x4854, 0x59DD, 0x2D62, 0x3CEB, 0x0E70, 0x1FF9,
|
|
20
|
+
0xF78F, 0xE606, 0xD49D, 0xC514, 0xB1AB, 0xA022, 0x92B9, 0x8330, 0x7BC7, 0x6A4E, 0x58D5, 0x495C, 0x3DE3, 0x2C6A, 0x1EF1, 0x0F78
|
|
21
|
+
)
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
def get_fcs16(buff, offset: int, count: int):
|
|
25
|
+
fcs16 = 0xFFFF
|
|
26
|
+
pos = offset
|
|
27
|
+
while pos < offset + count:
|
|
28
|
+
fcs16 = int((((fcs16 >> 8) ^ __fcs16Table[(fcs16 ^ buff[pos]) & 0xFF]) & 0xFFFF))
|
|
29
|
+
pos += 1
|
|
30
|
+
fcs16 = ~fcs16
|
|
31
|
+
fcs16 = ((fcs16 >> 8) & 0xFF) | (fcs16 << 8)
|
|
32
|
+
return fcs16 & 0xFFFF
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
def get_fcs16ver2(buff: bytes):
|
|
36
|
+
fcs16 = 0xFFFF
|
|
37
|
+
for i in buff:
|
|
38
|
+
fcs16 = ((fcs16 >> 8) ^ __fcs16Table[(fcs16 ^ i) & 0xFF]) & 0xFFFF
|
|
39
|
+
return pack('H', ~fcs16 & 0xFFFF)
|
{dlms_spodes_client-0.19.35 → dlms_spodes_client-0.19.37}/src/DLMS_SPODES_client/__init__.py
RENAMED
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
# import argparse
|
|
2
|
-
import sys
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
def call_script(args=sys.argv):
|
|
6
|
-
for i, arg in enumerate(args):
|
|
7
|
-
print(f'Arg #{i}: {arg}')
|
|
8
|
-
# parser = argparse.ArgumentParser(description="hello")
|
|
9
|
-
# parser.add_argument('target', type=str, help='the name of the target')
|
|
10
|
-
# parser.add_argument('--end', dest='end', default="!",
|
|
11
|
-
# help='sum the integers (default: find the max)')
|
|
12
|
-
# args = parser.parse_args()
|
|
1
|
+
# import argparse
|
|
2
|
+
import sys
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
def call_script(args=sys.argv):
|
|
6
|
+
for i, arg in enumerate(args):
|
|
7
|
+
print(f'Arg #{i}: {arg}')
|
|
8
|
+
# parser = argparse.ArgumentParser(description="hello")
|
|
9
|
+
# parser.add_argument('target', type=str, help='the name of the target')
|
|
10
|
+
# parser.add_argument('--end', dest='end', default="!",
|
|
11
|
+
# help='sum the integers (default: find the max)')
|
|
12
|
+
# args = parser.parse_args()
|