Repository: pymodbus-dev/pymodbus

Issue:
Properly initialize non-default framer in async client
Fixes #712.

Not 100% sure if this is the most elegant fix but it works to get ModbusRtuFramer usable with async clients.

<!--  Please raise your PR's against the `dev` branch instead of `master` -->



Discussion:
Kudos, SonarCloud Quality Gate passed!&nbsp; &nbsp; ![Quality Gate passed](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/QualityGateBadge/passed-16px.png 'Quality Gate passed')

[![Bug](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/bug-16px.png 'Bug')](https://sonarcloud.io/project/issues?id=riptideio_pymodbus&pullRequest=716&resolved=false&types=BUG) [![A](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/RatingBadge/A-16px.png 'A')](https://sonarcloud.io/project/issues?id=riptideio_pymodbus&pullRequest=716&resolved=false&types=BUG) [0 Bugs](https://sonarcloud.io/project/issues?id=riptideio_pymodbus&pullRequest=716&resolved=false&types=BUG)  
[![Vulnerability](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/vulnerability-16px.png 'Vulnerability')](https://sonarcloud.io/project/issues?id=riptideio_pymodbus&pullRequest=716&resolved=false&types=VULNERABILITY) [![A](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/RatingBadge/A-16px.png 'A')](https://sonarcloud.io/project/issues?id=riptideio_pymodbus&pullRequest=716&resolved=false&types=VULNERABILITY) [0 Vulnerabilities](https://sonarcloud.io/project/issues?id=riptideio_pymodbus&pullRequest=716&resolved=false&types=VULNERABILITY)  
[![Security Hotspot](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/security_hotspot-16px.png 'Security Hotspot')](https://sonarcloud.io/project/security_hotspots?id=riptideio_pymodbus&pullRequest=716&resolved=false&types=SECURITY_HOTSPOT) [![A](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/RatingBadge/A-16px.png 'A')](https://sonarcloud.io/project/security_hotspots?id=riptideio_pymodbus&pullRequest=716&resolved=false&types=SECURITY_HOTSPOT) [0 Security Hotspots](https://sonarcloud.io/project/security_hotspots?id=riptideio_pymodbus&pullRequest=716&resolved=false&types=SECURITY_HOTSPOT)  
[![Code Smell](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/code_smell-16px.png 'Code Smell')](https://sonarcloud.io/project/issues?id=riptideio_pymodbus&pullRequest=716&resolved=false&types=CODE_SMELL) [![A](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/RatingBadge/A-16px.png 'A')](https://sonarcloud.io/project/issues?id=riptideio_pymodbus&pullRequest=716&resolved=false&types=CODE_SMELL) [0 Code Smells](https://sonarcloud.io/project/issues?id=riptideio_pymodbus&pullRequest=716&resolved=false&types=CODE_SMELL)

[![No Coverage information](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/CoverageChart/NoCoverageInfo-16px.png 'No Coverage information')](https://sonarcloud.io/component_measures?id=riptideio_pymodbus&pullRequest=716) No Coverage information  
[![0.0%](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/Duplications/3-16px.png '0.0%')](https://sonarcloud.io/component_measures?id=riptideio_pymodbus&pullRequest=716&metric=new_duplicated_lines_density&view=list) [0.0% Duplication](https://sonarcloud.io/component_measures?id=riptideio_pymodbus&pullRequest=716&metric=new_duplicated_lines_density&view=list)



Resolving patch:
diff --git a/pymodbus/repl/client/main.py b/pymodbus/repl/client/main.py
--- a/pymodbus/repl/client/main.py
+++ b/pymodbus/repl/client/main.py
@@ -7,6 +7,8 @@
 from __future__ import absolute_import, unicode_literals
 import logging
 import sys
+import os.path
+
 try:
     import click
 except ImportError:
@@ -111,6 +113,7 @@ def convert(self, value, param, ctx):
 def cli(client): #NOSONAR pylint: disable=too-many-statements,too-many-branches
     """Client definition."""
     use_keys = KeyBindings()
+    history_file = os.path.normpath(os.path.expanduser("~/.pymodhis")
 
     @use_keys.add('c-space')
     def _(event):
@@ -178,7 +181,7 @@ def _process_args(args, string=True):
                             complete_while_typing=True,
                             bottom_toolbar=bottom_toolbar,
                             key_bindings=use_keys,
-                            history=FileHistory('../.pymodhis'),
+                            history=FileHistory(history_file),
                             auto_suggest=AutoSuggestFromHistory())
     click.secho(f"{TITLE}", fg='green')
     result = None


Test patch: