Yup, that's what I meant. And you don't need the sleep.
On Aug 28, 2017 1:21 AM, "Maximillian" <[email protected]> wrote:
> Hi Ytai, thanks for the reply,
>
> Based from your suggestion,
>
> PulseInput flowMeter = ioio_.openPulseInput(FLOW_METER_PIN,
> PulseInput.PulseMode.FREQ_SCALE_16); //using frequency measurement with 16x
> scaling
>
>
> int totalPulse = 0; //set initial value of totalPulse
>
> (this is inside the loop)
>
> {
>
> duration = flowMeter.getDurationBuffered(); //the loop will wait here for
> 16 pulse then continue to next line
>
> totalPulse += 16; //add total pulse by 16 because we use FREQ_SCALE_16
>
> ....
>
> ....
>
> Thread.sleep(100);
>
> }
>
>
> Do you mean like this?
>
> And also, do I still need the Thread.sleep(100)? As the
> getDurationBuffered() will do pause the loop while waiting for 16 pulse
> to come.
>
> Thanks
>
>
> do I still need to use Thread.sleep(100) when using this implementation?
> Since getDurationBuffered will do pausing the loop waiting for 16 pulse
> to come.
>
> On Monday, August 28, 2017 at 11:15:05 AM UTC+7, Ytai wrote:
>>
>> You can use getDurationBuffered() and apply scaling (to reduce the pulse
>> rate). This will ensure you don't miss any pulses. You can even ignore the
>> actual value returned, since you don't seem to care about the rate, but
>> rather about the count. Each time getDurationBuffered() returns, it would
>> mean that 16 pulses (or whatever your scaling is) were observed. So you'll
>> end up with a somewhat cumbersome, yet accurate way to count your pulses.
>>
>> On Wed, Aug 23, 2017 at 7:39 PM, Maximillian <[email protected]>
>> wrote:
>>
>>> Fyi, I use this sensor.
>>> https://www.seeedstudio.com/Water-Flow-Sensor-YF-B1-p-2878.html
>>>
>>>
>>> On Thursday, August 24, 2017 at 9:38:08 AM UTC+7, Maximillian wrote:
>>>>
>>>> I think I could get around ~40 pulse per each call of flowMeter.
>>>> getFrequencySync() in a Thread.sleep(100) loop.
>>>>
>>>> Is it still unsafe to just use the getFrequencySync() method for that
>>>> amount of pulse?
>>>>
>>>> Or maybe I can just lower the sleep time to maybe Thread.sleep(50) for
>>>> better accuracy?
>>>>
>>>> Thanks for the hint, I'll try to look into that.
>>>>
>>>>
>>>> On Thursday, August 24, 2017 at 6:18:52 AM UTC+7, Ytai wrote:
>>>>>
>>>>> What's the maximum pulse rate for your application?
>>>>>
>>>>> On Wed, Aug 23, 2017 at 3:36 PM, Maximillian <[email protected]>
>>>>> wrote:
>>>>>
>>>>>> Can you give more hint about how to count?
>>>>>>
>>>>>> I'm not really sure how to do it.
>>>>>>
>>>>>> Big thanks
>>>>>>
>>>>>> On Wednesday, August 23, 2017 at 11:56:20 PM UTC+7, Ytai wrote:
>>>>>>>
>>>>>>> Sampling the frequency and integrating will give you an estimate of
>>>>>>> the total. If it's not accurate enough, you'll need to count.
>>>>>>>
>>>>>>> On Aug 22, 2017 2:51 PM, "Maximillian" <[email protected]> wrote:
>>>>>>>
>>>>>>>> Hi Ytai,
>>>>>>>>
>>>>>>>> This is my current code (trimmed for this post)
>>>>>>>>
>>>>>>>>
>>>>>>>> int FLOW_METER_PIN = 14;
>>>>>>>>
>>>>>>>> volatile float pulseFreq, totalPulse;
>>>>>>>>
>>>>>>>> PulseInput flowMeter = ioio_.openPulseInput(FLOW_METER_PIN,
>>>>>>>> PulseInput.PulseMode.FREQ);
>>>>>>>>
>>>>>>>>
>>>>>>>> totalPulse = 0;
>>>>>>>>
>>>>>>>> public void loop() throws ConnectionLostException, InterruptedException
>>>>>>>> {
>>>>>>>>
>>>>>>>> pulseFreq = flowMeter.getFrequencySync();
>>>>>>>> totalPulse += pulseFreq;
>>>>>>>> //display totalPulse value to a textView;
>>>>>>>>
>>>>>>>> Thread.sleep(100);
>>>>>>>> }
>>>>>>>>
>>>>>>>>
>>>>>>>> Current behavior is already as I expected, the totalPulse textView will
>>>>>>>> updated only when the hall sensor is spinning (flow detected)
>>>>>>>>
>>>>>>>> If I use the getFrequencySync() method, I think the loop is
>>>>>>>> paused, waiting the flowMeter to receive input.
>>>>>>>>
>>>>>>>> If it received input, the totalPulse will increase by the amount
>>>>>>>> of pulseFreq from getFrequencySync().
>>>>>>>>
>>>>>>>> I haven't tested with real water yet (I just blow the flow sensor
>>>>>>>> to make the hall spin for early development test)
>>>>>>>>
>>>>>>>> My question, is it correct to use this approach with the
>>>>>>>> getFrequencySync() method?
>>>>>>>> Or I still need to hack the DigitalInputImpl to count the pulses?
>>>>>>>>
>>>>>>>> Thanks
>>>>>>>>
>>>>>>>> On Wednesday, August 23, 2017 at 4:18:28 AM UTC+7, Ytai wrote:
>>>>>>>>>
>>>>>>>>> It is known, but there isn't currently a plan to add it. If anyone
>>>>>>>>> wants to contribute a patch, I will happily consider adopting it.
>>>>>>>>>
>>>>>>>>> On Aug 13, 2017 8:21 PM, "Maximillian" <[email protected]>
>>>>>>>>> wrote:
>>>>>>>>>
>>>>>>>>>> Is this still a known missing feature? As this post is from
>>>>>>>>>> 2013.. I need to use flow sensor as well..
>>>>>>>>>>
>>>>>>>>>> On Monday, September 9, 2013 at 10:31:46 AM UTC+7, Ytai wrote:
>>>>>>>>>>>
>>>>>>>>>>> This is known missing feature. You can work around this by
>>>>>>>>>>> hacking DigitalInputImpl to count the pulses: its setValue() method
>>>>>>>>>>> will
>>>>>>>>>>> get called on every edge.
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> On Fri, Sep 6, 2013 at 11:21 AM, jorge sb <[email protected]>
>>>>>>>>>>> wrote:
>>>>>>>>>>>
>>>>>>>>>>>> Hi. I want to connect a hall sensor flow meter to ioio.
>>>>>>>>>>>> Perhaps, I could use "PulseInput" but after reading ioio-wiki,
>>>>>>>>>>>> I see that I can't do it with it.
>>>>>>>>>>>> Really, I need a simple pulse counter but without loosing any
>>>>>>>>>>>> pulse.
>>>>>>>>>>>> With flow meter I will like to get:
>>>>>>>>>>>> - Total liquid flow (accumulated countered pulses)
>>>>>>>>>>>> - Instant flow (reading difference between two counts in a
>>>>>>>>>>>> measured time).
>>>>>>>>>>>>
>>>>>>>>>>>> With this sensor I could get a pulse every 50 msec or less at
>>>>>>>>>>>> max rate.
>>>>>>>>>>>> I think I could loose pulses doing periodic read of digital
>>>>>>>>>>>> input.
>>>>>>>>>>>>
>>>>>>>>>>>> Some suggestion.
>>>>>>>>>>>> Thanks.
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> --
>>>>>>>>>>>> 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/grou
>>>>>>>>>>>> ps/opt_out.
>>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> --
>>>>>>>>>> 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 https://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 https://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 https://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 https://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 https://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 https://groups.google.com/group/ioio-users.
For more options, visit https://groups.google.com/d/optout.