/** * Sort by bus, then by message ID. */ @Override public int compareTo(VehicleMessage other) { CanMessage otherMessage = (CanMessage) other; if(getBusId() < otherMessage.getBusId()) { return -1; } else if(getBusId() > otherMessage.getBusId()) { return 1; } else { if(getId() < otherMessage.getId()) { return -1; } else if(getId() > otherMessage.getId()) { return 1; } } return 0; }
@Override public String toString() { return MoreObjects.toStringHelper(this) .add("timestamp", getTimestamp()) .add("bus", getBusId()) .add("id", getId()) .add("data", Arrays.toString(getData())) .toString(); }
@Override public View getView(int position, View convertView, ViewGroup parent) { if(convertView == null) { convertView = LayoutInflater.from(mContext) .inflate(R.layout.can_message_list_item, parent, false); } CanMessage message = getItem(position); TextView timestampView = (TextView) convertView.findViewById(R.id.timestamp); timestampView.setText(formatTimestamp(message)); TextView busView = (TextView) convertView.findViewById(R.id.bus); busView.setText("" + message.getBusId()); TextView idView = (TextView) convertView.findViewById(R.id.id); idView.setText("0x" + Integer.toHexString(message.getId())); TextView dataView = (TextView) convertView.findViewById(R.id.data); dataView.setText("0x" + ByteAdapter.byteArrayToHexString( message.getData())); return convertView; } }
@Override public void writeToParcel(Parcel out, int flags) { super.writeToParcel(out, flags); out.writeInt(getBusId()); out.writeInt(getId()); out.writeByteArray(getData()); }
@Override public MessageKey getKey() { if(super.getKey() == null) { HashMap<String, Object> key = new HashMap<>(); key.put(BUS_KEY, getBusId()); key.put(ID_KEY, getId()); setKey(new MessageKey(key)); } return super.getKey(); }
@Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.can_message_details); Bundle extras = getIntent().getExtras(); if (extras != null) { CanMessage message = extras.getParcelable(EXTRA_CAN_MESSAGE); TextView timestampView = (TextView) findViewById(R.id.timestamp); timestampView.setText("" + message.getTimestamp()); TextView busView = (TextView) findViewById(R.id.bus); busView.setText("" + message.getBusId()); TextView idView = (TextView) findViewById(R.id.id); idView.setText("0x" + Integer.toHexString(message.getId())); TextView dataView = (TextView) findViewById(R.id.data); dataView.setText("0x" + ByteAdapter.byteArrayToHexString( message.getData())); } else { finish(); } } }
@Test public void getBusReturnsBus() { assertEquals(bus, message.getBusId()); }
private static void serializeCanMessage(BinaryMessages.VehicleMessage.Builder builder, CanMessage message) { builder.setType(BinaryMessages.VehicleMessage.Type.CAN); BinaryMessages.CanMessage.Builder messageBuilder = BinaryMessages.CanMessage.newBuilder(); messageBuilder.setBus(message.getBusId()); messageBuilder.setId(message.getId()); messageBuilder.setData(ByteString.copyFrom(message.getData())); builder.setCanMessage(messageBuilder); }