From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=unavailable autolearn_force=no version=3.4.4 Path: eternal-september.org!reader01.eternal-september.org!reader02.eternal-september.org!news.eternal-september.org!mx02.eternal-september.org!feeder.eternal-september.org!aioe.org!.POSTED!not-for-mail From: "Dmitry A. Kazakov" Newsgroups: comp.lang.ada Subject: Re: high frequency time stamping (Was: Simple Components 4.12 with MQTT implementation released) Date: Tue, 19 Apr 2016 15:35:19 +0200 Organization: Aioe.org NNTP Server Message-ID: References: <6d3b7ac5-8fc6-406c-8aac-947d25a78249@googlegroups.com> <7e104831-cec6-4b04-8671-17e8bdcdae9c@googlegroups.com> NNTP-Posting-Host: bqgfK7NL3xTHnr0WRaLl4g.user.gioia.aioe.org Mime-Version: 1.0 Content-Type: text/plain; charset=windows-1252; format=flowed Content-Transfer-Encoding: 7bit X-Complaints-To: abuse@aioe.org User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:38.0) Gecko/20100101 Thunderbird/38.7.2 X-Notice: Filtered by postfilter v. 0.8.2 Xref: news.eternal-september.org comp.lang.ada:30196 Date: 2016-04-19T15:35:19+02:00 List-Id: On 19/04/2016 14:59, G.B. wrote: > On 19.04.16 14:43, Dmitry A. Kazakov wrote: >> It is a value and a time stamp, because data are oversampled. There is >> no way a conventional OS could respond to each change at this rate. > > Is it possible to have a volatile variable T representing > some point in time and a CAS discipline so that > > 1. there is one task that updates T at regular intervals and > > 2. another task that reads T for stamping items more frequently > than the first would write updates? It is an interesting question. Do you mean CAS = content-addressable storage? I don't think it were possible to do. We use a blackboard storage with a notification event signaling that the local consumer tasks may inspect the latest contents without blocking the producers. The oversampling hardware deploys a buffer that can be read out. It basically is a soft of blackboard too. Clearly ADCs run asynchronously most of the time and there is no way you would wait for an ADC, it would take to much time. So pull methods do not work in most cases. -- Regards, Dmitry A. Kazakov http://www.dmitry-kazakov.de