Hi Chris,
Yes, I have a benchtop setup that also has Busmaster on it with a Kvaser. I can verify that with Busmaster i see ALL messages with varying lengths.
I can see the app incrementing the message counter when I send anything less than or equal to 8 bytes, but it doesn't log....I do see bad array lengths when I send a message that is not 8 bytes.
7114 messages.CanMessage
7115 java.lang.reflect.InvocationTargetException
7116 at java.lang.reflect.Constructor.newInstance(Native Method)
7117 at java.lang.reflect.Constructor.newInstance(Constructor.java:288)
7118 at com.openxc.messages.VehicleMessage$1.createFromParcel(VehicleMessage.java:257)
7119 at com.openxc.messages.VehicleMessage$1.createFromParcel(VehicleMessage.java:232)
7120 at com.openxc.remote.VehicleServiceListener$Stub.onTransact(VehicleServiceListener.java:54)
7121 at android.os.Binder.execTransact(Binder.java:446)
7122 Caused by: java.lang.RuntimeException: bad array lengths
7123 at android.os.Parcel.readByteArray(Parcel.java:1769)
7124 at com.openxc.messages.CanMessage.readFromParcel(CanMessage.java:130)
7125 at com.openxc.messages.CanMessage.<init>(CanMessage.java:134)
7126 at java.lang.reflect.Constructor.newInstance(Native Method)
7127 at java.lang.reflect.Constructor.newInstance(Constructor.java:288)
7128 at com.openxc.messages.VehicleMessage$1.createFromParcel(VehicleMessage.java:257)
7129 at com.openxc.messages.VehicleMessage$1.createFromParcel(VehicleMessage.java:232)
7130 at com.openxc.remote.VehicleServiceListener$Stub.onTransact(VehicleServiceListener.java:54)
7131 at android.os.Binder.execTransact(Binder.java:446)
I am able to fix this but only for certain lengths (ie. anywhere from 1-8 bytes) if I edit CanMessage.java:
@SerializedName(DATA_KEY)
private byte[] mData = new byte[8];
/*public List<Byte> list = new ArrayList<>(); */
If the 8 is changed to anything else, it will log that to the JSON.
It looks like the app needs some sort of Dynamic Array, which right now is beyond me (I've tried).
Whaddya think?
MM