|
14 | 14 | from typing import Tuple, Dict |
15 | 15 | from types import FunctionType |
16 | 16 |
|
17 | | -VERSION = "1.3" |
| 17 | +VERSION = "1.3.1" |
18 | 18 |
|
19 | 19 |
|
20 | 20 | class PayConnector: |
@@ -233,13 +233,18 @@ def decode_no(response_to_decode: bytes, head_len: int): |
233 | 233 | str_pointer = str_pointer + 1 |
234 | 234 | print("Type of connection: ", NET_PROTO.get(response_to_decode[str_pointer:str_pointer + 1], "Unknown")) |
235 | 235 | str_pointer = str_pointer + 1 |
236 | | - print("Number of TCP sockets: ", response_to_decode[str_pointer:str_pointer + 2]) |
237 | | - str_pointer = str_pointer + 2 |
| 236 | + if len(response_to_decode) > (24 + head_len): # FW 1.8a or more |
| 237 | + socket_field_len = 4 # From FW 1.8a the Number of TCP sockets is 4 character long instead of 2 |
| 238 | + else: |
| 239 | + socket_field_len = 2 |
| 240 | + print("Number of TCP sockets: ", response_to_decode[str_pointer:str_pointer + socket_field_len]) |
| 241 | + str_pointer = str_pointer + socket_field_len |
238 | 242 | print("Firmware number: ", response_to_decode[str_pointer:str_pointer + 9]) |
239 | 243 | str_pointer = str_pointer + 9 |
240 | 244 | print("Reserved: ", response_to_decode[str_pointer:str_pointer + 1]) |
241 | 245 | str_pointer = str_pointer + 1 |
242 | 246 | print("Reserved: ", response_to_decode[str_pointer:str_pointer + 4]) |
| 247 | + |
243 | 248 | else: # Mode 01 |
244 | 249 | str_pointer = str_pointer + 2 |
245 | 250 | if response_to_decode[str_pointer:str_pointer + 1] == '0': |
@@ -1003,8 +1008,8 @@ def common_parser(response_to_decode: bytes, head_len: int) -> Tuple[str, int, i |
1003 | 1008 |
|
1004 | 1009 | parser = argparse.ArgumentParser( |
1005 | 1010 | description="Generates workload on PayShield 10k and 9k for the sake of testing and demonstration.", |
1006 | | - epilog="For any questions, feedback, suggestions or send money (yes...it's a dream, I know), you can contact the " |
1007 | | - "author at msz@msz.eu") |
| 1011 | + epilog="For any questions, feedback, suggestions or send money (yes...it's a dream, I know), you can contact " |
| 1012 | + "the author at msz@msz.eu") |
1008 | 1013 | parser.add_argument("host", help="Ip address or hostname of the payShield") |
1009 | 1014 | group = parser.add_mutually_exclusive_group() |
1010 | 1015 | parser.add_argument("--port", "-p", help="The host port. " |
@@ -1050,7 +1055,6 @@ def common_parser(response_to_decode: bytes, head_len: int) -> Tuple[str, int, i |
1050 | 1055 | parser.add_argument("--decode", help="If specified the reply of the payShield is interpreted " |
1051 | 1056 | "if a decoder function for that command has been implemented.", |
1052 | 1057 | action="store_true") |
1053 | | - |
1054 | 1058 | parser.add_argument("--times", help="How many times to repeat the operation " |
1055 | 1059 | "If not specified the default is 1000.", type=int, default=1000) |
1056 | 1060 | parser.add_argument("--proto", help="Accepted values are tcp, udp or tls. The default is tcp", default="tcp", |
|
0 commit comments