001// Copyright (c) FIRST and other WPILib contributors. 002// Open Source Software; you can modify and/or share it under the terms of 003// the WPILib BSD license file in the root directory of this project. 004 005package edu.wpi.first.math.kinematics.proto; 006 007import edu.wpi.first.math.kinematics.ChassisSpeeds; 008import edu.wpi.first.math.proto.Kinematics.ProtobufChassisSpeeds; 009import edu.wpi.first.util.protobuf.Protobuf; 010import us.hebi.quickbuf.Descriptors.Descriptor; 011 012public class ChassisSpeedsProto implements Protobuf<ChassisSpeeds, ProtobufChassisSpeeds> { 013 @Override 014 public Class<ChassisSpeeds> getTypeClass() { 015 return ChassisSpeeds.class; 016 } 017 018 @Override 019 public Descriptor getDescriptor() { 020 return ProtobufChassisSpeeds.getDescriptor(); 021 } 022 023 @Override 024 public ProtobufChassisSpeeds createMessage() { 025 return ProtobufChassisSpeeds.newInstance(); 026 } 027 028 @Override 029 public ChassisSpeeds unpack(ProtobufChassisSpeeds msg) { 030 return new ChassisSpeeds(msg.getVx(), msg.getVy(), msg.getOmega()); 031 } 032 033 @Override 034 public void pack(ProtobufChassisSpeeds msg, ChassisSpeeds value) { 035 msg.setVx(value.vxMetersPerSecond); 036 msg.setVy(value.vyMetersPerSecond); 037 msg.setOmega(value.omegaRadiansPerSecond); 038 } 039}