  
      # toyota can trace shows this message at 42Hz, with counter adding alternatively 1 and 2;
      # sending it at 100Hz seem to allow a higher rate limit, as the rate limit seems imposed
      # on consecutive messages
      if ECU.CAM in self.fake_ecus:
        if self.angle_control:
          can_sends.append(create_steer_command(self.packer, 0., 0, frame))
        else:
          can_sends.append(create_steer_command(self.packer, apply_steer, apply_steer_req, frame))
  
 
</s> remove                                                  ECU.APGS in self.fake_ecus))
    elif ECU.APGS in self.fake_ecus:
 </s> add                                                  Ecu.apgs in self.fake_ecus))
    elif Ecu.apgs in self.fake_ecus: </s> remove     if (frame % 3 == 0 and CS.CP.openpilotLongitudinalControl) or (pcm_cancel_cmd and ECU.CAM in self.fake_ecus):
 </s> add     if (frame % 3 == 0 and CS.CP.openpilotLongitudinalControl) or (pcm_cancel_cmd and Ecu.fwdCamera in self.fake_ecus): </s> remove     if (frame % 100 == 0 or send_ui) and ECU.CAM in self.fake_ecus:
 </s> add     if (frame % 100 == 0 or send_ui) and Ecu.fwdCamera in self.fake_ecus: </s> remove     if frame % 100 == 0 and ECU.DSU in self.fake_ecus:
 </s> add     if frame % 100 == 0 and Ecu.dsu in self.fake_ecus:
    if Ecu.fwdCamera in self.fake_ecus:
  
      # toyota can trace shows this message at 42Hz, with counter adding alternatively 1 and 2;
      # sending it at 100Hz seem to allow a higher rate limit, as the rate limit seems imposed
      # on consecutive messages
    if Ecu.fwdCamera in self.fake_ecus:
        if self.angle_control:
          can_sends.append(create_steer_command(self.packer, 0., 0, frame))
        else:
          can_sends.append(create_steer_command(self.packer, apply_steer, apply_steer_req, frame))
  
keep keep keep keep replace keep keep keep keep keep
 Clean up ECU redundancy in selfdrive/car/* (#963)

* clean up ecu redundancy in selfdrive/car

* clean up gear parsing 
selfdrive/car/toyota/carcontroller.py