Skip to content

Commit 357b53f

Browse files
RIC-1143: Fix broken links in documentation
1 parent c8e9cfc commit 357b53f

2 files changed

Lines changed: 22 additions & 22 deletions

File tree

docs-sources/art-lang/index.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -681,7 +681,7 @@ It's possible (but unusual) to import a capsule instance into more than one plug
681681
Plugin parts by default have multiplicity 0..1.
682682

683683
!!! example
684-
You can find a sample application that uses a plugin part [here]({$vars.github.repo$}/tree/main/art-comp-test/art-samples/MoreOrLess).
684+
You can find a sample application that uses a plugin part [here]({$vars.github.repo$}/tree/main/art-samples/MoreOrLess).
685685

686686
In the example below the capsule `C` contains a few parts of different kinds and multiplicities. Note that you may declare multiple parts on the same line if they are of the same kind (both `c` and `d` below are optional parts).
687687

docs-sources/samples.md

Lines changed: 21 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -2,40 +2,40 @@ The {$product.name$} [Git repository](https://github.com/secure-dev-ops/code-rea
22

33
The samples are listed here in an order that may be appropriate when learning to use {$product.name$}, starting with the simplest examples and proceeding with more advanced ones. For each sample, Art language constructs and TargetRTS APIs that it uses, are listed, so you can find the sample that shows what you currently want to learn more about. To keep these lists short, we only list what is new in the sample compared to previously mentioned samples.
44

5-
## [HelloWorld](https://github.com/secure-dev-ops/code-realtime/tree/main/art-samples/HelloWorld)
5+
## [HelloWorld]({$vars.github.repo$}/tree/main/art-samples/HelloWorld)
66
The most classical of samples for learning a new programming language. This version prints "Hello World!" on the console after a short delay, implemented by means of a timer. Watch [this video](https://youtu.be/TGpCqA63MxQ) to see how the sample was created.
77

88
**Art:** [capsule](art-lang/index.md#capsule), [state machine](art-lang/index.md#state-machine), [initial transition](art-lang/index.md#initial-transition), [state](art-lang/index.md#state), timer [port](art-lang/index.md#port), triggered [transition](art-lang/index.md#transition), [embedded C++ code](art-lang/index.md#embedded-c-code)
99

1010
**TargetRTS:** [RTTiming](targetrts-api/class_timing_1_1_base.html)::informIn(), [RTController](targetrts-api/class_r_t_controller.html)::abort()
1111

12-
## [PingPong](https://github.com/secure-dev-ops/code-realtime/tree/main/art-samples/PingPong)
12+
## [PingPong]({$vars.github.repo$}/tree/main/art-samples/PingPong)
1313
Two capsules, `Pinger` and `Ponger`, send the events `ping` and `pong` back and forth. The `ping` event has an integer parameter which gets incremented by one for each ping-pong round. The sample prints messages to stdout both using standard C++ code and with the [Log service](target-rts/logging.md) of the TargetRTS.
1414

1515
**Art:** fixed [part](art-lang/index.md#part), [connector](art-lang/index.md#connector), service and behavior [port](art-lang/index.md#port), [protocol and event](art-lang/index.md#protocol-and-event), log [port](art-lang/index.md#port)
1616

1717
**TargetRTS:** [RTOutSignal](targetrts-api/struct_r_t_out_signal.html)::send(), [Log](targetrts-api/struct_log.html)::log(), [Log](targetrts-api/struct_log.html)::show(), [Log](targetrts-api/struct_log.html)::commit()
1818

19-
## [PingPongTimeDeltaTracker](https://github.com/secure-dev-ops/code-realtime/tree/main/art-samples/PingPongTimeDeltaTracker)
19+
## [PingPongTimeDeltaTracker]({$vars.github.repo$}/tree/main/art-samples/PingPongTimeDeltaTracker)
2020
While the standard [PingPong sample](#pingpong) runs forever, this version lets the user enter the number of ping-pong rounds at start-up. When the rounds are completed, information about how long it took is printed.
2121

2222
**Art:** [choice](art-lang/index.md#choice-and-junction), [entry action](art-lang/index.md#entry-and-exit-action), [transition guard](art-lang/index.md#transition)
2323

2424
**TargetRTS:** [RTTimespec](targetrts-api/struct_r_t_timespec.html)::getclock()
2525

26-
## [PiComputer](https://github.com/secure-dev-ops/code-realtime/tree/main/art-samples/PiComputer)
26+
## [PiComputer]({$vars.github.repo$}/tree/main/art-samples/PiComputer)
2727
This application computes a value of Pi using [Madhava](https://en.wikipedia.org/wiki/Madhava_of_Sangamagrama)'s formula, which consists of a series of additions and multiplications. The result is obtained as a collaboration of three capsules, each with a simple state machine, which coordinate their work by sending events with parameters.
2828

2929
**Art:** [composite state](art-lang/index.md#hierarchical-state-machine) (hierarchical state machine)
3030

31-
## [TrafficLight](https://github.com/secure-dev-ops/code-realtime/tree/main/art-samples/TrafficLight)
31+
## [TrafficLight]({$vars.github.repo$}/tree/main/art-samples/TrafficLight)
3232
This sample implements a classical traffic light that switches between red, yellow and green based on a periodic timer. The actual traffic light is implemented by means of a class `Light` with a state machine. An instance of that class is managed by the `TrafficLight` capsule. The `Light` class uses an interface class `ILogger`, which the `TrafficLight` capsules implements, for logging messages when the traffic light switches state. It delegates the work of logging to a separate Logger capsule. Note that only the `ILogger` interface is provided to the `Light` object, instead of the whole `TrafficLight` capsule which has an unnecessary big API for the needs of the `Light`.
3333

3434
**Art:** [class with state machine](art-lang/index.md#class-with-state-machine)
3535

3636
**TargetRTS:** [RTTiming](targetrts-api/class_timing_1_1_base.html)::informEvery()
3737

38-
## [DiningPhilosophers](https://github.com/secure-dev-ops/code-realtime/tree/main/art-samples/DiningPhilosophers)
38+
## [DiningPhilosophers]({$vars.github.repo$}/tree/main/art-samples/DiningPhilosophers)
3939
Two different implementations of the classical [Dining Philosophers problem](https://en.wikipedia.org/wiki/Dining_philosophers_problem). The applications implement 3 different strategies (represented by an enum) for how to let all philosophers eat and think without causing a deadlock.
4040

4141
Version 1 of the sample uses fixed parts which are incarnated statically. The strategy to use is hard-coded into the application.
@@ -46,61 +46,61 @@ Version 2 of the sample uses optional parts which are incarnated dynamically, an
4646

4747
**TargetRTS:** [RTActor](targetrts-api/class_r_t_actor.html)::getName(), [RTMessage](targetrts-api/class_r_t_message.html)::sap(), [Frame](targetrts-api/class_frame_1_1_base.html)::incarnate()
4848

49-
## [MoreOrLess](https://github.com/secure-dev-ops/code-realtime/tree/main/art-samples/MoreOrLess)
49+
## [MoreOrLess]({$vars.github.repo$}/tree/main/art-samples/MoreOrLess)
5050
A "guess-the-secret-number" game which illustrates the use of plugin capsule parts.
5151

5252
**Art:** [plugin part](art-lang/index.md#plugin_part)
5353

5454
**TargetRTS:** [Frame](targetrts-api/class_frame_1_1_base.html)::import(), [Frame](targetrts-api/class_frame_1_1_base.html)::deport()
5555

56-
## [DependencyInjection](https://github.com/secure-dev-ops/code-realtime/tree/main/art-samples/DependencyInjection)
56+
## [DependencyInjection]({$vars.github.repo$}/tree/main/art-samples/DependencyInjection)
5757
This sample shows how to use [dependency injection](https://en.wikipedia.org/wiki/Dependency_injection) to customize capsule incarnation. Build variants are used for configuring how to customize the dependency injection, which will influence on how the application behaves.
5858

5959
**Art:** [capsule inheritance](art-lang/index.md#capsule-inheritance), [capsule factory](target-rts/capsule-factory.md), [dependency injection](target-rts/dependency-injection.md), [build variants](building/build-variants.md)
6060

6161
**TargetRTS:** [RTInjector](targetrts-api/class_r_t_injector.html), [RTActorFactoryInterface](targetrts-api/class_r_t_actor_factory_interface.html)
6262

63-
## [QtTrafficLight](https://github.com/secure-dev-ops/code-realtime/tree/main/art-samples/QtTrafficLight)
63+
## [QtTrafficLight]({$vars.github.repo$}/tree/main/art-samples/QtTrafficLight)
6464
This application has a user interface developed with [Qt](https://www.qt.io/) which controls a realtime application that implements the logic of a traffic light that works together with a pedestrian light. Note that you need to have [Qt](https://www.qt.io/) installed to build and run this sample.
6565

6666
**Art:** [composite state with entry- and exitpoint](art-lang/index.md#hierarchical-state-machine), [external port](target-rts/integrate-with-external-code.md#external-port), [notification port](art-lang/index.md#notification-port), [internal transition](art-lang/index.md#internal-transition)
6767

6868
**TargetRTS:** [RTTiming](targetrts-api/class_timing_1_1_base.html)::cancelTimer()
6969

70-
## [TrafficLightWeb](https://github.com/secure-dev-ops/code-realtime/tree/main/art-samples/TrafficLightWeb)
71-
This sample is similar to [QtTrafficLight](#qttrafficlight) but the user interface is instead implemented as a Node.js web application. The application uses the [TCPServer library](https://github.com/secure-dev-ops/code-realtime/tree/main/art-samples/TcpServer) and the Node.js application therefore can use the [rt-tcp-utils](https://www.npmjs.com/package/rt-tcp-utils) library for communicating with it. Communication between the Node.js application and the web page uses [socket.io](https://socket.io/).
70+
## [TrafficLightWeb]({$vars.github.repo$}/tree/main/art-samples/TrafficLightWeb)
71+
This sample is similar to [QtTrafficLight](#qttrafficlight) but the user interface is instead implemented as a Node.js web application. The application uses the [TCPServer library]({$vars.github.repo$}/tree/main/art-samples/TcpServer) and the Node.js application therefore can use the [rt-tcp-utils](https://www.npmjs.com/package/rt-tcp-utils) library for communicating with it. Communication between the Node.js application and the web page uses [socket.io](https://socket.io/).
7272

7373
**Art:** [junction point](art-lang/index.md#choice-and-junction)
7474

7575
**TargetRTS:** Extracting command-line arguments by means of [RTMain](targetrts-api/class_r_t_main.html)::argCount() and [RTMain](targetrts-api/class_r_t_main.html)::argStrings()
7676

77-
## [TcpRangeCounter](https://github.com/secure-dev-ops/code-realtime/tree/main/art-samples/TcpRangeCounter)
78-
This sample uses the [TCPServer library](https://github.com/secure-dev-ops/code-realtime/tree/main/art-samples/TcpServer) which makes it possible to communicate with the application from the "outside" by means of making TCP requests. Two sample client applications for making such requests are included:
77+
## [TcpRangeCounter]({$vars.github.repo$}/tree/main/art-samples/TcpRangeCounter)
78+
This sample uses the [TCPServer library]({$vars.github.repo$}/tree/main/art-samples/TcpServer) which makes it possible to communicate with the application from the "outside" by means of making TCP requests. Two sample client applications for making such requests are included:
7979

80-
* [A command-line Node.js client](https://github.com/secure-dev-ops/code-realtime/tree/main/art-samples/TcpRangeCounter/client)
81-
* [A Node.js Express web application](https://github.com/secure-dev-ops/code-realtime/tree/main/art-samples/TcpRangeCounter/client-ui)
80+
* [A command-line Node.js client]({$vars.github.repo$}/tree/main/art-samples/TcpRangeCounter/client)
81+
* [A Node.js Express web application]({$vars.github.repo$}/tree/main/art-samples/TcpRangeCounter/client-ui)
8282

8383
The sample also shows how to run a capsule instance in its own [thread](target-rts/threads.md).
8484

8585
**Art:** [capsule constructor](art-lang/index.md#capsule-constructor)
8686

8787
**TargetRTS:** [Frame](targetrts-api/class_frame_1_1_base.html)::incarnateCustom()
8888

89-
## DistributedPingPong
90-
This sample uses the [TCPServer library](https://github.com/secure-dev-ops/code-realtime/tree/main/art-samples/TcpServer) for implementing a distributed application. Two instances of the PingPong application are launched and the TCPServer library ensures that the events that are sent out by one application, are serialized to JSON, sent over TCP and received by the other application. The applications are connected by means of command-line arguments that specify the application's own port, and the port of the other application.
89+
## [DistributedPingPong]({$vars.github.repo$}/tree/main/art-samples/DistributedPingPong)
90+
This sample uses the [TCPServer library]({$vars.github.repo$}/tree/main/art-samples/TcpServer) for implementing a distributed application. Two instances of the PingPong application are launched and the TCPServer library ensures that the events that are sent out by one application, are serialized to JSON, sent over TCP and received by the other application. The applications are connected by means of command-line arguments that specify the application's own port, and the port of the other application.
9191

9292
To start the communication, a special command-line argument `-injectFirstPing` is supported. The implementation of this argument uses APIs of [RTMessage](targetrts-api/class_r_t_message.html) for programmatically injecting an event on a port.
9393

9494
**Art:** [timer data](target-rts/timers.md#timer-data), [symmetric events](art-lang/index.md#protocol-and-event), [calling code from an inherited transition](art-lang/index.md#calling-code-from-an-inherited-transition)
9595

9696
**TargetRTS:** [RTMain](targetrts-api/class_r_t_main.html)::argCount(), [RTMain](targetrts-api/class_r_t_main.html)::argStrings(), [RTMemoryUtil](targetrts-api/class_r_t_memory_util.html), [RTMessage](targetrts-api/class_r_t_message.html), [RTController](targetrts-api/class_r_t_controller.html)::receive()
9797

98-
## TokenRing
99-
This sample is similar to [DistributedPingPong](#distributedpingpong), and also uses the [TCPServer library](https://github.com/secure-dev-ops/code-realtime/tree/main/art-samples/TcpServer). But instead of just connecting two applications, here multiple applications can be connected in a ring structure. The applications exchange a `token` event which has a string (`RTString`) data parameter.
98+
## [TokenRing]({$vars.github.repo$}/tree/main/art-samples/TokenRing)
99+
This sample is similar to [DistributedPingPong](#distributedpingpong), and also uses the [TCPServer library]({$vars.github.repo$}/tree/main/art-samples/TcpServer). But instead of just connecting two applications, here multiple applications can be connected in a ring structure. The applications exchange a `token` event which has a string (`RTString`) data parameter.
100100

101101
**TargetRTS:** [RTString](targetrts-api/class_r_t_string.html)
102102

103-
## gRPC_MazeRunner
104-
This sample uses the [gRPCServer library](https://github.com/secure-dev-ops/code-realtime/tree/main/art-samples/gRPCServer) which allows a realtime application to communicate using [gRPC](https://grpc.io/) with other applications. The sample also shows how to mix Art files with [hand-written C++ source files](building/build-cpp-files.md) and build them into a single application.
103+
## [gRPC_MazeRunner]({$vars.github.repo$}/tree/main/art-samples/gRPC_MazeRunner)
104+
This sample uses the [gRPCServer library]({$vars.github.repo$}/tree/main/art-samples/gRPCServer) which allows a realtime application to communicate using [gRPC](https://grpc.io/) with other applications. The sample also shows how to mix Art files with [hand-written C++ source files](building/build-cpp-files.md) and build them into a single application.
105105

106106
**TargetRTS:** [RTOutSignal](targetrts-api/struct_r_t_out_signal.html)::invoke()

0 commit comments

Comments
 (0)