Well, I wouldn't be all that surprised by that flickering.
Since your dashboard is updating pretty fast (as fast as you get packets) and the encoder state changes once per 'tick', the value of the encoder ports should change state quickly enough to make the dashboard display a flickering or "both 0 and 1" state on the GPIO port. That's a matter of how slowly your eyes and monitor react.
The information you are really after is the number of ticks that have occurred, which is in the FPGA. To get this value, you first have to set the distance per tick, then call Encoder::GetDistance(). The distance per tick defaults to 1.0, so without modification, Encoder::GetDistance returns number of ticks.
Your call would look like this:
Code:
float dist = encoder1.GetDistance();
Then, to view this on your dashboard, add the distance to the user bytes of the packet, and parse them out in LabVIEW. This takes a bit of inspection, but is possible. Alternately, use dprintf to display the distance, and open a console to the cRIO to monitor the count.
-Jeff Erickson, FRC 41