Difference between revisions of "Wristwatch Example"

From WeizmannWiki
Jump to: navigation, search
(Alarm)
(Date)
Line 134: Line 134:
 
! scope="col" width="15%" | LSC
 
! scope="col" width="15%" | LSC
 
|-
 
|-
| when the display mode changes to date, the display text changes to the date value.
+
| when the display mode changes to "date", the display text changes to the date value.
 
|
 
|
 
| [[Image:DisplayDate.png|thumb|left|x50px|LSC]]
 
| [[Image:DisplayDate.png|thumb|left|x50px|LSC]]

Revision as of 07:39, 28 February 2013

The wristwatch example is taken from [1], and is a simplified version of the original statecharts watch example of [2]. Generally, the watch displays the time and can switch between different displays that show (and allow changes to) the alarm, date, time and stopwatch. It has an option for turning on the light, and an alarm that beeps when the set time is reached. The following examples demonstrate many constructs in the LSC language and the way they were created in natural lanague play-in. The model was originally described in [3].

Requirements

Watch Modes

Natural Language Text Comments LSC
when the user clicks the d_button, if the display mode is "time", the display mode changes to "date", otherwise if the display mode is "date", the display mode changes to "time". Demonstrates if-else.
LSC
when the user clicks the a_button, if the display mode is "time", the display mode changes to "alarm", otherwise if the display mode is "alarm", the display mode changes to "chime", otherwise if the display mode is "chime", the display mode changes to "stopwatch", otherwise if the display mode is "stopwatch", the display mode changes to "time".
LSC
when the user clicks the c_button , if the display mode is "alarm" then the display mode changes to "alarm minutes" , otherwise if the display mode is "alarm minutes" then the display mode changes to "alarm hours" , otherwise if the display mode is "alarm hours" then the display mode changes to "alarm".
LSC
when the user clicks the b_button, if the display mode is “alarm minutes”, the display mode changes to "alarm".
LSC
when the user clicks the b_button, if the display mode is “alarm hours” , the display mode changes to "alarm".
LSC
when the user clicks the a_button , if the display mode is "alarm minutes" , the alarm increases in one minute , otherwise if the display mode is "alarm hours" , the alarm increases by one hour.
LSC
when the user clicks the c_button , if the display mode is "time" , the display mode changes to "update" and the update type changes to "seconds".
LSC

Updates

Natural Language Text Comments LSC
when the user clicks the c_button , if the update type is "seconds" , the update type changes to "minutes" otherwise if the update type is "minutes" , the update type changes to "hours" otherwise if the update type is "hours" , the update type changes to "date" otherwise if the update type is "date", the display mode changes to "time" and the update type changes to "none".
LSC
when the update type changes , if the update type equals "seconds" , the display blinks seconds , otherwise if the update type equals "minutes" , the display blinks minutes , otherwise the display blinks none.
LSC
when the update type changes, the display mode changes to "update".
LSC

Time

Natural Language Text Comments LSC
when the clock ticks, the time increases by one second.
LSC
when the time value changes, if the display mode is "time", the display text changes to time value. Demonstrates a property change as a trigger.
LSC

Light

Natural Language Text Comments LSC
when the user clicks the b_button, if the light state is on , the light state turns to off , otherwise if the light state is off , the light state turns to on.
LSC


Alarm

Natural Language Text Comments LSC
when the time value changes , if the time value equals the alarm value and the alarm state is enabled then the beeper state turns to on.
LSC
when the user clicks the d_button , if the display mode is "alarm" , if the alarm state is enabled , the alarm state changes to disabled otherwise the alarm state changes to enabled.
LSC
when the display mode changes , if the display mode equals "alarm minutes" , the display blinks minutes , otherwise if the display mode equals "alarm hours" , the display blinks hours , otherwise the display blinks none.
LSC
when the beeper state changes to on, as long as the beeper state is on and two seconds elapse, the beeper beeps, the display mode may not change. Demonstrates loop and forbidden element.
LSC
when the user clicks any WButton , the beeper state turns to off. Demonstrates symbolic \ non-deterministic objects.
LSC
when the display mode changes to "alarm", the display text changes to the alarm value.
LSC

Date

Natural Language Text Comments LSC
when the display mode changes to "date", the display text changes to the date value.
LSC


 

Download the Wristwatch Example

Below are downloads of the wrist watch final application, as well as of the LSC project that can be opened and modified in PlayGo.

Wristwatch final application (runnable jar)

Runnable Wrist Watch with Swing GUI
Runnable Wrist Watch with the auto generated System Model GUI

To run the wristwatch, simply extract the downloaded zip and double click the jar file.

Wristwatch LSC project

The Wrist Watch LSC Project (for development purposes)

Installation Instructions

  1. Extract the downloaded zip.
  2. Download PlayGo.
  3. Import the downloaded project to your workspace:
    1. From the File menu choose Import-->General-->Existing Projects into Workspace
    2. Click the 'Next' button
    3. When prompted, select the directory to which you extracted the downloaded wrist watch example
    4. Click finish
  4. The wrist watch example project is now part of your workspace. You can start playing with it. For details refer to how to play out.

References

  1. D. Harel. "On Visual Formalisms", Commun. ACM, 31(5):514–530, 1988.
  2. D. Harel, "Statecharts: A Visual Formalism for Complex Systems", Sci. Comput. Programming 8, 231-274, 1987.
  3. M. Gordon and D. Harel. Generating executable scenarios fromfckLRnatural language. In Proc. 10th Int. Conf. on Computational Linguistics and Intelligent Text Processing, CICLing’09, pages 456–467. Springer-Verlag, 2009.