File tree Expand file tree Collapse file tree 2 files changed +26
-8
lines changed Expand file tree Collapse file tree 2 files changed +26
-8
lines changed Original file line number Diff line number Diff line change 1
1
import struct
2
+ import sys
2
3
3
4
from pymodbus .exceptions import ModbusIOException
4
5
from pymodbus .framer import SOCKET_FRAME_HEADER
@@ -123,7 +124,15 @@ def buildPacket(self, message):
123
124
return packet
124
125
125
126
def _xor (self , data ):
126
- decrypted = b''
127
- for i in range (0 , len (data )):
128
- decrypted += bytes ([data [i ] ^ self ._key [i % len (self ._key )]])
129
- return decrypted
127
+ if sys .version_info [0 ] == 2 :
128
+ decrypted = ''
129
+ for i in range (0 , len (data )):
130
+ decrypted += chr (ord (data [i ]) ^ ord (self ._key [i % len (self ._key )]))
131
+ return decrypted
132
+ elif sys .version_info [0 ] == 3 :
133
+ decrypted = b''
134
+ for i in range (0 , len (data )):
135
+ decrypted += bytes ([data [i ] ^ self ._key [i % len (self ._key )]])
136
+ return decrypted
137
+ else :
138
+ return data
Original file line number Diff line number Diff line change 1
1
import binascii
2
+ import sys
2
3
from unittest import TestCase
3
4
4
5
from pymodbus .datastore import ModbusSparseDataBlock , ModbusSlaveContext
8
9
9
10
def _xor (data ):
10
11
key = b'Growatt'
11
- decrypted = b''
12
- for i in range (0 , len (data )):
13
- decrypted += bytes ([data [i ] ^ key [i % len (key )]])
14
- return decrypted
12
+ if sys .version_info [0 ] == 2 :
13
+ decrypted = ''
14
+ for i in range (0 , len (data )):
15
+ decrypted += chr (ord (data [i ]) ^ ord (key [i % len (key )]))
16
+ return decrypted
17
+ elif sys .version_info [0 ] == 3 :
18
+ decrypted = b''
19
+ for i in range (0 , len (data )):
20
+ decrypted += bytes ([data [i ] ^ key [i % len (key )]])
21
+ return decrypted
22
+ else :
23
+ return data
15
24
16
25
17
26
class TestGrowattBufferedEnergyRequest (TestCase ):
You can’t perform that action at this time.
0 commit comments