Okay, so just to summarize to be sure that I have my head wrapped around this:
- The plugin on its own (no other applications open/involved) works fine
- The plugin works fine in conjunction with the Onkyo mobile application as far as you can tell
- The plugin works fine when used in conjunction with SimpleControl pre-High Sierra
- The plugin fails when used in conjunction with SimpleControl on High Sierra
I don't see any issues in those logs outside of the previous error; the strange characters that you refer I am assuming are the strange strings which are replacements and/or regular expression strings that are just shown when launching the plugin with the high debug turned on.
This is a shot in the dark, but I am wondering if SimpleControl is sending some type of character or string encoding that gets passed along to the plugin and whose handling changed with High Sierra. I don't think it is this exact scenario, but something like Unicode registering as 2 chars in one and converted to a single ASCII char in another, throwing off the length. I think our best bet is to log the incoming message if we can. If you are up for a little Python modification (if you aren't, let me know but I've seen that you have authored plugins so I am assuming you are fine with it)...
Add the second line to onkyoNetworkRemoteDevice.py, approximately line 163:
- Code: Select all
header_bytes = connection.recv(16)
self.hostPlugin.logger.debug(u'EISCP Header: [' + RPFramework.RPFrameworkUtils.to_unicode(header_bytes) + ']')
I THINK that will work, though I don't really know for sure if Python will allow that direct conversion... if not, we can break up the header with:
- Code: Select all
magic, header_size, data_size, version, reserved = struct.unpack('! 4s I I b 3s', bytes)
... and print those components that are unpacked.
Adam