@@ -0,0 +1,1636 @@
+package com.github.keaume.amigo.obd;%0A%0Aimport com.github.pires.obd.commands.ObdCommand;%0A%0Aimport timber.log.Timber;%0A%0Apublic class ObdCommandJob %7B%0A%0A    private long id;%0A    private final ObdCommandType obdCommandType;%0A    private ObdCommand obdCommand;%0A    private State obdCommandJobState;%0A%0A    public ObdCommandJob(ObdCommandType obdCommandType) %7B%0A        id = 0L;%0A        this.obdCommandType = obdCommandType;%0A        try %7B%0A            Class%3C?%3E obdCommandClass = obdCommandType.getClassForValue();%0A            obdCommand = (ObdCommand) obdCommandClass.newInstance();%0A        %7D catch (Exception e) %7B%0A            Timber.e(%22Failed to instantiate ObdCommand, obdCommandJob type: %25s%22, obdCommandType.getNameForValue());%0A            obdCommand = null;%0A        %7D%0A        obdCommandJobState = State.NEW;%0A    %7D%0A%0A    public long getId() %7B%0A        return id;%0A    %7D%0A%0A    public ObdCommandType getCommandType() %7B%0A        return obdCommandType;%0A    %7D%0A%0A    public ObdCommand getCommand() %7B%0A        return obdCommand;%0A    %7D%0A%0A    public State getState() %7B%0A        return obdCommandJobState;%0A    %7D%0A%0A    public void setId(long id) %7B%0A        this.id = id;%0A    %7D%0A%0A    public void setState(State obdCommandJobState) %7B%0A        this.obdCommandJobState = obdCommandJobState;%0A    %7D%0A%0A    public enum State %7B%0A        NEW,%0A        RUNNING,%0A        FINISHED,%0A        UNABLE_TO_CONNECT,%0A        BUS_INIT_EXCEPTION,%0A        MISUNDERSTOOD_COMMAND,%0A        NO_DATA,%0A        STOPPED,%0A        NOT_SUPPORTED,%0A        EXECUTION_ERROR,%0A        TIMEOUT%0A    %7D%0A%0A    public enum Action %7B%0A        REGISTER_PERIODIC,%0A        REGISTER_ONE_SHOT,%0A        UNREGISTER_PERIODIC,%0A    %7D%0A%7D%0A

Create ObdCommandJob.java