View Single Post
  #2   Spotlight this post!  
Unread 16-06-2013, 14:57
apples000's Avatar
apples000 apples000 is offline
Registered User
no team
 
Join Date: Mar 2012
Rookie Year: 2012
Location: United States
Posts: 222
apples000 has a brilliant futureapples000 has a brilliant futureapples000 has a brilliant futureapples000 has a brilliant futureapples000 has a brilliant futureapples000 has a brilliant futureapples000 has a brilliant futureapples000 has a brilliant futureapples000 has a brilliant futureapples000 has a brilliant futureapples000 has a brilliant future
Re: What is expected of the core libraries?

WPIlib is pretty inefficient, and it's not really set up to be modified easily. In 2011 / 2012, we tried to add in the functionality of the "number of samples to average" to the counter class, but it would cause really weird problems after the counter would run for a minute or so.

The cheesy poofs also modified their gyro code so that the gyro could be reinitialized, but they had better success.

Also, the whole speed controller setup seems to be way more complicated than it needs to be. Right now, victors and jaguars, are two classes, which both implement a Speed Controller interface. They could save some space, by making one speed controller class, that took a type argument during initialization. In LV, the setup is much better, because it uses a polymorphic vi to choose between setups. Also, the number of classes is higher than it needs to be, as several interfaces are completely empty, and don't really help the software at all.

Another interesting issue is the number of really strange undocumented methods that show up whenever you write code. For instance, when you look at available methods on a digital input, you get really cryptic things such as
digitalInput.getAnalogTriggerForRouting. What is an analog trigger, and why do I need it for routing? This method returns whether or not this object that extends digital source is actually an analog input, acting like a digital input. It should be named isAnalogTrigger, or something that is understandable. Also, the CANJaguar has a neat undocumented method, canJaguar.getX. What is X, and why do I need to know what it is?

Last edited by apples000 : 16-06-2013 at 15:18.