Ticket #37 (closed feature: implemented)

Opened 4 years ago

Last modified 18 months ago

Add timestamp type to BB interfaces

Reported by: tim Owned by: tim
Priority: major Milestone: 0.5
Component: Fawkes Version:
Keywords: BlackBoard Cc:
Git Branch: timn/interface-timestamp

Description

Often it's necessary to have a timestamp in the BlackBoard for example to tell when some specific data has been retrieved or calculated. An example that comes to my mind are the new feature classifiers that take a long time to compute. Here you actually need the time when the image was recorded that is being worked on.

Additionally interfaces should get a general timestamp that can be used to query the last change of the interface. It should automatically be site during Interface::write(). This would also allow for a Interface::has_changed() method that can be used if the interface has been changed since the last retrieval to decide whether it's worth to compute results from the data.

Change History

Changed 4 years ago by tim

  • milestone set to Basic Platform

Changed 2 years ago by tim

  • milestone changed from 0.3 to 0.5

Re-assigning to 0.5 which is a more realistic time frame.

Changed 22 months ago by tim

  • status changed from new to accepted

Changed 22 months ago by tim

  • status changed from accepted to reviewing
  • gitbranch set to timn/interface-timestamp

Changed 22 months ago by tim

The feature has been implemented on said branch. It seems to work here, please have a look and test. Webview has been extended to be able to show the flag and last modification date. Note that in webview read() is called on every page access. Be aware that if multiple users access the very same interface via webview the flag may not show the expected results (because two users have caused read() to be called).

For those used to the RCSoftX has_changed flag: it works a little different in Fawkes. The flag is set per interface, not per value. From our experience that should be sufficient. Additionally it's not true only once, but for the whole time between two calls to read() (and even after that if the data was indeed modified between the two calls).

The method is called Interface::changed(). The timestamp can be accessed directly. A writer can also decide to set his own timestamp (for example for hardware data the capture time could be more useful than the time write() was called).

Changed 18 months ago by tim

  • status changed from reviewing to closed
  • resolution set to implemented
Note: See TracTickets for help on using tickets.

This list contains all users that will be notified about changes made to this ticket.

These roles will be notified: Reporter, Subscriber, Participant

  • Fawkes Trac List(Always)
  • Tim Niemueller(Reporter, Owner, Participant)