A few comments:

   - No need to try-catch inside your setup()/loop(). Both are allowed to
   throw InterruptedException (assuming you're using a recent version of
   everything).
   - Upgrade to the recommended software / firmware versions before we're
   possibly wasting time on bugs that no longer exist.
   - Look at the logcat output.
   - Initially strip down your code to only do the pulse input, then add
   the rest of the stuff.




On Wed, Aug 20, 2014 at 6:44 PM, Richard Vernon <[email protected]>
wrote:

> Hello,
>
> I've created a PulseInput instance and opened it via
>
>         @Override
>         protected void setup() throws ConnectionLostException {
>
>             Log.i("Looper", "setup()");
>             mNumberFormat.setMaximumFractionDigits(2);
>
>             mainLED = ioio_.openDigitalOutput(IOIO.LED_PIN, true);
>             for (int zone=0;zone < ZONE_COUNT; zone++) {
>
> zoneControl[zone]=ioio_.openDigitalOutput(ZONE_PIN_MAP[zone]);
>             }
>
>             for (int relay=0;relay < RELAY_COUNT; relay++) {
>
> relays[relay]=ioio_.openDigitalOutput(RELAY_PIN_MAP[relay]);
>             }
>
>             for (int sensor=0;sensor < SENSOR_COUNT; sensor++) {
>                 sensors[sensor] =
> ioio_.openAnalogInput(SENSOR_PIN_MAP[sensor]);
>             }
>             pulse = ioio_.openPulseInput(45, PulseInput.PulseMode.FREQ);
>
>         }
>
> I appear to be getting a valid open instance of pulse... however when I
> try to get a pulse measurement in the looper, I keep getting
> ConnectionLostException.  Here is where I'm trying to read that value...
>
>         @Override
>         public void loop() throws ConnectionLostException {
> try {
>     mainLED.write(!bToggleSelected);
>     for (int zone = 0; zone < ZONE_COUNT; zone++) {
>         zoneControl[zone].write(!boolZone[zone]);
>     }
>
>     for (int relay = 0; relay < RELAY_COUNT; relay++) {
>         relays[relay].write(!boolRelay[relay]);
>     }
>
>     for (int sensor = 0; sensor < SENSOR_COUNT; sensor++) {
>         try {
>             sensorAverages[sensor][sensorAverageCountIndex] =
> sensors[sensor].getVoltage();
>         } catch (InterruptedException e) {
>             sensorAverages[sensor][sensorAverageCountIndex] = 0;
>         }
>         if (sensorAverageCountIndex == (AVERAGE_SAMPLES - 1)) {
>             float total = 0;
>             for (int sample = 0; sample < AVERAGE_SAMPLES; sample++) {
>                 total += sensorAverages[sensor][sample];
>             }
>             sensorAverageCountIndex = 0;
>         } else {
>             sensorAverageCountIndex++;
>         }
>
>     }
>     try {
>         float freqHz2 = pulse.getDuration();
>     } catch (InterruptedException e) {
>     }
>
>
> }catch(ConnectionLostException p){
>     Log.e("CONNECTIONLOSTEXCEPTION", p.toString());
> }
>
>
>         }
>
> If I comment out the part where I attempt to get pulse.getDuration(), I
> have no problems.  In the big picture, what I'm trying to do is read water
> meter pulses with frequency between 1 per 5 minutes up to 20 per minute.
>  Thanks for your time
>
> --
> You received this message because you are subscribed to the Google Groups
> "ioio-users" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> To post to this group, send email to [email protected].
> Visit this group at http://groups.google.com/group/ioio-users.
> For more options, visit https://groups.google.com/d/optout.
>

-- 
You received this message because you are subscribed to the Google Groups 
"ioio-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/ioio-users.
For more options, visit https://groups.google.com/d/optout.

Reply via email to