Skip to content

Commit b36d1cd

Browse files
committed
Added standard clock.
1 parent 75fa840 commit b36d1cd

File tree

4 files changed

+37
-4
lines changed

4 files changed

+37
-4
lines changed

LosslessObservable/LosslessObservable/Functions.cs

+6-1
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,12 @@ public static object ObservableTimedSequence()
1616

1717
public static object LosslessClock()
1818
{
19-
return ExcelAsyncUtil.Observe("LosslessClock", null, ExcelObservableOptions.Lossless, () => new LosslessClock());
19+
return ExcelAsyncUtil.Observe("LosslessClock", null, ExcelObservableOptions.Lossless, () => new ObservableClock());
20+
}
21+
22+
public static object Clock()
23+
{
24+
return ExcelAsyncUtil.Observe("Clock", null, ExcelObservableOptions.None, () => new ObservableClock());
2025
}
2126

2227
public static int SetThrottleInterval(int interval)

LosslessObservable/LosslessObservable/LosslessClock.cs renamed to LosslessObservable/LosslessObservable/ObservableClock.cs

+2-2
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,12 @@
22

33
namespace LosslessObservable
44
{
5-
internal class LosslessClock : IExcelObservable
5+
internal class ObservableClock : IExcelObservable
66
{
77
private Timer _timer;
88
private List<IExcelObserver> _observers;
99

10-
public LosslessClock()
10+
public ObservableClock()
1111
{
1212
_timer = new Timer(OnTimerTick, null, 0, 1000);
1313
_observers = new List<IExcelObserver>();

LosslessObservable/README.md

+29-1
Original file line numberDiff line numberDiff line change
@@ -86,6 +86,7 @@ HKEY_CURRENT_USER\Software\Microsoft\Office\[YOUR_OFFICE_VERSION]]\Excel\Options
8686
The sample project also provides a sequence with numbers generated every 500 milliseconds that can be invoked with `=ObservableTimedSequence()`:
8787

8888
```c#
89+
8990
public static object ObservableTimedSequence()
9091
{
9192
return ExcelAsyncUtil.Observe("ObservableTimedSequence", null, ExcelObservableOptions.Lossless, () => new ObservableTimedSequence());
@@ -141,5 +142,32 @@ internal class ObservableTimedSequence : IExcelObservable
141142

142143
```
143144

144-
The sample project also provides a lossless clock updated every second that can be invoked with `=LosslessClock()`. Note, that if RTD throttle interval is greater than 1 second, then displayed time will lag from real time. Thus, it is a not a good way to display correct time, but illustrates lossless behavior.
145+
The sample project also provides an observable clock updated every second. It can be invoked with or without the `Lossless` option:
146+
147+
```c#
148+
149+
public static object LosslessClock()
150+
{
151+
return ExcelAsyncUtil.Observe("LosslessClock", null, ExcelObservableOptions.Lossless, () => new ObservableClock());
152+
}
153+
154+
public static object Clock()
155+
{
156+
return ExcelAsyncUtil.Observe("Clock", null, ExcelObservableOptions.None, () => new ObservableClock());
157+
}
158+
159+
```
160+
161+
You can try it like this:
162+
163+
```
164+
165+
=Clock()
166+
=LosslessClock()
167+
168+
```
169+
170+
If RTD throttle interval is greater than 1 second, then displayed time from the lossless clock will progressively lag from real time, illustrating the difference:
171+
172+
![](clock.png)
145173

LosslessObservable/clock.png

13.6 KB
Loading

0 commit comments

Comments
 (0)