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] 
> <javascript:>> 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/groups/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] <javascript:>.
>> To post to this group, send email to [email protected] 
>> <javascript:>.
>> 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.

Reply via email to