<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://kb.phenomportal.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Chris</id>
	<title>PHENOM Portal Knowledgebase - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://kb.phenomportal.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Chris"/>
	<link rel="alternate" type="text/html" href="https://kb.phenomportal.com/index.php?title=Special:Contributions/Chris"/>
	<updated>2026-04-28T16:58:35Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.44.2</generator>
	<entry>
		<id>https://kb.phenomportal.com/index.php?title=Export_Models&amp;diff=1597</id>
		<title>Export Models</title>
		<link rel="alternate" type="text/html" href="https://kb.phenomportal.com/index.php?title=Export_Models&amp;diff=1597"/>
		<updated>2026-04-27T17:32:32Z</updated>

		<summary type="html">&lt;p&gt;Chris: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This article is an abridged combination of [[Projects and Models Management]] and [[Data Model Generation]] intended to help users export their models from PHENOM.&lt;br /&gt;
&lt;br /&gt;
== Select the Model ==&lt;br /&gt;
The unabridged article can be found here: [[Projects and Models Management#Projects Management]].&lt;br /&gt;
&lt;br /&gt;
# Left-Click the Manage Models button. &amp;lt;br/&amp;gt; [[File:Phenom navigation bar 5.png|76px|alt=Manage Models mode button|Manage Models mode button]]&lt;br /&gt;
# Find the desired project in the project listing. &amp;lt;br/&amp;gt;[[File:Manage Models Project Listing.png|300px|alt=List of User&#039;s Projects]]&lt;br /&gt;
# Right-click on the project and click &amp;quot;Switch&amp;quot; to activate that project. &amp;lt;br/&amp;gt; [[File:Phenom-manage-switch-project.png|300px|alt=PHENOM Header]]&lt;br /&gt;
# Verify the intended model is active in the PHENOM header.&amp;lt;br/&amp;gt;[[File:Phenom-header-current-model-and-user.png|300px|alt=PHENOM Header]]&lt;br /&gt;
&lt;br /&gt;
== Export the Data Model ==&lt;br /&gt;
The unabridged article can be found here: [[Data Model Generation]].&lt;br /&gt;
&lt;br /&gt;
* Left-Click the Generate Mode button. &amp;lt;br/&amp;gt; [[File:Phenom navigation bar 4.png|76px|alt=Generate]]&lt;br /&gt;
&lt;br /&gt;
* Ensure the following selections:&lt;br /&gt;
** &#039;&#039;&#039;Filter By:&#039;&#039;&#039; None&lt;br /&gt;
&lt;br /&gt;
=== Generate a FACE Model ===&lt;br /&gt;
This will produce the canonical form of your model containing only official FACE model content.  This format is compatible with other modeling tools.&lt;br /&gt;
&lt;br /&gt;
* Ensure the following selections:&lt;br /&gt;
** &#039;&#039;&#039;Export Type:&#039;&#039;&#039; FACE (.face)&lt;br /&gt;
** &#039;&#039;&#039;Export CDM Queries:&#039;&#039;&#039; unchecked&lt;br /&gt;
** &#039;&#039;&#039;Export LDM Queries:&#039;&#039;&#039; unchecked&lt;br /&gt;
** &#039;&#039;&#039;Recover Retention Artifacts:&#039;&#039;&#039; unchecked&lt;br /&gt;
** &#039;&#039;&#039;Exclude Deprecated Content:&#039;&#039;&#039; CHECKED&lt;br /&gt;
** &#039;&#039;&#039;FACE Version:&#039;&#039;&#039; 3.1/3.2 (Latest Version Recommended)&lt;br /&gt;
* Left-Click the GENERATE button and wait for PHENOM to generate your model.  The download will start automatically.&lt;br /&gt;
&lt;br /&gt;
=== Generate a Skayl Model ===&lt;br /&gt;
The Skayl model format is a proprietary format that captures additional model content not fully specified by the FACE Technical Standard.  This format is recommended if you need to capture Integration Model content or if you plan to load the model into PHENOM again at some point in the future.&lt;br /&gt;
&lt;br /&gt;
* Ensure the following selections:&lt;br /&gt;
** &#039;&#039;&#039;Export Type:&#039;&#039;&#039; Skayl (.skayl)&lt;br /&gt;
** &#039;&#039;&#039;Exclude Deprecated Content:&#039;&#039;&#039; CHECKED&lt;/div&gt;</summary>
		<author><name>Chris</name></author>
	</entry>
	<entry>
		<id>https://kb.phenomportal.com/index.php?title=Export_Models&amp;diff=1596</id>
		<title>Export Models</title>
		<link rel="alternate" type="text/html" href="https://kb.phenomportal.com/index.php?title=Export_Models&amp;diff=1596"/>
		<updated>2026-04-27T15:07:20Z</updated>

		<summary type="html">&lt;p&gt;Chris: Created page with &amp;quot;This article is an abridged combination of Projects and Models Management and Data Model Generation intended to help users export their models from PHENOM.  == Select the Model == The unabridged article can be found here: Projects and Models Management#Projects Management.  # Left-Click the Manage Models button. &amp;lt;br/&amp;gt; Manage Models mode button # Find the desired project in the project lis...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This article is an abridged combination of [[Projects and Models Management]] and [[Data Model Generation]] intended to help users export their models from PHENOM.&lt;br /&gt;
&lt;br /&gt;
== Select the Model ==&lt;br /&gt;
The unabridged article can be found here: [[Projects and Models Management#Projects Management]].&lt;br /&gt;
&lt;br /&gt;
# Left-Click the Manage Models button. &amp;lt;br/&amp;gt; [[File:Phenom navigation bar 5.png|76px|alt=Manage Models mode button|Manage Models mode button]]&lt;br /&gt;
# Find the desired project in the project listing. &amp;lt;br/&amp;gt;[[File:Manage Models Project Listing.png|300px|alt=List of User&#039;s Projects]]&lt;br /&gt;
# Right-click on the project and click &amp;quot;Switch&amp;quot; to activate that project. &amp;lt;br/&amp;gt; [[File:Phenom-manage-switch-project.png|300px|alt=PHENOM Header]]&lt;br /&gt;
# Verify the intended model is active in the PHENOM header.&amp;lt;br/&amp;gt;[[File:Phenom-header-current-model-and-user.png|300px|alt=PHENOM Header]]&lt;br /&gt;
&lt;br /&gt;
== Export the Data Model ==&lt;br /&gt;
The unabridged article can be found here: [[Data Model Generation]].&lt;br /&gt;
&lt;br /&gt;
# Left-Click the Generate button. &amp;lt;br/&amp;gt; [[File:Phenom navigation bar 4.png|76px|alt=Generate]]&lt;/div&gt;</summary>
		<author><name>Chris</name></author>
	</entry>
	<entry>
		<id>https://kb.phenomportal.com/index.php?title=File:Phenom-header-current-model-and-user.png&amp;diff=1595</id>
		<title>File:Phenom-header-current-model-and-user.png</title>
		<link rel="alternate" type="text/html" href="https://kb.phenomportal.com/index.php?title=File:Phenom-header-current-model-and-user.png&amp;diff=1595"/>
		<updated>2026-04-27T13:35:26Z</updated>

		<summary type="html">&lt;p&gt;Chris: Chris uploaded a new version of File:Phenom-header-current-model-and-user.png&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Current User and Model Display in Header&lt;/div&gt;</summary>
		<author><name>Chris</name></author>
	</entry>
	<entry>
		<id>https://kb.phenomportal.com/index.php?title=File:Manage_Models_Project_Listing.png&amp;diff=1594</id>
		<title>File:Manage Models Project Listing.png</title>
		<link rel="alternate" type="text/html" href="https://kb.phenomportal.com/index.php?title=File:Manage_Models_Project_Listing.png&amp;diff=1594"/>
		<updated>2026-04-27T13:26:21Z</updated>

		<summary type="html">&lt;p&gt;Chris: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is a sample listing of projects in the Manage Models mode of PHENOM.&lt;/div&gt;</summary>
		<author><name>Chris</name></author>
	</entry>
	<entry>
		<id>https://kb.phenomportal.com/index.php?title=How-To_Articles&amp;diff=1593</id>
		<title>How-To Articles</title>
		<link rel="alternate" type="text/html" href="https://kb.phenomportal.com/index.php?title=How-To_Articles&amp;diff=1593"/>
		<updated>2026-04-24T15:32:48Z</updated>

		<summary type="html">&lt;p&gt;Chris: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#[[Login]]&lt;br /&gt;
#[[Dashboard]]&lt;br /&gt;
#[[Search Bar]]&lt;br /&gt;
#[[User Settings]]&lt;br /&gt;
#[[Basic Navigation]]&lt;br /&gt;
#[[Data Modeling]]&lt;br /&gt;
#[[Integration Modeling]]&lt;br /&gt;
#[[Generate]]&lt;br /&gt;
#[[Manage Models]]&lt;br /&gt;
----&lt;br /&gt;
#&amp;lt;li value=&amp;quot;10&amp;quot;&amp;gt; [[Export Models]] &amp;lt;/li&amp;gt;&lt;/div&gt;</summary>
		<author><name>Chris</name></author>
	</entry>
	<entry>
		<id>https://kb.phenomportal.com/index.php?title=Integrate_Applications_with_PHENOM_%26_CinC&amp;diff=1567</id>
		<title>Integrate Applications with PHENOM &amp; CinC</title>
		<link rel="alternate" type="text/html" href="https://kb.phenomportal.com/index.php?title=Integrate_Applications_with_PHENOM_%26_CinC&amp;diff=1567"/>
		<updated>2026-01-20T19:46:06Z</updated>

		<summary type="html">&lt;p&gt;Chris: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This tutorial will walk a user through the compilation and execution of a CinC-based application.  It builds upon other tutorials in PHENOM.  As such, it uses the same principles as [[Integration Model to CinC Generation]], but the content is different.&lt;br /&gt;
&lt;br /&gt;
{{Info|heading=Windows Subsystem for Linux | 1=This tutorial is written to use Windows Subsystem for Linux (WSL 2) with a Ubuntu distribution. If you need help installing WSL, please follow [https://learn.microsoft.com/en-us/windows/wsl/install this link].}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Preparing PHENOM==&lt;br /&gt;
In this tutorial, you will integrate two software applications, enabling them to communicate with each other.  For the sake of simplicity, they will be integrated into a single executable.  This will allow you to see the result of the integration by running a single file.  This tutorial uses the Integration Model as shown in a previous tutorial.&lt;br /&gt;
&lt;br /&gt;
Start by downloading this data model: [{{filepath:Robot_model_with_integration_model.skayl}} Download Robot_model_with_integration_model.skayl file]&lt;br /&gt;
&lt;br /&gt;
{{Info|heading=Skayl File | 1=The FACE Technical Standard only defines the elements of an integration model.  The details of each element are left to integrators.  As a result, such details are not effectively stored in a .face model.  A .skayl file is provided here to maintain this information.}}&lt;br /&gt;
&lt;br /&gt;
Load this model into a new project in PHENOM.  If you need help loading the project file, please view this tutorial: [[Creating a Project from an Existing Model]].&lt;br /&gt;
&lt;br /&gt;
== Export a CinC Package ==&lt;br /&gt;
In PHENOM, click on the GENERATE icon in the vertical bar on the left-hand side of the screen.&lt;br /&gt;
&lt;br /&gt;
[[File:Phenom navigation bar 4.png|thumb|none]]&lt;br /&gt;
&lt;br /&gt;
Select the CINC tab.&lt;br /&gt;
&lt;br /&gt;
[[File:generate_menu_cinc_selected.png|thumb|none]]&lt;br /&gt;
&lt;br /&gt;
Please make the following choices:&lt;br /&gt;
* &#039;&#039;&#039;CinC Artifact&#039;&#039;&#039; CinC&lt;br /&gt;
* &#039;&#039;&#039;CinC Version&#039;&#039;&#039; CinC 2.2.3 (this was also tested with v2.2.1, v2.2.3 and v2.3.1)&lt;br /&gt;
* &#039;&#039;&#039;FACE Version&#039;&#039;&#039; 3.0&lt;br /&gt;
* &#039;&#039;&#039;Language&#039;&#039;&#039; c++&lt;br /&gt;
* &#039;&#039;&#039;Override namespaces?&#039;&#039;&#039; Not Selected&lt;br /&gt;
* &#039;&#039;&#039;System Directory&#039;&#039;&#039; Test_System&lt;br /&gt;
* &#039;&#039;&#039;Include CinC Source?&#039;&#039;&#039; Selected&lt;br /&gt;
* &#039;&#039;&#039;Include Model files?&#039;&#039;&#039; Selected&lt;br /&gt;
* &#039;&#039;&#039;Selection Type&#039;&#039;&#039; Mains and UoPs&lt;br /&gt;
&lt;br /&gt;
There is a prompt to &#039;&#039;&#039;Select your Mains and UoPs&#039;&#039;&#039;.  Since the project was setup to have both applications in a single executable, both UoPs are listed under a single main.  Ensure all three elements are selected, like this:&lt;br /&gt;
&lt;br /&gt;
[[File:generate_cinc_select_mains_and_uops.png|thumb|none]]&lt;br /&gt;
&lt;br /&gt;
Next, select a license.  For this tutorial, you should choose &#039;&#039;&#039;Evaluation&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
And finally, click &#039;&#039;&#039;GENERATE&#039;&#039;&#039;.  PHENOM will start creating your source package and your browser will automatically download it once complete.&lt;br /&gt;
&lt;br /&gt;
== Prepare the Environment ==&lt;br /&gt;
In your Windows user folder (typically C:\Users\&amp;lt;username&amp;gt;), create (or edit) the &amp;lt;code&amp;gt;.wslconfig&amp;lt;/code&amp;gt; file.&lt;br /&gt;
&lt;br /&gt;
Make sure the file contains the following entries:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[wsl2]&lt;br /&gt;
networkingMode=mirrored&lt;br /&gt;
&lt;br /&gt;
[experimental]&lt;br /&gt;
hostAddressLoopback=true&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Start your WSL instance, and ensure the proper packages are installed:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt update&lt;br /&gt;
&lt;br /&gt;
apt install make&lt;br /&gt;
apt install g++&lt;br /&gt;
apt install cmake&lt;br /&gt;
apt install unzip&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Some users have reported the need for slightly different commands.  In some cases, they needed to install &amp;lt;code&amp;gt;sudo&amp;lt;/code&amp;gt; which was needed to run &amp;lt;code&amp;gt;cmake&amp;lt;/code&amp;gt;.  If &amp;lt;code&amp;gt;apt install&amp;lt;/code&amp;gt; does not work, you make need to use &amp;lt;code&amp;gt;apt-get install&amp;lt;/code&amp;gt;.  If the build fails, you may also need to run&amp;lt;code&amp;gt;apt install build-essential&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Setup the Project ==&lt;br /&gt;
Unzip your CinC project in your user home (or other) directory.  This will create a subdirectory called &amp;lt;code&amp;gt;cinc-2.2.3&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
From the wsl prompt, the command might look something like this:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
username@MachineName:~$ unzip /mnt/c/users/username/downloads/RobotModelProject_face3_cinc_&amp;lt;timestamp&amp;gt;.zip&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Build CinC ==&lt;br /&gt;
Return to the main cinc folder &amp;lt;code&amp;gt;cinc-2.2.3&amp;lt;/code&amp;gt; and run the following commands:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cmake .&lt;br /&gt;
make&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Configure the Logger ==&lt;br /&gt;
Although you can run your application at this point, it will produce no visible output.  &lt;br /&gt;
&lt;br /&gt;
Edit &amp;lt;code&amp;gt;Test_System/Config/Robot_Demo/TSS/TSS_TATS.xml&amp;lt;/code&amp;gt; file.&lt;br /&gt;
&lt;br /&gt;
Find the &amp;lt;code&amp;gt;logging_config&amp;lt;/code&amp;gt; section of the config.  If it does not exist, add it as the first block inside the &#039;cinc&#039; configuration.  The final result should look something like the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;cinc&amp;gt;&lt;br /&gt;
    &amp;lt;logging_config&amp;gt;&lt;br /&gt;
        ...&lt;br /&gt;
        &amp;lt;logger type=&#039;uop&#039; level=&#039;info&#039; show_source=&#039;true&#039; /&amp;gt;&lt;br /&gt;
    &amp;lt;/logging_config&amp;gt;&lt;br /&gt;
    ...&lt;br /&gt;
&amp;lt;/cinc&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Where &#039;...&#039; represents other data that may be present.&lt;br /&gt;
&lt;br /&gt;
== Run CinC == &lt;br /&gt;
From the &amp;lt;code&amp;gt;cinc-2.2.3&amp;lt;/code&amp;gt; directory, start your application using:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
./Test_System/Mains/Robot_Demo/Robot_Demo&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
PHENOM has created a &#039;&#039;very basic&#039;&#039; implementation of each UoP.  Transmitted data is populated with a constant value (typically pi).  The logger indicated that information is being sent.  The receiving application decodes the data type and prints the received value.  If the application is printing out &amp;quot;3.14&amp;quot; along with some other information, it is working.&lt;/div&gt;</summary>
		<author><name>Chris</name></author>
	</entry>
	<entry>
		<id>https://kb.phenomportal.com/index.php?title=Integrate_Applications_with_PHENOM_%26_CinC&amp;diff=1566</id>
		<title>Integrate Applications with PHENOM &amp; CinC</title>
		<link rel="alternate" type="text/html" href="https://kb.phenomportal.com/index.php?title=Integrate_Applications_with_PHENOM_%26_CinC&amp;diff=1566"/>
		<updated>2026-01-20T19:28:20Z</updated>

		<summary type="html">&lt;p&gt;Chris: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This tutorial will walk a user through the compilation and execution of a CinC-based application.  It builds upon other tutorials in PHENOM.  As such, it uses the same principles as [[Integration Model to CinC Generation]], but the content is different.&lt;br /&gt;
&lt;br /&gt;
{{Info|heading=Windows Subsystem for Linux | 1=This tutorial is written to use Windows Subsystem for Linux (WSL 2) with a Ubuntu distribution.}}&lt;br /&gt;
&lt;br /&gt;
==Preparing PHENOM==&lt;br /&gt;
In this tutorial, you will integrate two software applications, enabling them to communicate with each other.  For the sake of simplicity, they will be integrated into a single executable.  This will allow you to see the result of the integration by running a single file.  This tutorial uses the Integration Model as shown in a previous tutorial.&lt;br /&gt;
&lt;br /&gt;
Start by downloading this data model: [{{filepath:Robot_model_with_integration_model.skayl}} Download Robot_model_with_integration_model.skayl file]&lt;br /&gt;
&lt;br /&gt;
{{Info|heading=Skayl File | 1=The FACE Technical Standard only defines the elements of an integration model.  The details of each element are left to integrators.  As a result, such details are not effectively stored in a .face model.  A .skayl file is provided here to maintain this information.}}&lt;br /&gt;
&lt;br /&gt;
Load this model into a new project in PHENOM.  If you need help loading the project file, please view this tutorial: [[Creating a Project from an Existing Model]].&lt;br /&gt;
&lt;br /&gt;
== Export a CinC Package ==&lt;br /&gt;
In PHENOM, click on the GENERATE icon in the vertical bar on the left-hand side of the screen.&lt;br /&gt;
&lt;br /&gt;
[[File:Phenom navigation bar 4.png|thumb|none]]&lt;br /&gt;
&lt;br /&gt;
Select the CINC tab.&lt;br /&gt;
&lt;br /&gt;
[[File:generate_menu_cinc_selected.png|thumb|none]]&lt;br /&gt;
&lt;br /&gt;
Please make the following choices:&lt;br /&gt;
* &#039;&#039;&#039;CinC Artifact&#039;&#039;&#039; CinC&lt;br /&gt;
* &#039;&#039;&#039;CinC Version&#039;&#039;&#039; CinC 2.2.3 (note, other versions may work, this was tested with v2.2.3 and v2.3.1)&lt;br /&gt;
* &#039;&#039;&#039;FACE Version&#039;&#039;&#039; 3.0&lt;br /&gt;
* &#039;&#039;&#039;Language&#039;&#039;&#039; c++&lt;br /&gt;
* &#039;&#039;&#039;Override namespaces?&#039;&#039;&#039; Not Selected&lt;br /&gt;
* &#039;&#039;&#039;System Directory&#039;&#039;&#039; Test_System&lt;br /&gt;
* &#039;&#039;&#039;Include CinC Source?&#039;&#039;&#039; Selected&lt;br /&gt;
* &#039;&#039;&#039;Include Model files?&#039;&#039;&#039; Selected&lt;br /&gt;
* &#039;&#039;&#039;Selection Type&#039;&#039;&#039; Mains and UoPs&lt;br /&gt;
&lt;br /&gt;
There is a prompt to &#039;&#039;&#039;Select your Mains and UoPs&#039;&#039;&#039;.  Since the project was setup to have both applications in a single executable, both UoPs are listed under a single main.  Ensure all three elements are selected, like this:&lt;br /&gt;
&lt;br /&gt;
[[File:generate_cinc_select_mains_and_uops.png|thumb|none]]&lt;br /&gt;
&lt;br /&gt;
Next, select a license.  For this tutorial, you should choose &#039;&#039;&#039;Evaluation&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
And finally, click &#039;&#039;&#039;GENERATE&#039;&#039;&#039;.  PHENOM will start creating your source package and your browser will automatically download it once complete.&lt;br /&gt;
&lt;br /&gt;
== Prepare the Environment ==&lt;br /&gt;
In your Windows user folder (typically C:\Users\&amp;lt;username&amp;gt;), create (or edit) the &amp;lt;code&amp;gt;.wslconfig&amp;lt;/code&amp;gt; file.&lt;br /&gt;
&lt;br /&gt;
Make sure the file contains the following entries:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[wsl2]&lt;br /&gt;
networkingMode=mirrored&lt;br /&gt;
&lt;br /&gt;
[experimental]&lt;br /&gt;
hostAddressLoopback=true&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Start your WSL instance, and ensure the proper packages are installed:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt update&lt;br /&gt;
&lt;br /&gt;
apt install make&lt;br /&gt;
apt install g++&lt;br /&gt;
apt install cmake&lt;br /&gt;
apt install unzip&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Setup the Project ==&lt;br /&gt;
Unzip your CinC project in your user home (or other) directory.  This will create a subdirectory called &amp;lt;code&amp;gt;cinc-2.2.3&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
From the wsl prompt, the command might look something like this:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
username@MachineName:~$ unzip /mnt/c/users/username/downloads/RobotModelProject_face3_cinc_&amp;lt;timestamp&amp;gt;.zip&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Build CinC ==&lt;br /&gt;
Return to the main cinc folder &amp;lt;code&amp;gt;cinc-2.2.3&amp;lt;/code&amp;gt; and run the following commands:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cmake .&lt;br /&gt;
make&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Configure the Logger ==&lt;br /&gt;
Although you can run your application at this point, it will produce no visible output.  &lt;br /&gt;
&lt;br /&gt;
Edit &amp;lt;code&amp;gt;Test_System/Config/Robot_Demo/TSS/TSS_TATS.xml&amp;lt;/code&amp;gt; file.&lt;br /&gt;
&lt;br /&gt;
Find the &amp;lt;code&amp;gt;logging_config&amp;lt;/code&amp;gt; section of the config.  If it does not exist, add it as the first block inside the &#039;cinc&#039; configuration.  The final result should look something like the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;cinc&amp;gt;&lt;br /&gt;
    &amp;lt;logging_config&amp;gt;&lt;br /&gt;
        ...&lt;br /&gt;
        &amp;lt;logger type=&#039;uop&#039; level=&#039;info&#039; show_source=&#039;true&#039; /&amp;gt;&lt;br /&gt;
    &amp;lt;/logging_config&amp;gt;&lt;br /&gt;
    ...&lt;br /&gt;
&amp;lt;/cinc&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Where &#039;...&#039; represents other data that may be present.&lt;br /&gt;
&lt;br /&gt;
== Run CinC == &lt;br /&gt;
From the &amp;lt;code&amp;gt;cinc-2.2.3&amp;lt;/code&amp;gt; directory, start your application using:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
./Test_System/Mains/Robot_Demo/Robot_Demo&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
PHENOM has created a &#039;&#039;very basic&#039;&#039; implementation of each UoP.  Transmitted data is populated with a constant value (typically pi).  The logger indicated that information is being sent.  The receiving application decodes the data type and prints the received value.  If the application is printing out &amp;quot;3.14&amp;quot; along with some other information, it is working.&lt;/div&gt;</summary>
		<author><name>Chris</name></author>
	</entry>
	<entry>
		<id>https://kb.phenomportal.com/index.php?title=Integrate_Applications_with_PHENOM_%26_CinC&amp;diff=1565</id>
		<title>Integrate Applications with PHENOM &amp; CinC</title>
		<link rel="alternate" type="text/html" href="https://kb.phenomportal.com/index.php?title=Integrate_Applications_with_PHENOM_%26_CinC&amp;diff=1565"/>
		<updated>2026-01-20T19:27:03Z</updated>

		<summary type="html">&lt;p&gt;Chris: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This tutorial will walk a user through the compilation and execution of a CinC-based application.  It builds upon other tutorials in PHENOM.  As such, it uses the same principles as [[Integration Model to CinC Generation]], but the content is different.&lt;br /&gt;
&lt;br /&gt;
{{Info|heading=Windows Subsystem for Linux | 1=This tutorial is written to use Windows Subsystem for Linux (WSL 2) with a Ubuntu distribution.}}&lt;br /&gt;
&lt;br /&gt;
==Preparing PHENOM==&lt;br /&gt;
In this tutorial, you will integrate two software applications, enabling them to communicate with each other.  For the sake of simplicity, they will be integrated into a single executable.  This will allow you to see the result of the integration by running a single file.  This tutorial uses the Integration Model as shown in a previous tutorial.&lt;br /&gt;
&lt;br /&gt;
Start by downloading this data model: [[File:robot_model_with_integration_model.skayl]]&lt;br /&gt;
&lt;br /&gt;
{{Info|heading=Skayl File | 1=The FACE Technical Standard only defines the elements of an integration model.  The details of each element are left to integrators.  As a result, such details are not effectively stored in a .face model.  A .skayl file is provided here to maintain this information.}}&lt;br /&gt;
&lt;br /&gt;
Load this model into a new project in PHENOM.  If you need help loading the project file, please view this tutorial: [[Creating a Project from an Existing Model]].&lt;br /&gt;
&lt;br /&gt;
2.&lt;br /&gt;
[{{filepath:Robot_model_with_integration_model.skayl}} Download the .skayl file]&lt;br /&gt;
&lt;br /&gt;
3.&lt;br /&gt;
[[Special:FilePath/Robot_model_with_integration_model.skayl|Download the .skayl file]]&lt;br /&gt;
&lt;br /&gt;
== Export a CinC Package ==&lt;br /&gt;
In PHENOM, click on the GENERATE icon in the vertical bar on the left-hand side of the screen.&lt;br /&gt;
&lt;br /&gt;
[[File:Phenom navigation bar 4.png|thumb|none]]&lt;br /&gt;
&lt;br /&gt;
Select the CINC tab.&lt;br /&gt;
&lt;br /&gt;
[[File:generate_menu_cinc_selected.png|thumb|none]]&lt;br /&gt;
&lt;br /&gt;
Please make the following choices:&lt;br /&gt;
* &#039;&#039;&#039;CinC Artifact&#039;&#039;&#039; CinC&lt;br /&gt;
* &#039;&#039;&#039;CinC Version&#039;&#039;&#039; CinC 2.2.3 (note, other versions may work, this was tested with v2.2.3 and v2.3.1)&lt;br /&gt;
* &#039;&#039;&#039;FACE Version&#039;&#039;&#039; 3.0&lt;br /&gt;
* &#039;&#039;&#039;Language&#039;&#039;&#039; c++&lt;br /&gt;
* &#039;&#039;&#039;Override namespaces?&#039;&#039;&#039; Not Selected&lt;br /&gt;
* &#039;&#039;&#039;System Directory&#039;&#039;&#039; Test_System&lt;br /&gt;
* &#039;&#039;&#039;Include CinC Source?&#039;&#039;&#039; Selected&lt;br /&gt;
* &#039;&#039;&#039;Include Model files?&#039;&#039;&#039; Selected&lt;br /&gt;
* &#039;&#039;&#039;Selection Type&#039;&#039;&#039; Mains and UoPs&lt;br /&gt;
&lt;br /&gt;
There is a prompt to &#039;&#039;&#039;Select your Mains and UoPs&#039;&#039;&#039;.  Since the project was setup to have both applications in a single executable, both UoPs are listed under a single main.  Ensure all three elements are selected, like this:&lt;br /&gt;
&lt;br /&gt;
[[File:generate_cinc_select_mains_and_uops.png|thumb|none]]&lt;br /&gt;
&lt;br /&gt;
Next, select a license.  For this tutorial, you should choose &#039;&#039;&#039;Evaluation&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
And finally, click &#039;&#039;&#039;GENERATE&#039;&#039;&#039;.  PHENOM will start creating your source package and your browser will automatically download it once complete.&lt;br /&gt;
&lt;br /&gt;
== Prepare the Environment ==&lt;br /&gt;
In your Windows user folder (typically C:\Users\&amp;lt;username&amp;gt;), create (or edit) the &amp;lt;code&amp;gt;.wslconfig&amp;lt;/code&amp;gt; file.&lt;br /&gt;
&lt;br /&gt;
Make sure the file contains the following entries:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[wsl2]&lt;br /&gt;
networkingMode=mirrored&lt;br /&gt;
&lt;br /&gt;
[experimental]&lt;br /&gt;
hostAddressLoopback=true&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Start your WSL instance, and ensure the proper packages are installed:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt update&lt;br /&gt;
&lt;br /&gt;
apt install make&lt;br /&gt;
apt install g++&lt;br /&gt;
apt install cmake&lt;br /&gt;
apt install unzip&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Setup the Project ==&lt;br /&gt;
Unzip your CinC project in your user home (or other) directory.  This will create a subdirectory called &amp;lt;code&amp;gt;cinc-2.2.3&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
From the wsl prompt, the command might look something like this:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
username@MachineName:~$ unzip /mnt/c/users/username/downloads/RobotModelProject_face3_cinc_&amp;lt;timestamp&amp;gt;.zip&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Build CinC ==&lt;br /&gt;
Return to the main cinc folder &amp;lt;code&amp;gt;cinc-2.2.3&amp;lt;/code&amp;gt; and run the following commands:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cmake .&lt;br /&gt;
make&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Configure the Logger ==&lt;br /&gt;
Although you can run your application at this point, it will produce no visible output.  &lt;br /&gt;
&lt;br /&gt;
Edit &amp;lt;code&amp;gt;Test_System/Config/Robot_Demo/TSS/TSS_TATS.xml&amp;lt;/code&amp;gt; file.&lt;br /&gt;
&lt;br /&gt;
Find the &amp;lt;code&amp;gt;logging_config&amp;lt;/code&amp;gt; section of the config.  If it does not exist, add it as the first block inside the &#039;cinc&#039; configuration.  The final result should look something like the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;cinc&amp;gt;&lt;br /&gt;
    &amp;lt;logging_config&amp;gt;&lt;br /&gt;
        ...&lt;br /&gt;
        &amp;lt;logger type=&#039;uop&#039; level=&#039;info&#039; show_source=&#039;true&#039; /&amp;gt;&lt;br /&gt;
    &amp;lt;/logging_config&amp;gt;&lt;br /&gt;
    ...&lt;br /&gt;
&amp;lt;/cinc&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Where &#039;...&#039; represents other data that may be present.&lt;br /&gt;
&lt;br /&gt;
== Run CinC == &lt;br /&gt;
From the &amp;lt;code&amp;gt;cinc-2.2.3&amp;lt;/code&amp;gt; directory, start your application using:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
./Test_System/Mains/Robot_Demo/Robot_Demo&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
PHENOM has created a &#039;&#039;very basic&#039;&#039; implementation of each UoP.  Transmitted data is populated with a constant value (typically pi).  The logger indicated that information is being sent.  The receiving application decodes the data type and prints the received value.  If the application is printing out &amp;quot;3.14&amp;quot; along with some other information, it is working.&lt;/div&gt;</summary>
		<author><name>Chris</name></author>
	</entry>
	<entry>
		<id>https://kb.phenomportal.com/index.php?title=Integrate_Applications_with_PHENOM_%26_CinC&amp;diff=1564</id>
		<title>Integrate Applications with PHENOM &amp; CinC</title>
		<link rel="alternate" type="text/html" href="https://kb.phenomportal.com/index.php?title=Integrate_Applications_with_PHENOM_%26_CinC&amp;diff=1564"/>
		<updated>2026-01-20T19:20:10Z</updated>

		<summary type="html">&lt;p&gt;Chris: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This tutorial will walk a user through the compilation and execution of a CinC-based application.  It builds upon other tutorials in PHENOM.  As such, it uses the same principles as [[Integration Model to CinC Generation]], but the content is different.&lt;br /&gt;
&lt;br /&gt;
{{Info|heading=Windows Subsystem for Linux | 1=This tutorial is written to use Windows Subsystem for Linux (WSL 2) with a Ubuntu distribution.}}&lt;br /&gt;
&lt;br /&gt;
==Preparing PHENOM==&lt;br /&gt;
In this tutorial, you will integrate two software applications, enabling them to communicate with each other.  For the sake of simplicity, they will be integrated into a single executable.  This will allow you to see the result of the integration by running a single file.  This tutorial uses the Integration Model as shown in a previous tutorial.&lt;br /&gt;
&lt;br /&gt;
Start by downloading this data model: [[File:robot_model_with_integration_model.skayl]]&lt;br /&gt;
&lt;br /&gt;
{{Info|heading=Skayl File | 1=The FACE Technical Standard only defines the elements of an integration model.  The details of each element are left to integrators.  As a result, such details are not effectively stored in a .face model.  A .skayl file is provided here to maintain this information.}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Load this model into a new project in PHENOM.  If you need help loading the project file, please view this tutorial: [[Creating a Project from an Existing Model]].&lt;br /&gt;
&lt;br /&gt;
== Export a CinC Package ==&lt;br /&gt;
In PHENOM, click on the GENERATE icon in the vertical bar on the left-hand side of the screen.&lt;br /&gt;
&lt;br /&gt;
[[File:Phenom navigation bar 4.png|thumb|none]]&lt;br /&gt;
&lt;br /&gt;
Select the CINC tab.&lt;br /&gt;
&lt;br /&gt;
[[File:generate_menu_cinc_selected.png|thumb|none]]&lt;br /&gt;
&lt;br /&gt;
Please make the following choices:&lt;br /&gt;
* &#039;&#039;&#039;CinC Artifact&#039;&#039;&#039; CinC&lt;br /&gt;
* &#039;&#039;&#039;CinC Version&#039;&#039;&#039; CinC 2.2.3 (note, other versions may work, this was tested with v2.2.3 and v2.3.1)&lt;br /&gt;
* &#039;&#039;&#039;FACE Version&#039;&#039;&#039; 3.0&lt;br /&gt;
* &#039;&#039;&#039;Language&#039;&#039;&#039; c++&lt;br /&gt;
* &#039;&#039;&#039;Override namespaces?&#039;&#039;&#039; Not Selected&lt;br /&gt;
* &#039;&#039;&#039;System Directory&#039;&#039;&#039; Test_System&lt;br /&gt;
* &#039;&#039;&#039;Include CinC Source?&#039;&#039;&#039; Selected&lt;br /&gt;
* &#039;&#039;&#039;Include Model files?&#039;&#039;&#039; Selected&lt;br /&gt;
* &#039;&#039;&#039;Selection Type&#039;&#039;&#039; Mains and UoPs&lt;br /&gt;
&lt;br /&gt;
There is a prompt to &#039;&#039;&#039;Select your Mains and UoPs&#039;&#039;&#039;.  Since the project was setup to have both applications in a single executable, both UoPs are listed under a single main.  Ensure all three elements are selected, like this:&lt;br /&gt;
&lt;br /&gt;
[[File:generate_cinc_select_mains_and_uops.png|thumb|none]]&lt;br /&gt;
&lt;br /&gt;
Next, select a license.  For this tutorial, you should choose &#039;&#039;&#039;Evaluation&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
And finally, click &#039;&#039;&#039;GENERATE&#039;&#039;&#039;.  PHENOM will start creating your source package and your browser will automatically download it once complete.&lt;br /&gt;
&lt;br /&gt;
== Prepare the Environment ==&lt;br /&gt;
In your Windows user folder (typically C:\Users\&amp;lt;username&amp;gt;), create (or edit) the &amp;lt;code&amp;gt;.wslconfig&amp;lt;/code&amp;gt; file.&lt;br /&gt;
&lt;br /&gt;
Make sure the file contains the following entries:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[wsl2]&lt;br /&gt;
networkingMode=mirrored&lt;br /&gt;
&lt;br /&gt;
[experimental]&lt;br /&gt;
hostAddressLoopback=true&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Start your WSL instance, and ensure the proper packages are installed:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt update&lt;br /&gt;
&lt;br /&gt;
apt install make&lt;br /&gt;
apt install g++&lt;br /&gt;
apt install cmake&lt;br /&gt;
apt install unzip&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Setup the Project ==&lt;br /&gt;
Unzip your CinC project in your user home (or other) directory.  This will create a subdirectory called &amp;lt;code&amp;gt;cinc-2.2.3&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
From the wsl prompt, the command might look something like this:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
username@MachineName:~$ unzip /mnt/c/users/username/downloads/RobotModelProject_face3_cinc_&amp;lt;timestamp&amp;gt;.zip&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Build CinC ==&lt;br /&gt;
Return to the main cinc folder &amp;lt;code&amp;gt;cinc-2.2.3&amp;lt;/code&amp;gt; and run the following commands:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cmake .&lt;br /&gt;
make&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Configure the Logger ==&lt;br /&gt;
Although you can run your application at this point, it will produce no visible output.  &lt;br /&gt;
&lt;br /&gt;
Edit &amp;lt;code&amp;gt;Test_System/Config/Robot_Demo/TSS/TSS_TATS.xml&amp;lt;/code&amp;gt; file.&lt;br /&gt;
&lt;br /&gt;
Find the &amp;lt;code&amp;gt;logging_config&amp;lt;/code&amp;gt; section of the config.  If it does not exist, add it as the first block inside the &#039;cinc&#039; configuration.  The final result should look something like the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;cinc&amp;gt;&lt;br /&gt;
    &amp;lt;logging_config&amp;gt;&lt;br /&gt;
        ...&lt;br /&gt;
        &amp;lt;logger type=&#039;uop&#039; level=&#039;info&#039; show_source=&#039;true&#039; /&amp;gt;&lt;br /&gt;
    &amp;lt;/logging_config&amp;gt;&lt;br /&gt;
    ...&lt;br /&gt;
&amp;lt;/cinc&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Where &#039;...&#039; represents other data that may be present.&lt;br /&gt;
&lt;br /&gt;
== Run CinC == &lt;br /&gt;
From the &amp;lt;code&amp;gt;cinc-2.2.3&amp;lt;/code&amp;gt; directory, start your application using:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
./Test_System/Mains/Robot_Demo/Robot_Demo&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
PHENOM has created a &#039;&#039;very basic&#039;&#039; implementation of each UoP.  Transmitted data is populated with a constant value (typically pi).  The logger indicated that information is being sent.  The receiving application decodes the data type and prints the received value.  If the application is printing out &amp;quot;3.14&amp;quot; along with some other information, it is working.&lt;/div&gt;</summary>
		<author><name>Chris</name></author>
	</entry>
	<entry>
		<id>https://kb.phenomportal.com/index.php?title=Integrate_Applications_with_PHENOM_%26_CinC&amp;diff=1563</id>
		<title>Integrate Applications with PHENOM &amp; CinC</title>
		<link rel="alternate" type="text/html" href="https://kb.phenomportal.com/index.php?title=Integrate_Applications_with_PHENOM_%26_CinC&amp;diff=1563"/>
		<updated>2026-01-19T22:04:13Z</updated>

		<summary type="html">&lt;p&gt;Chris: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This tutorial will walk a user through the compilation and execution of a CinC-based application.  It builds upon other tutorials in PHENOM.  As such, it uses the same principles as [[Integration Model to CinC Generation]], but the content is different.&lt;br /&gt;
&lt;br /&gt;
{{Info|heading=Windows Subsystem for Linux | 1=This tutorial is written to use Windows Subsystem for Linux (WSL 2) with a Ubuntu distribution.}}&lt;br /&gt;
&lt;br /&gt;
==Preparing PHENOM==&lt;br /&gt;
In this tutorial, you will integrate two software applications, enabling them to communicate with each other.  For the sake of simplicity, they will be integrated into a single executable.  This will allow you to see the result of the integration by running a single file.  This tutorial uses the Integration Model as shown in a previous tutorial.&lt;br /&gt;
&lt;br /&gt;
Start by downloading this data model: [[File:robot_model_with_integration_model.skayl]]&lt;br /&gt;
&lt;br /&gt;
{{Info|heading=Skayl File | 1=The FACE Technical Standard only defines the elements of an integration model.  The details of each element are left to integrators.  As a result, such details are not effectively stored in a .face model.  A .skayl file is provided here to maintain this information.}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Load this model into a new project in PHENOM.  If you need help loading the project file, please view this tutorial: [[Creating a Project from an Existing Model]].&lt;br /&gt;
&lt;br /&gt;
== Export a CinC Package ==&lt;br /&gt;
In PHENOM, click on the GENERATE icon in the vertical bar on the left-hand side of the screen.&lt;br /&gt;
&lt;br /&gt;
[[File:Phenom navigation bar 4.png|thumb|none]]&lt;br /&gt;
&lt;br /&gt;
Select the CINC tab.&lt;br /&gt;
&lt;br /&gt;
[[File:generate_menu_cinc_selected.png|thumb|none]]&lt;br /&gt;
&lt;br /&gt;
Please make the following choices:&lt;br /&gt;
* &#039;&#039;&#039;CinC Artifact&#039;&#039;&#039; CinC&lt;br /&gt;
* &#039;&#039;&#039;CinC Version&#039;&#039;&#039; CinC 2.2.3 (note, other versions may work, this was tested with v2.2.3)&lt;br /&gt;
* &#039;&#039;&#039;FACE Version&#039;&#039;&#039; 3.0&lt;br /&gt;
* &#039;&#039;&#039;Language&#039;&#039;&#039; c++&lt;br /&gt;
* &#039;&#039;&#039;Override namespaces?&#039;&#039;&#039; Not Selected&lt;br /&gt;
* &#039;&#039;&#039;System Directory&#039;&#039;&#039; Test_System&lt;br /&gt;
* &#039;&#039;&#039;Include CinC Source?&#039;&#039;&#039; Selected&lt;br /&gt;
* &#039;&#039;&#039;Include Model files?&#039;&#039;&#039; Selected&lt;br /&gt;
* &#039;&#039;&#039;Selection Type&#039;&#039;&#039; Mains and UoPs&lt;br /&gt;
&lt;br /&gt;
There is a prompt to &#039;&#039;&#039;Select your Mains and UoPs&#039;&#039;&#039;.  Since the project was setup to have both applications in a single executable, both UoPs are listed under a single main.  Ensure all three elements are selected, like this:&lt;br /&gt;
&lt;br /&gt;
[[File:generate_cinc_select_mains_and_uops.png|thumb|none]]&lt;br /&gt;
&lt;br /&gt;
Next, select a license.  For this tutorial, you should choose &#039;&#039;&#039;Evaluation&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
And finally, click &#039;&#039;&#039;GENERATE&#039;&#039;&#039;.  PHENOM will start creating your source package and your browser will automatically download it once complete.&lt;br /&gt;
&lt;br /&gt;
== Prepare the Environment ==&lt;br /&gt;
In your Windows user folder (typically C:\Users\&amp;lt;username&amp;gt;), create (or edit) the &amp;lt;code&amp;gt;.wslconfig&amp;lt;/code&amp;gt; file.&lt;br /&gt;
&lt;br /&gt;
Make sure the file contains the following entries:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[wsl2]&lt;br /&gt;
networkingMode=mirrored&lt;br /&gt;
&lt;br /&gt;
[experimental]&lt;br /&gt;
hostAddressLoopback=true&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Start your WSL instance, and ensure the proper packages are installed:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt update&lt;br /&gt;
&lt;br /&gt;
apt install make&lt;br /&gt;
apt install g++&lt;br /&gt;
apt install cmake&lt;br /&gt;
apt install unzip&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Setup the Project ==&lt;br /&gt;
Unzip your CinC project in your user home (or other) directory.  This will create a subdirectory called &amp;lt;code&amp;gt;cinc-2.2.3&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
From the wsl prompt, the command might look something like this:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
username@MachineName:~$ unzip /mnt/c/users/username/downloads/RobotModelProject_face3_cinc_&amp;lt;timestamp&amp;gt;.zip&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Build CinC ==&lt;br /&gt;
Return to the main cinc folder &amp;lt;code&amp;gt;cinc-2.2.3&amp;lt;/code&amp;gt; and run the following commands:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cmake .&lt;br /&gt;
make&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Configure the Logger ==&lt;br /&gt;
Although you can run your application at this point, it will produce no visible output.  &lt;br /&gt;
&lt;br /&gt;
Edit &amp;lt;code&amp;gt;Test_System/Config/Robot_Demo/TSS/TSS_TATS.xml&amp;lt;/code&amp;gt; file.&lt;br /&gt;
&lt;br /&gt;
Find the &amp;lt;code&amp;gt;logging_config&amp;lt;/code&amp;gt; section of the config.  If it does not exist, add it as the first block inside the &#039;cinc&#039; configuration.  The final result should look something like the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;cinc&amp;gt;&lt;br /&gt;
    &amp;lt;logging_config&amp;gt;&lt;br /&gt;
        ...&lt;br /&gt;
        &amp;lt;logger type=&#039;uop&#039; level=&#039;info&#039; show_source=&#039;true&#039; /&amp;gt;&lt;br /&gt;
    &amp;lt;/logging_config&amp;gt;&lt;br /&gt;
    ...&lt;br /&gt;
&amp;lt;/cinc&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Where &#039;...&#039; represents other data that may be present.&lt;br /&gt;
&lt;br /&gt;
== Run CinC == &lt;br /&gt;
From the &amp;lt;code&amp;gt;cinc-2.2.3&amp;lt;/code&amp;gt; directory, start your application using:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
./Test_System/Mains/Robot_Demo/Robot_Demo&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
PHENOM has created a &#039;&#039;very basic&#039;&#039; implementation of each UoP.  Transmitted data is populated with a constant value (typically pi).  The logger indicated that information is being sent.  The receiving application decodes the data type and prints the received value.  If the application is printing out &amp;quot;3.14&amp;quot; along with some other information, it is working.&lt;/div&gt;</summary>
		<author><name>Chris</name></author>
	</entry>
	<entry>
		<id>https://kb.phenomportal.com/index.php?title=File:Robot_model_with_integration_model.skayl&amp;diff=1562</id>
		<title>File:Robot model with integration model.skayl</title>
		<link rel="alternate" type="text/html" href="https://kb.phenomportal.com/index.php?title=File:Robot_model_with_integration_model.skayl&amp;diff=1562"/>
		<updated>2026-01-19T22:02:44Z</updated>

		<summary type="html">&lt;p&gt;Chris: Chris uploaded a new version of File:Robot model with integration model.skayl&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Chris</name></author>
	</entry>
	<entry>
		<id>https://kb.phenomportal.com/index.php?title=Integrate_Applications_with_PHENOM_%26_CinC&amp;diff=1561</id>
		<title>Integrate Applications with PHENOM &amp; CinC</title>
		<link rel="alternate" type="text/html" href="https://kb.phenomportal.com/index.php?title=Integrate_Applications_with_PHENOM_%26_CinC&amp;diff=1561"/>
		<updated>2026-01-19T21:47:52Z</updated>

		<summary type="html">&lt;p&gt;Chris: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;DRAFT DRAFT DRAFT&#039;&#039;&#039;&lt;br /&gt;
This page has not yet been tested.&lt;br /&gt;
&lt;br /&gt;
This tutorial will walk a user through the compilation and execution of a CinC-based application.  It builds upon other tutorials in PHENOM.  As such, it uses the same principles as [[Integration Model to CinC Generation]], but the content is different.&lt;br /&gt;
&lt;br /&gt;
{{Info|heading=Windows Subsystem for Linux | 1=This tutorial is written to use Windows Subsystem for Linux (WSL 2) with a Ubuntu distribution.}}&lt;br /&gt;
&lt;br /&gt;
==Preparing PHENOM==&lt;br /&gt;
In this tutorial, you will integrate two software applications, enabling them to communicate with each other.  For the sake of simplicity, they will be integrated into a single executable.  This will allow you to see the result of the integration by running a single file.  This tutorial uses the Integration Model as shown in a previous tutorial.&lt;br /&gt;
&lt;br /&gt;
Start by downloading this data model: [[File:robot_model_with_integration_model.skayl]]&lt;br /&gt;
&lt;br /&gt;
{{Info|heading=Skayl File | 1=The FACE Technical Standard only defines the elements of an integration model.  The details of each element are left to integrators.  As a result, such details are not effectively stored in a .face model.  A .skayl file is provided here to maintain this information.}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Load this model into a new project in PHENOM.  If you need help loading the project file, please view this tutorial: [[Creating a Project from an Existing Model]].&lt;br /&gt;
&lt;br /&gt;
== Export a CinC Package ==&lt;br /&gt;
In PHENOM, click on the GENERATE icon in the vertical bar on the left-hand side of the screen.&lt;br /&gt;
&lt;br /&gt;
[[File:Phenom navigation bar 4.png|thumb|none]]&lt;br /&gt;
&lt;br /&gt;
Select the CINC tab.&lt;br /&gt;
&lt;br /&gt;
[[File:generate_menu_cinc_selected.png|thumb|none]]&lt;br /&gt;
&lt;br /&gt;
Please make the following choices:&lt;br /&gt;
* &#039;&#039;&#039;CinC Artifact&#039;&#039;&#039; CinC&lt;br /&gt;
* &#039;&#039;&#039;CinC Version&#039;&#039;&#039; CinC 2.2.3 (note, other versions may work, this was tested with v2.2.3)&lt;br /&gt;
* &#039;&#039;&#039;FACE Version&#039;&#039;&#039; 3.0&lt;br /&gt;
* &#039;&#039;&#039;Language&#039;&#039;&#039; c++&lt;br /&gt;
* &#039;&#039;&#039;Override namespaces?&#039;&#039;&#039; Not Selected&lt;br /&gt;
* &#039;&#039;&#039;System Directory&#039;&#039;&#039; Test_System&lt;br /&gt;
* &#039;&#039;&#039;Include CinC Source?&#039;&#039;&#039; Selected&lt;br /&gt;
* &#039;&#039;&#039;Include Model files?&#039;&#039;&#039; Selected&lt;br /&gt;
* &#039;&#039;&#039;Selection Type&#039;&#039;&#039; Mains and UoPs&lt;br /&gt;
&lt;br /&gt;
There is a prompt to &#039;&#039;&#039;Select your Mains and UoPs&#039;&#039;&#039;.  Since the project was setup to have both applications in a single executable, both UoPs are listed under a single main.  Ensure all three elements are selected, like this:&lt;br /&gt;
&lt;br /&gt;
[[File:generate_cinc_select_mains_and_uops.png|thumb|none]]&lt;br /&gt;
&lt;br /&gt;
Next, select a license.  For this tutorial, you should choose &#039;&#039;&#039;Evaluation&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
And finally, click &#039;&#039;&#039;GENERATE&#039;&#039;&#039;.  PHENOM will start creating your source package and your browser will automatically download it once complete.&lt;br /&gt;
&lt;br /&gt;
== Prepare the Environment ==&lt;br /&gt;
In your Windows user folder (typically C:\Users\&amp;lt;username&amp;gt;), create (or edit) the &amp;lt;code&amp;gt;.wslconfig&amp;lt;/code&amp;gt; file.&lt;br /&gt;
&lt;br /&gt;
Make sure the file contains the following entries:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[wsl2]&lt;br /&gt;
networkingMode=mirrored&lt;br /&gt;
&lt;br /&gt;
[experimental]&lt;br /&gt;
hostAddressLoopback=true&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Start your WSL instance, and ensure the proper packages are installed:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt update&lt;br /&gt;
&lt;br /&gt;
apt install make&lt;br /&gt;
apt install g++&lt;br /&gt;
apt install cmake&lt;br /&gt;
apt install unzip&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Setup the Project ==&lt;br /&gt;
Unzip your CinC project in your user home (or other) directory.  This will create a subdirectory called &amp;lt;code&amp;gt;cinc-2.2.3&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
From the wsl prompt, the command might look something like this:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
username@MachineName:~$ unzip /mnt/c/users/username/downloads/RobotModelProject_face3_cinc_&amp;lt;timestamp&amp;gt;.zip&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Build CinC ==&lt;br /&gt;
Return to the main cinc folder &amp;lt;code&amp;gt;cin-2.2.3&amp;lt;/code&amp;gt; and run the following commands:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cmake .&lt;br /&gt;
make&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Configure the Logger ==&lt;br /&gt;
Although you can run your application at this point, it will produce no visible output.  &lt;br /&gt;
&lt;br /&gt;
Edit &amp;lt;code&amp;gt;Test_System/Config/Robot_Demo/TSS/TSS_TATS.xml&amp;lt;/code&amp;gt; file.&lt;br /&gt;
&lt;br /&gt;
Find the &amp;lt;code&amp;gt;logging_config&amp;lt;/code&amp;gt; section of the config.  If it does not exist, add it as the first block inside the &#039;cinc&#039; configuration.  The final result should look something like the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;cinc&amp;gt;&lt;br /&gt;
    &amp;lt;logging_config&amp;gt;&lt;br /&gt;
        ...&lt;br /&gt;
        &amp;lt;logger type=&#039;uop&#039; level=&#039;info&#039; show_source=&#039;true&#039; /&amp;gt;&lt;br /&gt;
    &amp;lt;/logging_config&amp;gt;&lt;br /&gt;
    ...&lt;br /&gt;
&amp;lt;/cinc&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Where &#039;...&#039; represents other data that may be present.&lt;br /&gt;
&lt;br /&gt;
== Run CinC == &lt;br /&gt;
From the &amp;lt;code&amp;gt;cinc-2.2.3&amp;lt;/code&amp;gt; directory, start your application using:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
./Test_System/Mains/Robot_Demo/Robot_Demo&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
PHENOM has created a &#039;&#039;very basic&#039;&#039; implementation of each UoP.  Transmitted data is populated with a constant value (typically pi).  The logger indicated that information is being sent.  The receiving application decodes the data type and prints the received value.  If the application is printing out &amp;quot;3.14&amp;quot; along with some other information, it is working.&lt;/div&gt;</summary>
		<author><name>Chris</name></author>
	</entry>
	<entry>
		<id>https://kb.phenomportal.com/index.php?title=Integrate_Applications_with_PHENOM_%26_CinC&amp;diff=1560</id>
		<title>Integrate Applications with PHENOM &amp; CinC</title>
		<link rel="alternate" type="text/html" href="https://kb.phenomportal.com/index.php?title=Integrate_Applications_with_PHENOM_%26_CinC&amp;diff=1560"/>
		<updated>2026-01-19T20:14:28Z</updated>

		<summary type="html">&lt;p&gt;Chris: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;DRAFT DRAFT DRAFT&#039;&#039;&#039;&lt;br /&gt;
This page has not yet been tested.&lt;br /&gt;
&lt;br /&gt;
This tutorial will walk a user through the compilation and execution of a CinC-based application.  It builds upon other tutorials in PHENOM.  As such, it uses the same principles as [[Integration Model to CinC Generation]], but the content is different.&lt;br /&gt;
&lt;br /&gt;
{{Info|heading=Windows Subsystem for Linux | 1=This tutorial is written to use Windows Subsystem for Linux (WSL 2) with a Ubuntu distribution.}}&lt;br /&gt;
&lt;br /&gt;
==Preparing PHENOM==&lt;br /&gt;
In this tutorial, you will integrate two software applications, enabling them to communicate with each other.  For the sake of simplicity, they will be integrated into a single executable.  This will allow you to see the result of the integration by running a single file.  This tutorial uses the Integration Model as shown in a previous tutorial.&lt;br /&gt;
&lt;br /&gt;
Start by downloading this data model: [[File:robot_model_with_integration_model.skayl]]&lt;br /&gt;
&lt;br /&gt;
{{Info|heading=Skayl File | 1=The FACE Technical Standard only defines the elements of an integration model.  The details of each element are left to integrators.  As a result, such details are not effectively stored in a .face model.  A .skayl file is provided here to maintain this information.}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Load this model into a new project in PHENOM.  If you need help loading the project file, please view this tutorial: [[Creating a Project from an Existing Model]].&lt;br /&gt;
&lt;br /&gt;
== Export a CinC Package ==&lt;br /&gt;
In PHENOM, click on the GENERATE icon in the vertical bar on the left-hand side of the screen.&lt;br /&gt;
&lt;br /&gt;
[[File:Phenom navigation bar 4.png|thumb|none]]&lt;br /&gt;
&lt;br /&gt;
Select the CINC tab.&lt;br /&gt;
&lt;br /&gt;
[[File:generate_menu_cinc_selected.png|thumb|none]]&lt;br /&gt;
&lt;br /&gt;
Please make the following choices:&lt;br /&gt;
* &#039;&#039;&#039;CinC Artifact&#039;&#039;&#039; CinC&lt;br /&gt;
* &#039;&#039;&#039;CinC Version&#039;&#039;&#039; CinC 2.2.3 (note, other versions may work, this was tested with v2.2.3)&lt;br /&gt;
* &#039;&#039;&#039;FACE Version&#039;&#039;&#039; 3.0&lt;br /&gt;
* &#039;&#039;&#039;Language&#039;&#039;&#039; c++&lt;br /&gt;
* &#039;&#039;&#039;Override namespaces?&#039;&#039;&#039; Not Selected&lt;br /&gt;
* &#039;&#039;&#039;System Directory&#039;&#039;&#039; Test_System&lt;br /&gt;
* &#039;&#039;&#039;Include CinC Source?&#039;&#039;&#039; Selected&lt;br /&gt;
* &#039;&#039;&#039;Include Model files?&#039;&#039;&#039; Selected&lt;br /&gt;
* &#039;&#039;&#039;Selection Type&#039;&#039;&#039; Mains and UoPs&lt;br /&gt;
&lt;br /&gt;
There is a prompt to &#039;&#039;&#039;Select your Mains and UoPs&#039;&#039;&#039;.  Since the project was setup to have both applications in a single executable, both UoPs are listed under a single main.  Ensure all three elements are selected, like this:&lt;br /&gt;
&lt;br /&gt;
[[File:generate_cinc_select_mains_and_uops.png|thumb|none]]&lt;br /&gt;
&lt;br /&gt;
Next, select a license.  For this tutorial, you should choose &#039;&#039;&#039;Evaluation&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
And finally, click &#039;&#039;&#039;GENERATE&#039;&#039;&#039;.  PHENOM will start creating your source package and your browser will automatically download it once complete.&lt;br /&gt;
&lt;br /&gt;
== Prepare the Environment ==&lt;br /&gt;
In your Windows user folder (typically C:\Users\&amp;lt;username&amp;gt;), create (or edit) the &amp;lt;code&amp;gt;.wslconfig&amp;lt;/code&amp;gt; file.&lt;br /&gt;
&lt;br /&gt;
Make sure the file contains the following entries:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[wsl2]&lt;br /&gt;
networkingMode=mirrored&lt;br /&gt;
&lt;br /&gt;
[experimental]&lt;br /&gt;
hostAddressLoopback=true&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Start your WSL instance, and ensure the proper packages are installed:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt update&lt;br /&gt;
&lt;br /&gt;
apt install make&lt;br /&gt;
apt install g++&lt;br /&gt;
apt install cmake&lt;br /&gt;
apt install unzip&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Setup the Project ==&lt;br /&gt;
Unzip your CinC project in your user home (or other) directory.  This will create a subdirectory called &amp;lt;code&amp;gt;cinc-2.2.3&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
From the wsl prompt, the command might look something like this:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
username@MachineName:~$ unzip /mnt/c/users/username/downloads/RobotModelProject_face3_cinc_&amp;lt;timestamp&amp;gt;.zip&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If unzip is not installed, run &amp;lt;code&amp;gt;sudo apt install unzip&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Install Pthread4W (Pthreads for Windows) ==&lt;br /&gt;
Obtain a copy of Pthreads4W here: https://github.com/jwinarske/pthreads4w&lt;br /&gt;
&lt;br /&gt;
Unzip the pthreads file and copy the &amp;lt;code&amp;gt;pthreads4w-cmake&amp;lt;/code&amp;gt; directory into the &amp;lt;code&amp;gt;cinc-2.2.3&amp;lt;/code&amp;gt; directory.&lt;br /&gt;
&lt;br /&gt;
Ensure the tools to build pthreads are installed:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt install automake libtool mingw-w64&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then build pthreads from the pthreads folder:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
autoheader&lt;br /&gt;
autoconf&lt;br /&gt;
mkdir -p build-win64 &amp;amp;&amp;amp; cd build-win64&lt;br /&gt;
../configure --host=x86_64-w64-mingw32 --prefix=&amp;quot;$PWD/install&amp;quot;&lt;br /&gt;
make clean GC&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Build CinC ==&lt;br /&gt;
Return to the main cinc folder &amp;lt;code&amp;gt;cin-2.2.3&amp;lt;/code&amp;gt; and run the following commands:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cmake .&lt;br /&gt;
make&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Configure the Logger ==&lt;br /&gt;
Although you can run your application at this point, it will produce no visible output.  &lt;br /&gt;
&lt;br /&gt;
Edit &amp;lt;code&amp;gt;Test_System/Config/DemoMain/TSS/TSS_TATS.xml&amp;lt;/code&amp;gt; file.&lt;br /&gt;
&lt;br /&gt;
Find the &amp;lt;code&amp;gt;logging_config&amp;lt;/code&amp;gt; section of the config.  If it does not exist, add it as the first block inside the &#039;cinc&#039; configuration.  The final result should look something like the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;cinc&amp;gt;&lt;br /&gt;
    &amp;lt;logging_config&amp;gt;&lt;br /&gt;
        ...&lt;br /&gt;
        &amp;lt;logger type=&#039;uop&#039; level=&#039;info&#039; show_source=&#039;true&#039; /&amp;gt;&lt;br /&gt;
    &amp;lt;/logging_config&amp;gt;&lt;br /&gt;
    ...&lt;br /&gt;
&amp;lt;/cinc&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Where &#039;...&#039; represents other data that may be present.&lt;br /&gt;
&lt;br /&gt;
== Run CinC == &lt;br /&gt;
From the &amp;lt;code&amp;gt;cinc-2.2.3&amp;lt;/code&amp;gt; directory, start your application using:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
./Test_System/Mains/Robot_Demo/Robot_Demo&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
PHENOM has created a &#039;&#039;very basic&#039;&#039; implementation of each UoP.  Transmitted data is populated with a constant value (typically pi).  The logger indicated that information is being sent.  The receiving application decodes the data type and prints the received value.  If the application is printing out &amp;quot;3.14&amp;quot; along with some other information, it is working.&lt;/div&gt;</summary>
		<author><name>Chris</name></author>
	</entry>
	<entry>
		<id>https://kb.phenomportal.com/index.php?title=Integrate_Applications_with_PHENOM_%26_CinC&amp;diff=1559</id>
		<title>Integrate Applications with PHENOM &amp; CinC</title>
		<link rel="alternate" type="text/html" href="https://kb.phenomportal.com/index.php?title=Integrate_Applications_with_PHENOM_%26_CinC&amp;diff=1559"/>
		<updated>2026-01-19T20:13:00Z</updated>

		<summary type="html">&lt;p&gt;Chris: /* Prepare the Environment */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;DRAFT DRAFT DRAFT&#039;&#039;&#039;&lt;br /&gt;
This page has not yet been tested.&lt;br /&gt;
&lt;br /&gt;
This tutorial will walk a user through the compilation and execution of a CinC-based application.  It builds upon other tutorials in PHENOM.  As such, it uses the same principles as [[Integration Model to CinC Generation]], but the content is different.&lt;br /&gt;
&lt;br /&gt;
{{Info|heading=Windows Subsystem for Linux | 1=This tutorial is written to use Windows Subsystem for Linux (WSL 2) with a Ubuntu distribution.}}&lt;br /&gt;
&lt;br /&gt;
==Preparing PHENOM==&lt;br /&gt;
In this tutorial, you will integrate two software applications, enabling them to communicate with each other.  For the sake of simplicity, they will be integrated into a single executable.  This will allow you to see the result of the integration by running a single file.  This tutorial uses the Integration Model as shown in a previous tutorial.&lt;br /&gt;
&lt;br /&gt;
Start by downloading this data model: [[File:robot_model_with_integration_model.skayl]]&lt;br /&gt;
&lt;br /&gt;
{{Info|heading=Skayl File | 1=The FACE Technical Standard only defines the elements of an integration model.  The details of each element are left to integrators.  As a result, such details are not effectively stored in a .face model.  A .skayl file is provided here to maintain this information.}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Load this model into a new project in PHENOM.  If you need help loading the project file, please view this tutorial: [[Creating a Project from an Existing Model]].&lt;br /&gt;
&lt;br /&gt;
== Export a CinC Package ==&lt;br /&gt;
In PHENOM, click on the GENERATE icon in the vertical bar on the left-hand side of the screen.&lt;br /&gt;
&lt;br /&gt;
[[File:Phenom navigation bar 4.png|thumb|none]]&lt;br /&gt;
&lt;br /&gt;
Select the CINC tab.&lt;br /&gt;
&lt;br /&gt;
[[File:generate_menu_cinc_selected.png|thumb|none]]&lt;br /&gt;
&lt;br /&gt;
Please make the following choices:&lt;br /&gt;
* &#039;&#039;&#039;CinC Artifact&#039;&#039;&#039; CinC&lt;br /&gt;
* &#039;&#039;&#039;CinC Version&#039;&#039;&#039; CinC 2.2.3 (note, other versions may work, this was tested with v2.2.3)&lt;br /&gt;
* &#039;&#039;&#039;FACE Version&#039;&#039;&#039; 3.0&lt;br /&gt;
* &#039;&#039;&#039;Language&#039;&#039;&#039; c++&lt;br /&gt;
* &#039;&#039;&#039;Override namespaces?&#039;&#039;&#039; Not Selected&lt;br /&gt;
* &#039;&#039;&#039;System Directory&#039;&#039;&#039; Test_System&lt;br /&gt;
* &#039;&#039;&#039;Include CinC Source?&#039;&#039;&#039; Selected&lt;br /&gt;
* &#039;&#039;&#039;Include Model files?&#039;&#039;&#039; Selected&lt;br /&gt;
* &#039;&#039;&#039;Selection Type&#039;&#039;&#039; Mains and UoPs&lt;br /&gt;
&lt;br /&gt;
There is a prompt to &#039;&#039;&#039;Select your Mains and UoPs&#039;&#039;&#039;.  Since the project was setup to have both applications in a single executable, both UoPs are listed under a single main.  Ensure all three elements are selected, like this:&lt;br /&gt;
&lt;br /&gt;
[[File:generate_cinc_select_mains_and_uops.png|thumb|none]]&lt;br /&gt;
&lt;br /&gt;
Next, select a license.  For this tutorial, you should choose &#039;&#039;&#039;Evaluation&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
And finally, click &#039;&#039;&#039;GENERATE&#039;&#039;&#039;.  PHENOM will start creating your source package and your browser will automatically download it once complete.&lt;br /&gt;
&lt;br /&gt;
== Prepare the Environment ==&lt;br /&gt;
In your Windows user folder (typically C:\Users\&amp;lt;username&amp;gt;), create (or edit) the &amp;lt;code&amp;gt;.wslconfig&amp;lt;/code&amp;gt; file.&lt;br /&gt;
&lt;br /&gt;
Make sure the file contains the following entries:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[wsl2]&lt;br /&gt;
networkingMode=mirrored&lt;br /&gt;
&lt;br /&gt;
[experimental]&lt;br /&gt;
hostAddressLoopback=true&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Start your WSL instance, and ensure the proper packages are installed:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt update&lt;br /&gt;
&lt;br /&gt;
apt install make&lt;br /&gt;
apt install g++&lt;br /&gt;
apt install cmake&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Setup the Project ==&lt;br /&gt;
Unzip your CinC project in your user home (or other) directory.  This will create a subdirectory called &amp;lt;code&amp;gt;cinc-2.2.3&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
From the wsl prompt, the command might look something like this:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
username@MachineName:~$ unzip /mnt/c/users/username/downloads/RobotModelProject_face3_cinc_&amp;lt;timestamp&amp;gt;.zip&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If unzip is not installed, run &amp;lt;code&amp;gt;sudo apt install unzip&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Install Pthread4W (Pthreads for Windows) ==&lt;br /&gt;
Obtain a copy of Pthreads4W here: https://github.com/jwinarske/pthreads4w&lt;br /&gt;
&lt;br /&gt;
Unzip the pthreads file and copy the &amp;lt;code&amp;gt;pthreads4w-cmake&amp;lt;/code&amp;gt; directory into the &amp;lt;code&amp;gt;cinc-2.2.3&amp;lt;/code&amp;gt; directory.&lt;br /&gt;
&lt;br /&gt;
Ensure the tools to build pthreads are installed:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt install automake libtool mingw-w64&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then build pthreads from the pthreads folder:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
autoheader&lt;br /&gt;
autoconf&lt;br /&gt;
mkdir -p build-win64 &amp;amp;&amp;amp; cd build-win64&lt;br /&gt;
../configure --host=x86_64-w64-mingw32 --prefix=&amp;quot;$PWD/install&amp;quot;&lt;br /&gt;
make clean GC&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Build CinC ==&lt;br /&gt;
Return to the main cinc folder &amp;lt;code&amp;gt;cin-2.2.3&amp;lt;/code&amp;gt; and run the following commands:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cmake .&lt;br /&gt;
make&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Configure the Logger ==&lt;br /&gt;
Although you can run your application at this point, it will produce no visible output.  &lt;br /&gt;
&lt;br /&gt;
Edit &amp;lt;code&amp;gt;Test_System/Config/DemoMain/TSS/TSS_TATS.xml&amp;lt;/code&amp;gt; file.&lt;br /&gt;
&lt;br /&gt;
Find the &amp;lt;code&amp;gt;logging_config&amp;lt;/code&amp;gt; section of the config.  If it does not exist, add it as the first block inside the &#039;cinc&#039; configuration.  The final result should look something like the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;cinc&amp;gt;&lt;br /&gt;
    &amp;lt;logging_config&amp;gt;&lt;br /&gt;
        ...&lt;br /&gt;
        &amp;lt;logger type=&#039;uop&#039; level=&#039;info&#039; show_source=&#039;true&#039; /&amp;gt;&lt;br /&gt;
    &amp;lt;/logging_config&amp;gt;&lt;br /&gt;
    ...&lt;br /&gt;
&amp;lt;/cinc&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Where &#039;...&#039; represents other data that may be present.&lt;br /&gt;
&lt;br /&gt;
== Run CinC == &lt;br /&gt;
From the &amp;lt;code&amp;gt;cinc-2.2.3&amp;lt;/code&amp;gt; directory, start your application using:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
./Test_System/Mains/Robot_Demo/Robot_Demo&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
PHENOM has created a &#039;&#039;very basic&#039;&#039; implementation of each UoP.  Transmitted data is populated with a constant value (typically pi).  The logger indicated that information is being sent.  The receiving application decodes the data type and prints the received value.  If the application is printing out &amp;quot;3.14&amp;quot; along with some other information, it is working.&lt;/div&gt;</summary>
		<author><name>Chris</name></author>
	</entry>
	<entry>
		<id>https://kb.phenomportal.com/index.php?title=File:Generate_cinc_select_mains_and_uops.png&amp;diff=1558</id>
		<title>File:Generate cinc select mains and uops.png</title>
		<link rel="alternate" type="text/html" href="https://kb.phenomportal.com/index.php?title=File:Generate_cinc_select_mains_and_uops.png&amp;diff=1558"/>
		<updated>2026-01-19T19:47:06Z</updated>

		<summary type="html">&lt;p&gt;Chris: Chris uploaded a new version of File:Generate cinc select mains and uops.png&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Chris</name></author>
	</entry>
	<entry>
		<id>https://kb.phenomportal.com/index.php?title=Integrate_Applications_with_PHENOM_%26_CinC&amp;diff=1557</id>
		<title>Integrate Applications with PHENOM &amp; CinC</title>
		<link rel="alternate" type="text/html" href="https://kb.phenomportal.com/index.php?title=Integrate_Applications_with_PHENOM_%26_CinC&amp;diff=1557"/>
		<updated>2026-01-19T19:46:43Z</updated>

		<summary type="html">&lt;p&gt;Chris: /* Export a CinC Package */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;DRAFT DRAFT DRAFT&#039;&#039;&#039;&lt;br /&gt;
This page has not yet been tested.&lt;br /&gt;
&lt;br /&gt;
This tutorial will walk a user through the compilation and execution of a CinC-based application.  It builds upon other tutorials in PHENOM.  As such, it uses the same principles as [[Integration Model to CinC Generation]], but the content is different.&lt;br /&gt;
&lt;br /&gt;
{{Info|heading=Windows Subsystem for Linux | 1=This tutorial is written to use Windows Subsystem for Linux (WSL 2) with a Ubuntu distribution.}}&lt;br /&gt;
&lt;br /&gt;
==Preparing PHENOM==&lt;br /&gt;
In this tutorial, you will integrate two software applications, enabling them to communicate with each other.  For the sake of simplicity, they will be integrated into a single executable.  This will allow you to see the result of the integration by running a single file.  This tutorial uses the Integration Model as shown in a previous tutorial.&lt;br /&gt;
&lt;br /&gt;
Start by downloading this data model: [[File:robot_model_with_integration_model.skayl]]&lt;br /&gt;
&lt;br /&gt;
{{Info|heading=Skayl File | 1=The FACE Technical Standard only defines the elements of an integration model.  The details of each element are left to integrators.  As a result, such details are not effectively stored in a .face model.  A .skayl file is provided here to maintain this information.}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Load this model into a new project in PHENOM.  If you need help loading the project file, please view this tutorial: [[Creating a Project from an Existing Model]].&lt;br /&gt;
&lt;br /&gt;
== Export a CinC Package ==&lt;br /&gt;
In PHENOM, click on the GENERATE icon in the vertical bar on the left-hand side of the screen.&lt;br /&gt;
&lt;br /&gt;
[[File:Phenom navigation bar 4.png|thumb|none]]&lt;br /&gt;
&lt;br /&gt;
Select the CINC tab.&lt;br /&gt;
&lt;br /&gt;
[[File:generate_menu_cinc_selected.png|thumb|none]]&lt;br /&gt;
&lt;br /&gt;
Please make the following choices:&lt;br /&gt;
* &#039;&#039;&#039;CinC Artifact&#039;&#039;&#039; CinC&lt;br /&gt;
* &#039;&#039;&#039;CinC Version&#039;&#039;&#039; CinC 2.2.3 (note, other versions may work, this was tested with v2.2.3)&lt;br /&gt;
* &#039;&#039;&#039;FACE Version&#039;&#039;&#039; 3.0&lt;br /&gt;
* &#039;&#039;&#039;Language&#039;&#039;&#039; c++&lt;br /&gt;
* &#039;&#039;&#039;Override namespaces?&#039;&#039;&#039; Not Selected&lt;br /&gt;
* &#039;&#039;&#039;System Directory&#039;&#039;&#039; Test_System&lt;br /&gt;
* &#039;&#039;&#039;Include CinC Source?&#039;&#039;&#039; Selected&lt;br /&gt;
* &#039;&#039;&#039;Include Model files?&#039;&#039;&#039; Selected&lt;br /&gt;
* &#039;&#039;&#039;Selection Type&#039;&#039;&#039; Mains and UoPs&lt;br /&gt;
&lt;br /&gt;
There is a prompt to &#039;&#039;&#039;Select your Mains and UoPs&#039;&#039;&#039;.  Since the project was setup to have both applications in a single executable, both UoPs are listed under a single main.  Ensure all three elements are selected, like this:&lt;br /&gt;
&lt;br /&gt;
[[File:generate_cinc_select_mains_and_uops.png|thumb|none]]&lt;br /&gt;
&lt;br /&gt;
Next, select a license.  For this tutorial, you should choose &#039;&#039;&#039;Evaluation&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
And finally, click &#039;&#039;&#039;GENERATE&#039;&#039;&#039;.  PHENOM will start creating your source package and your browser will automatically download it once complete.&lt;br /&gt;
&lt;br /&gt;
== Prepare the Environment ==&lt;br /&gt;
In your Windows user folder (typically C:\Users\&amp;lt;username&amp;gt;), create (or edit) the &amp;lt;code&amp;gt;.wslconfig&amp;lt;/code&amp;gt; file.&lt;br /&gt;
&lt;br /&gt;
Make sure the file contains the following entries:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[wsl2]&lt;br /&gt;
networkingMode=mirrored&lt;br /&gt;
&lt;br /&gt;
[experimental]&lt;br /&gt;
hostAddressLoopback=true&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Start your WSL instance, and ensure the proper packages are installed:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt install make&lt;br /&gt;
apt install g++&lt;br /&gt;
apt install cmake&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Setup the Project ==&lt;br /&gt;
Unzip your CinC project in your user home (or other) directory.  This will create a subdirectory called &amp;lt;code&amp;gt;cinc-2.2.3&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
From the wsl prompt, the command might look something like this:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
username@MachineName:~$ unzip /mnt/c/users/username/downloads/RobotModelProject_face3_cinc_&amp;lt;timestamp&amp;gt;.zip&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If unzip is not installed, run &amp;lt;code&amp;gt;sudo apt install unzip&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Install Pthread4W (Pthreads for Windows) ==&lt;br /&gt;
Obtain a copy of Pthreads4W here: https://github.com/jwinarske/pthreads4w&lt;br /&gt;
&lt;br /&gt;
Unzip the pthreads file and copy the &amp;lt;code&amp;gt;pthreads4w-cmake&amp;lt;/code&amp;gt; directory into the &amp;lt;code&amp;gt;cinc-2.2.3&amp;lt;/code&amp;gt; directory.&lt;br /&gt;
&lt;br /&gt;
Ensure the tools to build pthreads are installed:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt install automake libtool mingw-w64&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then build pthreads from the pthreads folder:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
autoheader&lt;br /&gt;
autoconf&lt;br /&gt;
mkdir -p build-win64 &amp;amp;&amp;amp; cd build-win64&lt;br /&gt;
../configure --host=x86_64-w64-mingw32 --prefix=&amp;quot;$PWD/install&amp;quot;&lt;br /&gt;
make clean GC&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Build CinC ==&lt;br /&gt;
Return to the main cinc folder &amp;lt;code&amp;gt;cin-2.2.3&amp;lt;/code&amp;gt; and run the following commands:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cmake .&lt;br /&gt;
make&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Configure the Logger ==&lt;br /&gt;
Although you can run your application at this point, it will produce no visible output.  &lt;br /&gt;
&lt;br /&gt;
Edit &amp;lt;code&amp;gt;Test_System/Config/DemoMain/TSS/TSS_TATS.xml&amp;lt;/code&amp;gt; file.&lt;br /&gt;
&lt;br /&gt;
Find the &amp;lt;code&amp;gt;logging_config&amp;lt;/code&amp;gt; section of the config.  If it does not exist, add it as the first block inside the &#039;cinc&#039; configuration.  The final result should look something like the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;cinc&amp;gt;&lt;br /&gt;
    &amp;lt;logging_config&amp;gt;&lt;br /&gt;
        ...&lt;br /&gt;
        &amp;lt;logger type=&#039;uop&#039; level=&#039;info&#039; show_source=&#039;true&#039; /&amp;gt;&lt;br /&gt;
    &amp;lt;/logging_config&amp;gt;&lt;br /&gt;
    ...&lt;br /&gt;
&amp;lt;/cinc&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Where &#039;...&#039; represents other data that may be present.&lt;br /&gt;
&lt;br /&gt;
== Run CinC == &lt;br /&gt;
From the &amp;lt;code&amp;gt;cinc-2.2.3&amp;lt;/code&amp;gt; directory, start your application using:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
./Test_System/Mains/Robot_Demo/Robot_Demo&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
PHENOM has created a &#039;&#039;very basic&#039;&#039; implementation of each UoP.  Transmitted data is populated with a constant value (typically pi).  The logger indicated that information is being sent.  The receiving application decodes the data type and prints the received value.  If the application is printing out &amp;quot;3.14&amp;quot; along with some other information, it is working.&lt;/div&gt;</summary>
		<author><name>Chris</name></author>
	</entry>
	<entry>
		<id>https://kb.phenomportal.com/index.php?title=Integrate_Applications_with_PHENOM_%26_CinC&amp;diff=1556</id>
		<title>Integrate Applications with PHENOM &amp; CinC</title>
		<link rel="alternate" type="text/html" href="https://kb.phenomportal.com/index.php?title=Integrate_Applications_with_PHENOM_%26_CinC&amp;diff=1556"/>
		<updated>2026-01-19T19:41:25Z</updated>

		<summary type="html">&lt;p&gt;Chris: /* Preparing PHENOM */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;DRAFT DRAFT DRAFT&#039;&#039;&#039;&lt;br /&gt;
This page has not yet been tested.&lt;br /&gt;
&lt;br /&gt;
This tutorial will walk a user through the compilation and execution of a CinC-based application.  It builds upon other tutorials in PHENOM.  As such, it uses the same principles as [[Integration Model to CinC Generation]], but the content is different.&lt;br /&gt;
&lt;br /&gt;
{{Info|heading=Windows Subsystem for Linux | 1=This tutorial is written to use Windows Subsystem for Linux (WSL 2) with a Ubuntu distribution.}}&lt;br /&gt;
&lt;br /&gt;
==Preparing PHENOM==&lt;br /&gt;
In this tutorial, you will integrate two software applications, enabling them to communicate with each other.  For the sake of simplicity, they will be integrated into a single executable.  This will allow you to see the result of the integration by running a single file.  This tutorial uses the Integration Model as shown in a previous tutorial.&lt;br /&gt;
&lt;br /&gt;
Start by downloading this data model: [[File:robot_model_with_integration_model.skayl]]&lt;br /&gt;
&lt;br /&gt;
{{Info|heading=Skayl File | 1=The FACE Technical Standard only defines the elements of an integration model.  The details of each element are left to integrators.  As a result, such details are not effectively stored in a .face model.  A .skayl file is provided here to maintain this information.}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Load this model into a new project in PHENOM.  If you need help loading the project file, please view this tutorial: [[Creating a Project from an Existing Model]].&lt;br /&gt;
&lt;br /&gt;
== Export a CinC Package ==&lt;br /&gt;
Log into PHENOM and click on the GENERATE icon in the vertical bar on the left-hand side of the screen.&lt;br /&gt;
&lt;br /&gt;
[[File:Phenom navigation bar 4.png|thumb|none]]&lt;br /&gt;
&lt;br /&gt;
Select the CINC tab.&lt;br /&gt;
&lt;br /&gt;
[[File:generate_menu_cinc_selected.png|thumb|none]]&lt;br /&gt;
&lt;br /&gt;
Please make the following choices:&lt;br /&gt;
* &#039;&#039;&#039;CinC Artifact&#039;&#039;&#039; CinC&lt;br /&gt;
* &#039;&#039;&#039;CinC Version&#039;&#039;&#039; CinC 2.2.3 (note, other versions may work, this was tested with v2.2.3)&lt;br /&gt;
* &#039;&#039;&#039;FACE Version&#039;&#039;&#039; 3.0&lt;br /&gt;
* &#039;&#039;&#039;Language&#039;&#039;&#039; c++&lt;br /&gt;
* &#039;&#039;&#039;Override namespaces?&#039;&#039;&#039; Not Selected&lt;br /&gt;
* &#039;&#039;&#039;System Directory&#039;&#039;&#039; Test_System&lt;br /&gt;
* &#039;&#039;&#039;Include CinC Source?&#039;&#039;&#039; Selected&lt;br /&gt;
* &#039;&#039;&#039;Include Model files?&#039;&#039;&#039; Selected&lt;br /&gt;
* &#039;&#039;&#039;Selection Type&#039;&#039;&#039; Mains and UoPs&lt;br /&gt;
&lt;br /&gt;
There is a prompt to &#039;&#039;&#039;Select your Mains and UoPs&#039;&#039;&#039;.  Since the project was setup to have both applications in a single executable, both UoPs are listed under a single main.  Ensure all three elements are selected, like this:&lt;br /&gt;
&lt;br /&gt;
[[File:generate_cinc_select_mains_and_uops.png|thumb|none]]&lt;br /&gt;
&lt;br /&gt;
Next, select a license.  For this tutorial, you should choose &#039;&#039;&#039;Evaluation&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
And finally, click &#039;&#039;&#039;GENERATE&#039;&#039;&#039;.  PHENOM will start creating your source package and your browser will automatically download it once complete.&lt;br /&gt;
&lt;br /&gt;
== Prepare the Environment ==&lt;br /&gt;
In your Windows user folder (typically C:\Users\&amp;lt;username&amp;gt;), create (or edit) the &amp;lt;code&amp;gt;.wslconfig&amp;lt;/code&amp;gt; file.&lt;br /&gt;
&lt;br /&gt;
Make sure the file contains the following entries:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[wsl2]&lt;br /&gt;
networkingMode=mirrored&lt;br /&gt;
&lt;br /&gt;
[experimental]&lt;br /&gt;
hostAddressLoopback=true&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Start your WSL instance, and ensure the proper packages are installed:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt install make&lt;br /&gt;
apt install g++&lt;br /&gt;
apt install cmake&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Setup the Project ==&lt;br /&gt;
Unzip your CinC project in your user home (or other) directory.  This will create a subdirectory called &amp;lt;code&amp;gt;cinc-2.2.3&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
From the wsl prompt, the command might look something like this:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
username@MachineName:~$ unzip /mnt/c/users/username/downloads/RobotModelProject_face3_cinc_&amp;lt;timestamp&amp;gt;.zip&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If unzip is not installed, run &amp;lt;code&amp;gt;sudo apt install unzip&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Install Pthread4W (Pthreads for Windows) ==&lt;br /&gt;
Obtain a copy of Pthreads4W here: https://github.com/jwinarske/pthreads4w&lt;br /&gt;
&lt;br /&gt;
Unzip the pthreads file and copy the &amp;lt;code&amp;gt;pthreads4w-cmake&amp;lt;/code&amp;gt; directory into the &amp;lt;code&amp;gt;cinc-2.2.3&amp;lt;/code&amp;gt; directory.&lt;br /&gt;
&lt;br /&gt;
Ensure the tools to build pthreads are installed:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt install automake libtool mingw-w64&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then build pthreads from the pthreads folder:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
autoheader&lt;br /&gt;
autoconf&lt;br /&gt;
mkdir -p build-win64 &amp;amp;&amp;amp; cd build-win64&lt;br /&gt;
../configure --host=x86_64-w64-mingw32 --prefix=&amp;quot;$PWD/install&amp;quot;&lt;br /&gt;
make clean GC&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Build CinC ==&lt;br /&gt;
Return to the main cinc folder &amp;lt;code&amp;gt;cin-2.2.3&amp;lt;/code&amp;gt; and run the following commands:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cmake .&lt;br /&gt;
make&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Configure the Logger ==&lt;br /&gt;
Although you can run your application at this point, it will produce no visible output.  &lt;br /&gt;
&lt;br /&gt;
Edit &amp;lt;code&amp;gt;Test_System/Config/DemoMain/TSS/TSS_TATS.xml&amp;lt;/code&amp;gt; file.&lt;br /&gt;
&lt;br /&gt;
Find the &amp;lt;code&amp;gt;logging_config&amp;lt;/code&amp;gt; section of the config.  If it does not exist, add it as the first block inside the &#039;cinc&#039; configuration.  The final result should look something like the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;cinc&amp;gt;&lt;br /&gt;
    &amp;lt;logging_config&amp;gt;&lt;br /&gt;
        ...&lt;br /&gt;
        &amp;lt;logger type=&#039;uop&#039; level=&#039;info&#039; show_source=&#039;true&#039; /&amp;gt;&lt;br /&gt;
    &amp;lt;/logging_config&amp;gt;&lt;br /&gt;
    ...&lt;br /&gt;
&amp;lt;/cinc&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Where &#039;...&#039; represents other data that may be present.&lt;br /&gt;
&lt;br /&gt;
== Run CinC == &lt;br /&gt;
From the &amp;lt;code&amp;gt;cinc-2.2.3&amp;lt;/code&amp;gt; directory, start your application using:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
./Test_System/Mains/Robot_Demo/Robot_Demo&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
PHENOM has created a &#039;&#039;very basic&#039;&#039; implementation of each UoP.  Transmitted data is populated with a constant value (typically pi).  The logger indicated that information is being sent.  The receiving application decodes the data type and prints the received value.  If the application is printing out &amp;quot;3.14&amp;quot; along with some other information, it is working.&lt;/div&gt;</summary>
		<author><name>Chris</name></author>
	</entry>
	<entry>
		<id>https://kb.phenomportal.com/index.php?title=Integrate_Applications_with_PHENOM_%26_CinC&amp;diff=1555</id>
		<title>Integrate Applications with PHENOM &amp; CinC</title>
		<link rel="alternate" type="text/html" href="https://kb.phenomportal.com/index.php?title=Integrate_Applications_with_PHENOM_%26_CinC&amp;diff=1555"/>
		<updated>2026-01-19T19:40:48Z</updated>

		<summary type="html">&lt;p&gt;Chris: /* Preparing PHENOM */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;DRAFT DRAFT DRAFT&#039;&#039;&#039;&lt;br /&gt;
This page has not yet been tested.&lt;br /&gt;
&lt;br /&gt;
This tutorial will walk a user through the compilation and execution of a CinC-based application.  It builds upon other tutorials in PHENOM.  As such, it uses the same principles as [[Integration Model to CinC Generation]], but the content is different.&lt;br /&gt;
&lt;br /&gt;
{{Info|heading=Windows Subsystem for Linux | 1=This tutorial is written to use Windows Subsystem for Linux (WSL 2) with a Ubuntu distribution.}}&lt;br /&gt;
&lt;br /&gt;
==Preparing PHENOM==&lt;br /&gt;
In this tutorial, you will integrate two software applications, enabling them to communicate with each other.  For the sake of simplicity, they will be integrated into a single executable.  This will allow you to see the result of the integration by running a single file.  This tutorial uses the Integration Model as shown in a previous tutorial.&lt;br /&gt;
&lt;br /&gt;
Start by downloading this data model: [[File:robot_model_with_integration_model.skayl]]&lt;br /&gt;
&lt;br /&gt;
{{Info|heading=Skayl File | 1=The FACE Technical Standard only defines the elements of an integration model.  The details of each element are left to integrators.  As a result, such details are not effectively stored in a .face model.  A .skayl file is provided here to maintain this information.}}&lt;br /&gt;
&lt;br /&gt;
If you need help loading the project file, please view this tutorial: [[Creating a Project from an Existing Model]].&lt;br /&gt;
&lt;br /&gt;
== Export a CinC Package ==&lt;br /&gt;
Log into PHENOM and click on the GENERATE icon in the vertical bar on the left-hand side of the screen.&lt;br /&gt;
&lt;br /&gt;
[[File:Phenom navigation bar 4.png|thumb|none]]&lt;br /&gt;
&lt;br /&gt;
Select the CINC tab.&lt;br /&gt;
&lt;br /&gt;
[[File:generate_menu_cinc_selected.png|thumb|none]]&lt;br /&gt;
&lt;br /&gt;
Please make the following choices:&lt;br /&gt;
* &#039;&#039;&#039;CinC Artifact&#039;&#039;&#039; CinC&lt;br /&gt;
* &#039;&#039;&#039;CinC Version&#039;&#039;&#039; CinC 2.2.3 (note, other versions may work, this was tested with v2.2.3)&lt;br /&gt;
* &#039;&#039;&#039;FACE Version&#039;&#039;&#039; 3.0&lt;br /&gt;
* &#039;&#039;&#039;Language&#039;&#039;&#039; c++&lt;br /&gt;
* &#039;&#039;&#039;Override namespaces?&#039;&#039;&#039; Not Selected&lt;br /&gt;
* &#039;&#039;&#039;System Directory&#039;&#039;&#039; Test_System&lt;br /&gt;
* &#039;&#039;&#039;Include CinC Source?&#039;&#039;&#039; Selected&lt;br /&gt;
* &#039;&#039;&#039;Include Model files?&#039;&#039;&#039; Selected&lt;br /&gt;
* &#039;&#039;&#039;Selection Type&#039;&#039;&#039; Mains and UoPs&lt;br /&gt;
&lt;br /&gt;
There is a prompt to &#039;&#039;&#039;Select your Mains and UoPs&#039;&#039;&#039;.  Since the project was setup to have both applications in a single executable, both UoPs are listed under a single main.  Ensure all three elements are selected, like this:&lt;br /&gt;
&lt;br /&gt;
[[File:generate_cinc_select_mains_and_uops.png|thumb|none]]&lt;br /&gt;
&lt;br /&gt;
Next, select a license.  For this tutorial, you should choose &#039;&#039;&#039;Evaluation&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
And finally, click &#039;&#039;&#039;GENERATE&#039;&#039;&#039;.  PHENOM will start creating your source package and your browser will automatically download it once complete.&lt;br /&gt;
&lt;br /&gt;
== Prepare the Environment ==&lt;br /&gt;
In your Windows user folder (typically C:\Users\&amp;lt;username&amp;gt;), create (or edit) the &amp;lt;code&amp;gt;.wslconfig&amp;lt;/code&amp;gt; file.&lt;br /&gt;
&lt;br /&gt;
Make sure the file contains the following entries:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[wsl2]&lt;br /&gt;
networkingMode=mirrored&lt;br /&gt;
&lt;br /&gt;
[experimental]&lt;br /&gt;
hostAddressLoopback=true&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Start your WSL instance, and ensure the proper packages are installed:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt install make&lt;br /&gt;
apt install g++&lt;br /&gt;
apt install cmake&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Setup the Project ==&lt;br /&gt;
Unzip your CinC project in your user home (or other) directory.  This will create a subdirectory called &amp;lt;code&amp;gt;cinc-2.2.3&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
From the wsl prompt, the command might look something like this:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
username@MachineName:~$ unzip /mnt/c/users/username/downloads/RobotModelProject_face3_cinc_&amp;lt;timestamp&amp;gt;.zip&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If unzip is not installed, run &amp;lt;code&amp;gt;sudo apt install unzip&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Install Pthread4W (Pthreads for Windows) ==&lt;br /&gt;
Obtain a copy of Pthreads4W here: https://github.com/jwinarske/pthreads4w&lt;br /&gt;
&lt;br /&gt;
Unzip the pthreads file and copy the &amp;lt;code&amp;gt;pthreads4w-cmake&amp;lt;/code&amp;gt; directory into the &amp;lt;code&amp;gt;cinc-2.2.3&amp;lt;/code&amp;gt; directory.&lt;br /&gt;
&lt;br /&gt;
Ensure the tools to build pthreads are installed:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt install automake libtool mingw-w64&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then build pthreads from the pthreads folder:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
autoheader&lt;br /&gt;
autoconf&lt;br /&gt;
mkdir -p build-win64 &amp;amp;&amp;amp; cd build-win64&lt;br /&gt;
../configure --host=x86_64-w64-mingw32 --prefix=&amp;quot;$PWD/install&amp;quot;&lt;br /&gt;
make clean GC&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Build CinC ==&lt;br /&gt;
Return to the main cinc folder &amp;lt;code&amp;gt;cin-2.2.3&amp;lt;/code&amp;gt; and run the following commands:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cmake .&lt;br /&gt;
make&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Configure the Logger ==&lt;br /&gt;
Although you can run your application at this point, it will produce no visible output.  &lt;br /&gt;
&lt;br /&gt;
Edit &amp;lt;code&amp;gt;Test_System/Config/DemoMain/TSS/TSS_TATS.xml&amp;lt;/code&amp;gt; file.&lt;br /&gt;
&lt;br /&gt;
Find the &amp;lt;code&amp;gt;logging_config&amp;lt;/code&amp;gt; section of the config.  If it does not exist, add it as the first block inside the &#039;cinc&#039; configuration.  The final result should look something like the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;cinc&amp;gt;&lt;br /&gt;
    &amp;lt;logging_config&amp;gt;&lt;br /&gt;
        ...&lt;br /&gt;
        &amp;lt;logger type=&#039;uop&#039; level=&#039;info&#039; show_source=&#039;true&#039; /&amp;gt;&lt;br /&gt;
    &amp;lt;/logging_config&amp;gt;&lt;br /&gt;
    ...&lt;br /&gt;
&amp;lt;/cinc&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Where &#039;...&#039; represents other data that may be present.&lt;br /&gt;
&lt;br /&gt;
== Run CinC == &lt;br /&gt;
From the &amp;lt;code&amp;gt;cinc-2.2.3&amp;lt;/code&amp;gt; directory, start your application using:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
./Test_System/Mains/Robot_Demo/Robot_Demo&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
PHENOM has created a &#039;&#039;very basic&#039;&#039; implementation of each UoP.  Transmitted data is populated with a constant value (typically pi).  The logger indicated that information is being sent.  The receiving application decodes the data type and prints the received value.  If the application is printing out &amp;quot;3.14&amp;quot; along with some other information, it is working.&lt;/div&gt;</summary>
		<author><name>Chris</name></author>
	</entry>
	<entry>
		<id>https://kb.phenomportal.com/index.php?title=Integrate_Applications_with_PHENOM_%26_CinC&amp;diff=1554</id>
		<title>Integrate Applications with PHENOM &amp; CinC</title>
		<link rel="alternate" type="text/html" href="https://kb.phenomportal.com/index.php?title=Integrate_Applications_with_PHENOM_%26_CinC&amp;diff=1554"/>
		<updated>2026-01-16T19:25:32Z</updated>

		<summary type="html">&lt;p&gt;Chris: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;DRAFT DRAFT DRAFT&#039;&#039;&#039;&lt;br /&gt;
This page has not yet been tested.&lt;br /&gt;
&lt;br /&gt;
This tutorial will walk a user through the compilation and execution of a CinC-based application.  It builds upon other tutorials in PHENOM.  As such, it uses the same principles as [[Integration Model to CinC Generation]], but the content is different.&lt;br /&gt;
&lt;br /&gt;
{{Info|heading=Windows Subsystem for Linux | 1=This tutorial is written to use Windows Subsystem for Linux (WSL 2) with a Ubuntu distribution.}}&lt;br /&gt;
&lt;br /&gt;
==Preparing PHENOM==&lt;br /&gt;
In this tutorial, you will integrate two software applications.  For the sake of simplicity, they will be integrated into a single executable.  This will allow you to see the result of the integration by running a single file.  This tutorial uses the Integration Model as shown in a previous tutorial.&lt;br /&gt;
&lt;br /&gt;
Start by downloading this data model: [[File:robot_model_with_integration_model.skayl]]&lt;br /&gt;
&lt;br /&gt;
{{Info|heading=Skayl File | 1=The FACE Technical Standard only defines the elements of an integration model.  The details of each element are left to integrators.  As a result, such details are not effectively stored in a .face model.  A .skayl file is provided here to maintain this information.}}&lt;br /&gt;
&lt;br /&gt;
If you need help loading the project file, please view this tutorial: [[Creating a Project from an Existing Model]].&lt;br /&gt;
&lt;br /&gt;
== Export a CinC Package ==&lt;br /&gt;
Log into PHENOM and click on the GENERATE icon in the vertical bar on the left-hand side of the screen.&lt;br /&gt;
&lt;br /&gt;
[[File:Phenom navigation bar 4.png|thumb|none]]&lt;br /&gt;
&lt;br /&gt;
Select the CINC tab.&lt;br /&gt;
&lt;br /&gt;
[[File:generate_menu_cinc_selected.png|thumb|none]]&lt;br /&gt;
&lt;br /&gt;
Please make the following choices:&lt;br /&gt;
* &#039;&#039;&#039;CinC Artifact&#039;&#039;&#039; CinC&lt;br /&gt;
* &#039;&#039;&#039;CinC Version&#039;&#039;&#039; CinC 2.2.3 (note, other versions may work, this was tested with v2.2.3)&lt;br /&gt;
* &#039;&#039;&#039;FACE Version&#039;&#039;&#039; 3.0&lt;br /&gt;
* &#039;&#039;&#039;Language&#039;&#039;&#039; c++&lt;br /&gt;
* &#039;&#039;&#039;Override namespaces?&#039;&#039;&#039; Not Selected&lt;br /&gt;
* &#039;&#039;&#039;System Directory&#039;&#039;&#039; Test_System&lt;br /&gt;
* &#039;&#039;&#039;Include CinC Source?&#039;&#039;&#039; Selected&lt;br /&gt;
* &#039;&#039;&#039;Include Model files?&#039;&#039;&#039; Selected&lt;br /&gt;
* &#039;&#039;&#039;Selection Type&#039;&#039;&#039; Mains and UoPs&lt;br /&gt;
&lt;br /&gt;
There is a prompt to &#039;&#039;&#039;Select your Mains and UoPs&#039;&#039;&#039;.  Since the project was setup to have both applications in a single executable, both UoPs are listed under a single main.  Ensure all three elements are selected, like this:&lt;br /&gt;
&lt;br /&gt;
[[File:generate_cinc_select_mains_and_uops.png|thumb|none]]&lt;br /&gt;
&lt;br /&gt;
Next, select a license.  For this tutorial, you should choose &#039;&#039;&#039;Evaluation&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
And finally, click &#039;&#039;&#039;GENERATE&#039;&#039;&#039;.  PHENOM will start creating your source package and your browser will automatically download it once complete.&lt;br /&gt;
&lt;br /&gt;
== Prepare the Environment ==&lt;br /&gt;
In your Windows user folder (typically C:\Users\&amp;lt;username&amp;gt;), create (or edit) the &amp;lt;code&amp;gt;.wslconfig&amp;lt;/code&amp;gt; file.&lt;br /&gt;
&lt;br /&gt;
Make sure the file contains the following entries:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[wsl2]&lt;br /&gt;
networkingMode=mirrored&lt;br /&gt;
&lt;br /&gt;
[experimental]&lt;br /&gt;
hostAddressLoopback=true&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Start your WSL instance, and ensure the proper packages are installed:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt install make&lt;br /&gt;
apt install g++&lt;br /&gt;
apt install cmake&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Setup the Project ==&lt;br /&gt;
Unzip your CinC project in your user home (or other) directory.  This will create a subdirectory called &amp;lt;code&amp;gt;cinc-2.2.3&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
From the wsl prompt, the command might look something like this:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
username@MachineName:~$ unzip /mnt/c/users/username/downloads/RobotModelProject_face3_cinc_&amp;lt;timestamp&amp;gt;.zip&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If unzip is not installed, run &amp;lt;code&amp;gt;sudo apt install unzip&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Install Pthread4W (Pthreads for Windows) ==&lt;br /&gt;
Obtain a copy of Pthreads4W here: https://github.com/jwinarske/pthreads4w&lt;br /&gt;
&lt;br /&gt;
Unzip the pthreads file and copy the &amp;lt;code&amp;gt;pthreads4w-cmake&amp;lt;/code&amp;gt; directory into the &amp;lt;code&amp;gt;cinc-2.2.3&amp;lt;/code&amp;gt; directory.&lt;br /&gt;
&lt;br /&gt;
Ensure the tools to build pthreads are installed:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt install automake libtool mingw-w64&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then build pthreads from the pthreads folder:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
autoheader&lt;br /&gt;
autoconf&lt;br /&gt;
mkdir -p build-win64 &amp;amp;&amp;amp; cd build-win64&lt;br /&gt;
../configure --host=x86_64-w64-mingw32 --prefix=&amp;quot;$PWD/install&amp;quot;&lt;br /&gt;
make clean GC&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Build CinC ==&lt;br /&gt;
Return to the main cinc folder &amp;lt;code&amp;gt;cin-2.2.3&amp;lt;/code&amp;gt; and run the following commands:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cmake .&lt;br /&gt;
make&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Configure the Logger ==&lt;br /&gt;
Although you can run your application at this point, it will produce no visible output.  &lt;br /&gt;
&lt;br /&gt;
Edit &amp;lt;code&amp;gt;Test_System/Config/DemoMain/TSS/TSS_TATS.xml&amp;lt;/code&amp;gt; file.&lt;br /&gt;
&lt;br /&gt;
Find the &amp;lt;code&amp;gt;logging_config&amp;lt;/code&amp;gt; section of the config.  If it does not exist, add it as the first block inside the &#039;cinc&#039; configuration.  The final result should look something like the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;cinc&amp;gt;&lt;br /&gt;
    &amp;lt;logging_config&amp;gt;&lt;br /&gt;
        ...&lt;br /&gt;
        &amp;lt;logger type=&#039;uop&#039; level=&#039;info&#039; show_source=&#039;true&#039; /&amp;gt;&lt;br /&gt;
    &amp;lt;/logging_config&amp;gt;&lt;br /&gt;
    ...&lt;br /&gt;
&amp;lt;/cinc&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Where &#039;...&#039; represents other data that may be present.&lt;br /&gt;
&lt;br /&gt;
== Run CinC == &lt;br /&gt;
From the &amp;lt;code&amp;gt;cinc-2.2.3&amp;lt;/code&amp;gt; directory, start your application using:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
./Test_System/Mains/Robot_Demo/Robot_Demo&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
PHENOM has created a &#039;&#039;very basic&#039;&#039; implementation of each UoP.  Transmitted data is populated with a constant value (typically pi).  The logger indicated that information is being sent.  The receiving application decodes the data type and prints the received value.  If the application is printing out &amp;quot;3.14&amp;quot; along with some other information, it is working.&lt;/div&gt;</summary>
		<author><name>Chris</name></author>
	</entry>
	<entry>
		<id>https://kb.phenomportal.com/index.php?title=Integrate_Applications_with_PHENOM_%26_CinC&amp;diff=1553</id>
		<title>Integrate Applications with PHENOM &amp; CinC</title>
		<link rel="alternate" type="text/html" href="https://kb.phenomportal.com/index.php?title=Integrate_Applications_with_PHENOM_%26_CinC&amp;diff=1553"/>
		<updated>2026-01-16T19:24:57Z</updated>

		<summary type="html">&lt;p&gt;Chris: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This tutorial will walk a user through the compilation and execution of a CinC-based application.  It builds upon other tutorials in PHENOM.  As such, it uses the same principles as [[Integration Model to CinC Generation]], but the content is different.&lt;br /&gt;
&lt;br /&gt;
{{Info|heading=Windows Subsystem for Linux | 1=This tutorial is written to use Windows Subsystem for Linux (WSL 2) with a Ubuntu distribution.}}&lt;br /&gt;
&lt;br /&gt;
==Preparing PHENOM==&lt;br /&gt;
In this tutorial, you will integrate two software applications.  For the sake of simplicity, they will be integrated into a single executable.  This will allow you to see the result of the integration by running a single file.  This tutorial uses the Integration Model as shown in a previous tutorial.&lt;br /&gt;
&lt;br /&gt;
Start by downloading this data model: [[File:robot_model_with_integration_model.skayl]]&lt;br /&gt;
&lt;br /&gt;
{{Info|heading=Skayl File | 1=The FACE Technical Standard only defines the elements of an integration model.  The details of each element are left to integrators.  As a result, such details are not effectively stored in a .face model.  A .skayl file is provided here to maintain this information.}}&lt;br /&gt;
&lt;br /&gt;
If you need help loading the project file, please view this tutorial: [[Creating a Project from an Existing Model]].&lt;br /&gt;
&lt;br /&gt;
== Export a CinC Package ==&lt;br /&gt;
Log into PHENOM and click on the GENERATE icon in the vertical bar on the left-hand side of the screen.&lt;br /&gt;
&lt;br /&gt;
[[File:Phenom navigation bar 4.png|thumb|none]]&lt;br /&gt;
&lt;br /&gt;
Select the CINC tab.&lt;br /&gt;
&lt;br /&gt;
[[File:generate_menu_cinc_selected.png|thumb|none]]&lt;br /&gt;
&lt;br /&gt;
Please make the following choices:&lt;br /&gt;
* &#039;&#039;&#039;CinC Artifact&#039;&#039;&#039; CinC&lt;br /&gt;
* &#039;&#039;&#039;CinC Version&#039;&#039;&#039; CinC 2.2.3 (note, other versions may work, this was tested with v2.2.3)&lt;br /&gt;
* &#039;&#039;&#039;FACE Version&#039;&#039;&#039; 3.0&lt;br /&gt;
* &#039;&#039;&#039;Language&#039;&#039;&#039; c++&lt;br /&gt;
* &#039;&#039;&#039;Override namespaces?&#039;&#039;&#039; Not Selected&lt;br /&gt;
* &#039;&#039;&#039;System Directory&#039;&#039;&#039; Test_System&lt;br /&gt;
* &#039;&#039;&#039;Include CinC Source?&#039;&#039;&#039; Selected&lt;br /&gt;
* &#039;&#039;&#039;Include Model files?&#039;&#039;&#039; Selected&lt;br /&gt;
* &#039;&#039;&#039;Selection Type&#039;&#039;&#039; Mains and UoPs&lt;br /&gt;
&lt;br /&gt;
There is a prompt to &#039;&#039;&#039;Select your Mains and UoPs&#039;&#039;&#039;.  Since the project was setup to have both applications in a single executable, both UoPs are listed under a single main.  Ensure all three elements are selected, like this:&lt;br /&gt;
&lt;br /&gt;
[[File:generate_cinc_select_mains_and_uops.png|thumb|none]]&lt;br /&gt;
&lt;br /&gt;
Next, select a license.  For this tutorial, you should choose &#039;&#039;&#039;Evaluation&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
And finally, click &#039;&#039;&#039;GENERATE&#039;&#039;&#039;.  PHENOM will start creating your source package and your browser will automatically download it once complete.&lt;br /&gt;
&lt;br /&gt;
== Prepare the Environment ==&lt;br /&gt;
In your Windows user folder (typically C:\Users\&amp;lt;username&amp;gt;), create (or edit) the &amp;lt;code&amp;gt;.wslconfig&amp;lt;/code&amp;gt; file.&lt;br /&gt;
&lt;br /&gt;
Make sure the file contains the following entries:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[wsl2]&lt;br /&gt;
networkingMode=mirrored&lt;br /&gt;
&lt;br /&gt;
[experimental]&lt;br /&gt;
hostAddressLoopback=true&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Start your WSL instance, and ensure the proper packages are installed:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt install make&lt;br /&gt;
apt install g++&lt;br /&gt;
apt install cmake&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Setup the Project ==&lt;br /&gt;
Unzip your CinC project in your user home (or other) directory.  This will create a subdirectory called &amp;lt;code&amp;gt;cinc-2.2.3&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
From the wsl prompt, the command might look something like this:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
username@MachineName:~$ unzip /mnt/c/users/username/downloads/RobotModelProject_face3_cinc_&amp;lt;timestamp&amp;gt;.zip&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If unzip is not installed, run &amp;lt;code&amp;gt;sudo apt install unzip&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Install Pthread4W (Pthreads for Windows) ==&lt;br /&gt;
Obtain a copy of Pthreads4W here: https://github.com/jwinarske/pthreads4w&lt;br /&gt;
&lt;br /&gt;
Unzip the pthreads file and copy the &amp;lt;code&amp;gt;pthreads4w-cmake&amp;lt;/code&amp;gt; directory into the &amp;lt;code&amp;gt;cinc-2.2.3&amp;lt;/code&amp;gt; directory.&lt;br /&gt;
&lt;br /&gt;
Ensure the tools to build pthreads are installed:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt install automake libtool mingw-w64&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then build pthreads from the pthreads folder:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
autoheader&lt;br /&gt;
autoconf&lt;br /&gt;
mkdir -p build-win64 &amp;amp;&amp;amp; cd build-win64&lt;br /&gt;
../configure --host=x86_64-w64-mingw32 --prefix=&amp;quot;$PWD/install&amp;quot;&lt;br /&gt;
make clean GC&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Build CinC ==&lt;br /&gt;
Return to the main cinc folder &amp;lt;code&amp;gt;cin-2.2.3&amp;lt;/code&amp;gt; and run the following commands:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cmake .&lt;br /&gt;
make&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Configure the Logger ==&lt;br /&gt;
Although you can run your application at this point, it will produce no visible output.  &lt;br /&gt;
&lt;br /&gt;
Edit &amp;lt;code&amp;gt;Test_System/Config/DemoMain/TSS/TSS_TATS.xml&amp;lt;/code&amp;gt; file.&lt;br /&gt;
&lt;br /&gt;
Find the &amp;lt;code&amp;gt;logging_config&amp;lt;/code&amp;gt; section of the config.  If it does not exist, add it as the first block inside the &#039;cinc&#039; configuration.  The final result should look something like the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;cinc&amp;gt;&lt;br /&gt;
    &amp;lt;logging_config&amp;gt;&lt;br /&gt;
        ...&lt;br /&gt;
        &amp;lt;logger type=&#039;uop&#039; level=&#039;info&#039; show_source=&#039;true&#039; /&amp;gt;&lt;br /&gt;
    &amp;lt;/logging_config&amp;gt;&lt;br /&gt;
    ...&lt;br /&gt;
&amp;lt;/cinc&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Where &#039;...&#039; represents other data that may be present.&lt;br /&gt;
&lt;br /&gt;
== Run CinC == &lt;br /&gt;
From the &amp;lt;code&amp;gt;cinc-2.2.3&amp;lt;/code&amp;gt; directory, start your application using:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
./Test_System/Mains/Robot_Demo/Robot_Demo&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
PHENOM has created a &#039;&#039;very basic&#039;&#039; implementation of each UoP.  Transmitted data is populated with a constant value (typically pi).  The logger indicated that information is being sent.  The receiving application decodes the data type and prints the received value.  If the application is printing out &amp;quot;3.14&amp;quot; along with some other information, it is working.&lt;/div&gt;</summary>
		<author><name>Chris</name></author>
	</entry>
	<entry>
		<id>https://kb.phenomportal.com/index.php?title=File:Robot_model_with_integration_model.skayl&amp;diff=1552</id>
		<title>File:Robot model with integration model.skayl</title>
		<link rel="alternate" type="text/html" href="https://kb.phenomportal.com/index.php?title=File:Robot_model_with_integration_model.skayl&amp;diff=1552"/>
		<updated>2026-01-16T18:15:04Z</updated>

		<summary type="html">&lt;p&gt;Chris: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Chris</name></author>
	</entry>
	<entry>
		<id>https://kb.phenomportal.com/index.php?title=Integrate_Applications_with_PHENOM_%26_CinC&amp;diff=1551</id>
		<title>Integrate Applications with PHENOM &amp; CinC</title>
		<link rel="alternate" type="text/html" href="https://kb.phenomportal.com/index.php?title=Integrate_Applications_with_PHENOM_%26_CinC&amp;diff=1551"/>
		<updated>2026-01-16T18:14:40Z</updated>

		<summary type="html">&lt;p&gt;Chris: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This tutorial will walk a user through the compilation and execution of a CinC-based application.  It builds upon other tutorials in PHENOM.  As such, it uses the same principles as [[Integration Model to CinC Generation]], but the content is different.&lt;br /&gt;
&lt;br /&gt;
{{Info|heading=Windows Subsystem for Linux | 1=This tutorial is written to use Windows Subsystem for Linux (WSL 2) with a Ubuntu distribution.}}&lt;br /&gt;
&lt;br /&gt;
==Preparing PHENOM==&lt;br /&gt;
In this tutorial, you will integrate two software applications.  For the sake of simplicity, they will be integrated into a single executable.  This will allow you to see the result of the integration by running a single file.  This tutorial uses the Integration Model as shown in a previous tutorial.&lt;br /&gt;
&lt;br /&gt;
Start by downloading this data model: [[File:robot_model_with_integration_model.skayl]]&lt;br /&gt;
&lt;br /&gt;
{{Info|heading=Skayl File | 1=The FACE Technical Standard only defines the elements of an integration model.  The details of each element are left to integrators.  As a result, such details are not effectively stored in a .face model.  A .skayl file is provided here to maintain this information.}}&lt;br /&gt;
&lt;br /&gt;
If you need help loading the project file, please view this tutorial: [[Creating a Project from an Existing Model]].&lt;br /&gt;
&lt;br /&gt;
== Export a CinC Package ==&lt;br /&gt;
Log into PHENOM and click on the GENERATE icon in the vertical bar on the left-hand side of the screen.&lt;br /&gt;
&lt;br /&gt;
[[File:Phenom navigation bar 4.png|thumb|none]]&lt;br /&gt;
&lt;br /&gt;
Select the CINC tab.&lt;br /&gt;
&lt;br /&gt;
[[File:generate_menu_cinc_selected.png|thumb|none]]&lt;br /&gt;
&lt;br /&gt;
Please make the following choices:&lt;br /&gt;
* &#039;&#039;&#039;CinC Artifact&#039;&#039;&#039; CinC&lt;br /&gt;
* &#039;&#039;&#039;CinC Version&#039;&#039;&#039; CinC 2.2.3 (note, other versions may work, this was tested with v2.2.3)&lt;br /&gt;
* &#039;&#039;&#039;FACE Version&#039;&#039;&#039; 3.0&lt;br /&gt;
* &#039;&#039;&#039;Language&#039;&#039;&#039; c++&lt;br /&gt;
* &#039;&#039;&#039;Override namespaces?&#039;&#039;&#039; Not Selected&lt;br /&gt;
* &#039;&#039;&#039;System Directory&#039;&#039;&#039; Test_System&lt;br /&gt;
* &#039;&#039;&#039;Include CinC Source?&#039;&#039;&#039; Selected&lt;br /&gt;
* &#039;&#039;&#039;Include Model files?&#039;&#039;&#039; Selected&lt;br /&gt;
* &#039;&#039;&#039;Selection Type&#039;&#039;&#039; Mains and UoPs&lt;br /&gt;
&lt;br /&gt;
There is a prompt to &#039;&#039;&#039;Select your Mains and UoPs&#039;&#039;&#039;.  Since the project was setup to have both applications in a single executable, both UoPs are listed under a single main.  Ensure all three elements are selected, like this:&lt;br /&gt;
&lt;br /&gt;
[[File:generate_cinc_select_mains_and_uops.png|thumb|none]]&lt;br /&gt;
&lt;br /&gt;
Next, select a license.  For this tutorial, you should choose &#039;&#039;&#039;Evaluation&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
And finally, click &#039;&#039;&#039;GENERATE&#039;&#039;&#039;.  PHENOM will start creating your source package and your browser will automatically download it once complete.&lt;br /&gt;
&lt;br /&gt;
== Prepare the Environment ==&lt;br /&gt;
In your Windows user folder (typically C:\Users\&amp;lt;username&amp;gt;), create (or edit) the &amp;lt;code&amp;gt;.wslconfig&amp;lt;/code&amp;gt; file.&lt;br /&gt;
&lt;br /&gt;
Make sure the file contains the following entries:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[wsl2]&lt;br /&gt;
networkingMode=mirrored&lt;br /&gt;
&lt;br /&gt;
[experimental]&lt;br /&gt;
hostAddressLoopback=true&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Start your WSL instance, and ensure the proper packages are installed:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt install make&lt;br /&gt;
apt install g++&lt;br /&gt;
apt install cmake&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Setup the Project ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Unzip your CinC project in your user home (or other) directory.  This will create a subdirectory called &amp;lt;code&amp;gt;cinc-2.2.3&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
If unzip is not installed, run &amp;lt;code&amp;gt;sudo apt install unzip&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Install Pthread4W (Pthreads for Windows) ==&lt;/div&gt;</summary>
		<author><name>Chris</name></author>
	</entry>
	<entry>
		<id>https://kb.phenomportal.com/index.php?title=File:Generate_cinc_select_mains_and_uops.png&amp;diff=1550</id>
		<title>File:Generate cinc select mains and uops.png</title>
		<link rel="alternate" type="text/html" href="https://kb.phenomportal.com/index.php?title=File:Generate_cinc_select_mains_and_uops.png&amp;diff=1550"/>
		<updated>2026-01-16T16:36:39Z</updated>

		<summary type="html">&lt;p&gt;Chris: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Chris</name></author>
	</entry>
	<entry>
		<id>https://kb.phenomportal.com/index.php?title=File:Generate_menu_cinc_selected.png&amp;diff=1548</id>
		<title>File:Generate menu cinc selected.png</title>
		<link rel="alternate" type="text/html" href="https://kb.phenomportal.com/index.php?title=File:Generate_menu_cinc_selected.png&amp;diff=1548"/>
		<updated>2026-01-16T15:26:34Z</updated>

		<summary type="html">&lt;p&gt;Chris: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Chris</name></author>
	</entry>
	<entry>
		<id>https://kb.phenomportal.com/index.php?title=Integrate_Applications_with_PHENOM_%26_CinC&amp;diff=1547</id>
		<title>Integrate Applications with PHENOM &amp; CinC</title>
		<link rel="alternate" type="text/html" href="https://kb.phenomportal.com/index.php?title=Integrate_Applications_with_PHENOM_%26_CinC&amp;diff=1547"/>
		<updated>2026-01-16T15:25:31Z</updated>

		<summary type="html">&lt;p&gt;Chris: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This tutorial will walk a user through the compilation and execution of a CinC-based application.  It builds upon other tutorials in PHENOM.  As such, it uses the same principles as [[Integration Model to CinC Generation]], but the content is different.&lt;br /&gt;
&lt;br /&gt;
{{Info|heading=Windows Subsystem for Linux | 1=This tutorial is written to use Windows Subsystem for Linux (WSL 2).}}&lt;br /&gt;
&lt;br /&gt;
==Preparing PHENOM==&lt;br /&gt;
In this tutorial, you will integrate two software applications.  For the sake of simplicity, they will be integrated into a single executable.  This will allow you to see the result of the integration by running a single file.  This tutorial uses the Integration Model as shown in a previous tutorial.&lt;br /&gt;
&lt;br /&gt;
Start by downloading this data model: [[File:robot_model_with_integration_model.skayl]]&lt;br /&gt;
&lt;br /&gt;
{{Info|heading=Skayl File | 1=The FACE Technical Standard only defines the elements of an integration model.  The details of each element are left to integrators.  As a result, such details are not effectively stored in a .face model.  A .skayl file is provided here to maintain this information.}}&lt;br /&gt;
&lt;br /&gt;
If you need help loading the project file, please view this tutorial: [[Creating a Project from an Existing Model]].&lt;br /&gt;
&lt;br /&gt;
== Export a CinC Package ==&lt;br /&gt;
Log into PHENOM and click on the GENERATE icon in the vertical bar on the left-hand side of the screen.&lt;br /&gt;
&lt;br /&gt;
[[File:Phenom navigation bar 4.png|thumb|none]]&lt;br /&gt;
&lt;br /&gt;
Select the CINC tab.&lt;br /&gt;
&lt;br /&gt;
[[File:generate_menu_cinc_selected.png|thumb|none]]&lt;br /&gt;
&lt;br /&gt;
Please make the following choices:&lt;br /&gt;
* &#039;&#039;&#039;CinC Artifact&#039;&#039;&#039; CinC&lt;br /&gt;
* &#039;&#039;&#039;CinC Version&#039;&#039;&#039; CinC 2.2.3 (note, other versions may work, this was tested with v2.2.3)&lt;br /&gt;
* &#039;&#039;&#039;FACE Version&#039;&#039;&#039; 3.0&lt;br /&gt;
* &#039;&#039;&#039;Language&#039;&#039;&#039; c++&lt;br /&gt;
* &#039;&#039;&#039;Override namespaces?&#039;&#039;&#039; Not Selected&lt;br /&gt;
* &#039;&#039;&#039;System Directory&#039;&#039;&#039; Test_System&lt;br /&gt;
* &#039;&#039;&#039;Include CinC Source?&#039;&#039;&#039; Selected&lt;br /&gt;
* &#039;&#039;&#039;Include Model files?&#039;&#039;&#039; Selected&lt;br /&gt;
* &#039;&#039;&#039;Selection Type&#039;&#039;&#039; Mains and UoPs&lt;br /&gt;
&lt;br /&gt;
There is a prompt to &#039;&#039;&#039;Select your Mains and UoPs&#039;&#039;&#039;.  Since the project was setup to have both applications in a single executable, both UoPs are listed under a single main.  Ensure all three elements are selected, like this:&lt;br /&gt;
&lt;br /&gt;
[[File:C:\Users\chris\Downloads\generate_cinc_select_mains_and_uops.png|thumb|none]]&lt;br /&gt;
&lt;br /&gt;
Next, select a license.  For this tutorial, you should choose &#039;&#039;&#039;Evaluation&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
And finally, click &#039;&#039;&#039;GENERATE&#039;&#039;&#039;.  PHENOM will start creating your source package and your browser will automatically download it once complete.&lt;br /&gt;
&lt;br /&gt;
== Prepare the Environment ==&lt;br /&gt;
In your Windows user folder (typically C:\Users\&amp;lt;username&amp;gt;), create (or edit) the &amp;lt;code&amp;gt;.wslconfig&amp;lt;/code&amp;gt; file.&lt;br /&gt;
&lt;br /&gt;
Make sure the file contains the following entries:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[wsl2]&lt;br /&gt;
networkingMode=mirrored&lt;br /&gt;
&lt;br /&gt;
[experimental]&lt;br /&gt;
hostAddressLoopback=true&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Chris</name></author>
	</entry>
	<entry>
		<id>https://kb.phenomportal.com/index.php?title=Document_Interfaces_using_PHENOM_Portal&amp;diff=1546</id>
		<title>Document Interfaces using PHENOM Portal</title>
		<link rel="alternate" type="text/html" href="https://kb.phenomportal.com/index.php?title=Document_Interfaces_using_PHENOM_Portal&amp;diff=1546"/>
		<updated>2026-01-16T15:05:09Z</updated>

		<summary type="html">&lt;p&gt;Chris: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Documenting communication interfaces using good data modeling practices is easy in PHENOM Portal. This quick assignment will get you up and running documenting your own interfaces, creating valid and informative paths, and mapping your interface to others already documented.&lt;br /&gt;
&lt;br /&gt;
==Preparing PHENOM==&lt;br /&gt;
In this tutorial, you will be documenting interfaces.  However, in order for you to be able to do this, you need a data model that corresponds with this tutorial.  Since there is already a tutorial for [[Developing an Entity Model]], this tutorial will start by loading a data model into PHENOM.&lt;br /&gt;
&lt;br /&gt;
Start by downloading this data model: [[File:robot_model.face]]&lt;br /&gt;
&lt;br /&gt;
Create a new project with this model.  If you need any help, consult the following tutorial: [[Creating a Project from an Existing Model]].&lt;br /&gt;
&lt;br /&gt;
==Prelude: Views, View-Characteristic, and Paths - What and Why==&lt;br /&gt;
In the task of documenting the Simple Operating Robot Data Interface, our main focus will be in [[View]]s. Views can be understood as the documentation of messages that the interface describes. A view documents a message interface, and each view-characteristic documents a single field of the message. More specifically, a view-characteristic contains information about the logical level of the message field (such as the measurement and unit being used) as well as information about the conceptual level of the message field (which entities and properties of entities are being talked about).&lt;br /&gt;
&lt;br /&gt;
If you click on a view-characteristic, you will see that each has a name, an [[observable]], a measurement and axis (which further characterizes the observable), and a path documenting the entities and its context.  Path development is the primary focus of this assignment - paths communicate the semantics of message fields in a machine understandable fashion. Engineer-written documentation for data coming in over the wire might indicate &amp;quot;Temperature of the main unit of an air system&#039;s propulsion system.&amp;quot; which, though concise and informative, might not mean much to a machine. Paths allow us to write standardized descriptions of view-attributes, linking together different entities, such as engines, propulsion systems, and air vehicles, to create semantic, machine-readable documentation for the contents of a message. Below is an example view attribute describing the message field documented in the sentence above.&lt;br /&gt;
&lt;br /&gt;
[[File:Phenom-tutorial-documenting-interface-example.png|thumb|none]]&lt;br /&gt;
&lt;br /&gt;
Take a look at the path and see if you can connect it to the meaning intended by the engineer from the previous paragraph. Note that this page also captures how the measurement of this concept is expressed (i.e., measurement units and frame of reference).  This information is used to construct the [[Logical Data Model]].&lt;br /&gt;
&lt;br /&gt;
== Part 1: Documenting Robot Position Status==&lt;br /&gt;
The first message interface we have to implement is for communicating the &#039;&#039;&#039;Robot_Position_Status&#039;&#039;&#039;.  We are given the following interface description:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Robot_Position_Status - This message returns the position information of the robot.&lt;br /&gt;
|-&lt;br /&gt;
! Field ID !! Name &amp;amp; Description !! Unit !! Data Type&lt;br /&gt;
|-&lt;br /&gt;
| 1 || &#039;&#039;&#039;Robot_Id&#039;&#039;&#039; &amp;lt;br/&amp;gt; An alphanumeric string indicating the unique identifier of the robot system. || UTF-8 || String&lt;br /&gt;
|-&lt;br /&gt;
| 2 || &#039;&#039;&#039;Latitude&#039;&#039;&#039; &amp;lt;br/&amp;gt; The WGS-84 latitude value. || Radians || Double&lt;br /&gt;
|-&lt;br /&gt;
| 3 || &#039;&#039;&#039;Longitude&#039;&#039;&#039; &amp;lt;br/&amp;gt; The WGS-84 longitude value. || Radians || Double&lt;br /&gt;
|-&lt;br /&gt;
| 4 || &#039;&#039;&#039;Altitude&#039;&#039;&#039; &amp;lt;br/&amp;gt; The altitude value expressed in MSL. || Meters || Float&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Before documenting the message, take a look at the entity which this message is meant to describe. In the model we are using, the closest entity is Robot. Once you are logged into PHENOM, make sure that you click on the DATA MODELING button in the left-hand navigation panel.  Then, type &#039;robot&#039; into the search bar on top of Phenom&#039;s NavTree and bring up the page describing Robot. You will see that this entity is composed of a few attributes, some of them are [[observable]]s while another is an [[entity]].&lt;br /&gt;
&lt;br /&gt;
Let&#039;s start the documentation by clicking the &#039;Create&#039; button at the top left of the page and choosing to create a new view. &lt;br /&gt;
&lt;br /&gt;
[[File:Phenom-datamodeling-create-view.png|frame|none]]&lt;br /&gt;
&lt;br /&gt;
Give your view a name and a description following the information in the table at the top of this section and click save. &lt;br /&gt;
&lt;br /&gt;
[[File:Phenom-datamodeling-view-save.png|frame|none]]&lt;br /&gt;
&lt;br /&gt;
Once saved, you can find your new view in the tree by searching for it or opening its parent package.  NOTE: PHENOM creates new views in the PhenomViews package.  However, you may drag the elements into locations of your choosing (so long as they are valid).&lt;br /&gt;
&lt;br /&gt;
Now, we can add an attribute to the view to describe the first field of the message - Robot_ID. To start, click on the CREATE button in the Attributes pane.&lt;br /&gt;
&lt;br /&gt;
[[File:Phenom-datamodeling-view-create-attribute.png|frame|none]]&lt;br /&gt;
&lt;br /&gt;
Fill in the View Attribute field with its name.  The table indicates this should be: &#039;&#039;Robot_Id&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Given the name and description from the table, it is not hard to think that the best observable for it is [[Identifier]]. Selected that as our [[observable]], then choose a measurement that will likely best fulfill the id being a string - I chose UniqueID_UUID_Text_Meas.&lt;br /&gt;
&lt;br /&gt;
[[File:Phenom-datamodeling-view-attribute-choose-obs-and-meas.png|frame|none]]&lt;br /&gt;
&lt;br /&gt;
The next step is &#039;&#039;slightly&#039;&#039; more complicated.  Originally, in PHENOM you could simply select any primitive type, and PHENOM would generate the appropriate results.  Unfortunately, this leads to a proliferation of platform data types and users wanted us to provide a little more control for platform type reuse.&lt;br /&gt;
&lt;br /&gt;
This leads to two options.  First, you can create a new platform type.  This is absolutely necessary when working with a new model.  Once some platform types have already been created, the second option will allow you to reuse and existing platform type.&lt;br /&gt;
&lt;br /&gt;
===Creating a Platform Type===&lt;br /&gt;
[[File:Phenom-datamodeling-view-attribute-create-platform-type.png|frame|none]]&lt;br /&gt;
&lt;br /&gt;
===Select a Platform Type===&lt;br /&gt;
&lt;br /&gt;
[[Category:UserGuide|0043_Document_Interfaces_using_PHENOM_Portal]]&lt;/div&gt;</summary>
		<author><name>Chris</name></author>
	</entry>
	<entry>
		<id>https://kb.phenomportal.com/index.php?title=Creating_a_Project_from_an_Existing_Model&amp;diff=1545</id>
		<title>Creating a Project from an Existing Model</title>
		<link rel="alternate" type="text/html" href="https://kb.phenomportal.com/index.php?title=Creating_a_Project_from_an_Existing_Model&amp;diff=1545"/>
		<updated>2026-01-16T15:03:42Z</updated>

		<summary type="html">&lt;p&gt;Chris: Created page with &amp;quot;This page will explain how to create a new Project by uploading the file from your local system.  ===Switch to Manage Mode=== All model management functions are performed in the Manage Models section of PHENOM.  After logging in, please click on the Manage Models icon.  none  ===Create a New Project=== It is possible to upload new content and create a new project all at once!  To start, click on the &amp;#039;&amp;#039;Creat...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page will explain how to create a new Project by uploading the file from your local system.&lt;br /&gt;
&lt;br /&gt;
===Switch to Manage Mode===&lt;br /&gt;
All model management functions are performed in the [[Manage|Manage Models]] section of PHENOM.  After logging in, please click on the [[Manage|Manage Models]] icon.&lt;br /&gt;
&lt;br /&gt;
[[File:Phenom navigation bar 5.png|thumb|none]]&lt;br /&gt;
&lt;br /&gt;
===Create a New Project===&lt;br /&gt;
It is possible to upload new content and create a new project all at once!  To start, click on the &#039;&#039;Create New Project&#039;&#039; button.&lt;br /&gt;
&lt;br /&gt;
[[File:Phenom-manage-create-new-project.png|frame|none]]&lt;br /&gt;
&lt;br /&gt;
===Select Models===&lt;br /&gt;
Once you click the button, the following screen should appear to the right of the Project listing.&lt;br /&gt;
&lt;br /&gt;
[[File:Phenom-manage-create-new-project-select-models.png|frame|none]]&lt;br /&gt;
&lt;br /&gt;
For the Project Name, please use a valid identifier.&lt;br /&gt;
&lt;br /&gt;
You may leave Description blank.  This field is intended for you to capture notes about the project (or model) and how it will be used.  &lt;br /&gt;
&lt;br /&gt;
In the bottom-left of this display, there is a list of existing models.  This is used to add &#039;&#039;existing&#039;&#039; models to the new project.  Ignore this for now.&lt;br /&gt;
&lt;br /&gt;
In the bottom-right, click on &#039;&#039;Import FACE model&#039;&#039;.  This feature will allow you to upload .face and .skayl files alike.  This button will add a model entry as follows:&lt;br /&gt;
&lt;br /&gt;
[[File:Phenom-manage-create-new-project-load-model.png|frame|none]]&lt;br /&gt;
&lt;br /&gt;
For the Model Name (the first text field), please enter a valid identifier.  &lt;br /&gt;
&lt;br /&gt;
As before, Description can be left blank.&lt;br /&gt;
&lt;br /&gt;
Click on &#039;&#039;&#039;Select files...&#039;&#039;&#039; and a file chooser will appear.  Navigate to your local data model file and choose that file.  PHENOM will immediately start uploading the file.  While the file is uploading and being preprocessed, the following status will appear:&lt;br /&gt;
&lt;br /&gt;
[[File:Phenom-manage-create-new-project-model-loading.png|frame|none]]&lt;br /&gt;
&lt;br /&gt;
Once the file has successfully transferred, PHENOM will show the file uploaded successfully with a green indicator.&lt;br /&gt;
&lt;br /&gt;
[[File:Phenom-manage-create-new-project-model-loaded-successfully.png|frame|none]]&lt;br /&gt;
&lt;br /&gt;
In the event of an error (e.g., invalid file type or invalid model), PHENOM will display an error as follows:&lt;br /&gt;
&lt;br /&gt;
[[File:Phenom-manage-create-new-project-model-load-error.png|frame|none]]&lt;br /&gt;
&lt;br /&gt;
Once the file has been successfully uploaded, click on the SAVE button.&lt;br /&gt;
&lt;br /&gt;
[[File:Phenom-manage-create-new-project-save.png|frame|none]]&lt;br /&gt;
&lt;br /&gt;
===Switch to New Model===&lt;br /&gt;
After saving the model, it will appear in the project browser.  Simply &#039;&#039;&#039;right-click&#039;&#039;&#039; on the new project and choose Switch.  This will load the new project and you are able to start operating on this content.&lt;br /&gt;
&lt;br /&gt;
[[File:Phenom-manage-switch-project.png|frame|none]]&lt;br /&gt;
&lt;br /&gt;
You can verify that you have switched to the new project by looking at the top of your PHENOM display.  The current project is displayed beside your username.&lt;br /&gt;
&lt;br /&gt;
[[File:Phenom-header-current-model-and-user.png|frame|none]]&lt;/div&gt;</summary>
		<author><name>Chris</name></author>
	</entry>
	<entry>
		<id>https://kb.phenomportal.com/index.php?title=File:Robot_model.face&amp;diff=1544</id>
		<title>File:Robot model.face</title>
		<link rel="alternate" type="text/html" href="https://kb.phenomportal.com/index.php?title=File:Robot_model.face&amp;diff=1544"/>
		<updated>2026-01-15T19:02:21Z</updated>

		<summary type="html">&lt;p&gt;Chris: Chris uploaded a new version of File:Robot model.face&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
Data Model for Documentation Tutorial&lt;/div&gt;</summary>
		<author><name>Chris</name></author>
	</entry>
	<entry>
		<id>https://kb.phenomportal.com/index.php?title=Integrate_Applications_with_PHENOM_%26_CinC&amp;diff=1543</id>
		<title>Integrate Applications with PHENOM &amp; CinC</title>
		<link rel="alternate" type="text/html" href="https://kb.phenomportal.com/index.php?title=Integrate_Applications_with_PHENOM_%26_CinC&amp;diff=1543"/>
		<updated>2026-01-15T13:37:51Z</updated>

		<summary type="html">&lt;p&gt;Chris: Created page with &amp;quot;This tutorial will walk a user through the compilation and execution of a CinC-based application.    The CinC compilation portion of this tutorial is done using WSL (Windows Subsystem for Linux 2).  == Create a Data Model ==  A UoP (Unit of Portability) represents your application.  It defines all the inputs and outputs of the application by associating the data types (the queries and views defined in the data model) with the UoP.  Start by creating a UoP.  CREATE &amp;gt;&amp;gt; INT...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This tutorial will walk a user through the compilation and execution of a CinC-based application.  &lt;br /&gt;
&lt;br /&gt;
The CinC compilation portion of this tutorial is done using WSL (Windows Subsystem for Linux 2).&lt;br /&gt;
&lt;br /&gt;
== Create a Data Model ==&lt;br /&gt;
&lt;br /&gt;
A UoP (Unit of Portability) represents your application.  It defines all the inputs and outputs of the application by associating the data types (the queries and views defined in the data model) with the UoP.&lt;br /&gt;
&lt;br /&gt;
Start by creating a UoP.  CREATE &amp;gt;&amp;gt; INTEGRATION &amp;gt;&amp;gt; UOP&lt;br /&gt;
&lt;br /&gt;
== Create an Integration Model ==&lt;br /&gt;
&#039;&#039;&#039;TODO&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Prepare the Environment ==&lt;br /&gt;
In your Windows user folder (typically C:\Users\&amp;lt;username&amp;gt;), create (or edit) the &amp;lt;code&amp;gt;.wslconfig&amp;lt;/code&amp;gt; file.&lt;br /&gt;
&lt;br /&gt;
Make sure the file contains the following entries:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[wsl2]&lt;br /&gt;
networkingMode=mirrored&lt;br /&gt;
&lt;br /&gt;
[experimental]&lt;br /&gt;
hostAddressLoopback=true&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Chris</name></author>
	</entry>
	<entry>
		<id>https://kb.phenomportal.com/index.php?title=Tutorials&amp;diff=1542</id>
		<title>Tutorials</title>
		<link rel="alternate" type="text/html" href="https://kb.phenomportal.com/index.php?title=Tutorials&amp;diff=1542"/>
		<updated>2026-01-14T20:56:42Z</updated>

		<summary type="html">&lt;p&gt;Chris: /* Exercises */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;These hands-on tutorials walk users through different exercises to learn different aspects of PHENOM.&lt;br /&gt;
&lt;br /&gt;
==Sample Workflows==&lt;br /&gt;
* [[Integration Model to CinC Generation]]&lt;br /&gt;
&lt;br /&gt;
==Exercises==&lt;br /&gt;
* [[Developing an Entity Model]]&lt;br /&gt;
* [[Document Interfaces using PHENOM Portal]]&lt;br /&gt;
* [[Integrate Applications with PHENOM &amp;amp; CinC]]&lt;br /&gt;
&lt;br /&gt;
==Video Tutorials==&lt;br /&gt;
* [https://youtu.be/DLnrkxV-CyQ Introduction &amp;amp; Navigation]&lt;br /&gt;
* [https://youtu.be/sZw5jo3bnuE Importing Data Models]&lt;br /&gt;
* [https://youtu.be/b7g0xgm5_64 Sharing Data Models]&lt;br /&gt;
* [https://youtu.be/DwyibQqIsMQ Using Navigation Mode]&lt;br /&gt;
* [https://youtu.be/JLOMXk3jIEM The Diagram Tool]&lt;br /&gt;
* [https://youtu.be/nTfelA07Nzw Configuration Management]&lt;br /&gt;
* [https://youtu.be/J_Poq7v5_rE Subscription &amp;amp; User Management]&lt;br /&gt;
* [https://youtu.be/3MVA5TNSouM Expert Mode]&lt;br /&gt;
* [https://youtu.be/Fe-9O-T8c-g Tagging]&lt;br /&gt;
&lt;br /&gt;
[[Category:UserGuide|0041_Tutorials]]&lt;/div&gt;</summary>
		<author><name>Chris</name></author>
	</entry>
	<entry>
		<id>https://kb.phenomportal.com/index.php?title=Integration_Model_to_CinC_Generation&amp;diff=1541</id>
		<title>Integration Model to CinC Generation</title>
		<link rel="alternate" type="text/html" href="https://kb.phenomportal.com/index.php?title=Integration_Model_to_CinC_Generation&amp;diff=1541"/>
		<updated>2026-01-13T17:50:59Z</updated>

		<summary type="html">&lt;p&gt;Chris: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This sample workflow will lead the user to generate FACE 3 CinC after creating necessary Mains, UoP Instances, and UoPs.&lt;br /&gt;
&lt;br /&gt;
== Create a UoP ==&lt;br /&gt;
A UoP (Unit of Portability) represents your application.  It defines all the inputs and outputs of the application by associating the data types (the queries and views defined in the data model) with the UoP.&lt;br /&gt;
&lt;br /&gt;
Start by creating a UoP.  CREATE &amp;gt;&amp;gt; INTEGRATION &amp;gt;&amp;gt; UOP&lt;br /&gt;
&lt;br /&gt;
Enter an appropriate name for the UoP and choose a parent package.&lt;br /&gt;
&lt;br /&gt;
After description, there are three drop down boxes. These are options specified by the FACE Technical Standard.  At this point, you can choose any value.  However, you may need to choose specific values when you run the UoP through the conformance test suite.  See [[FACE UoP Options]] for more details.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Message Ports / Connections&#039;&#039;&#039;&lt;br /&gt;
In the data model, the views (queries) define the data types that are ultimately sent and received by the UoP (applications).  Click &amp;quot;+ Add New Message Port&amp;quot; to add the corresponding data type to this application.  &lt;br /&gt;
* &#039;&#039;&#039;Name &#039;&#039;&#039; Enter a name for the message port&lt;br /&gt;
* &#039;&#039;&#039;Message Pattern&#039;&#039;&#039; This describes the general way messages are transmitted and works in conjunction with the Exchange Type (message direction).  &lt;br /&gt;
** &#039;&#039;&#039;Publish/Subscribe&#039;&#039;&#039; Publish/Subscribe indicates the messages will be (effectively) streamed.  &lt;br /&gt;
** &#039;&#039;&#039;Client&#039;&#039;&#039; indicate that some other pattern will be used and this message port will play act as a client&lt;br /&gt;
** &#039;&#039;&#039;Server&#039;&#039;&#039; indicate that some other pattern will be used and this message port will play act as a server&lt;br /&gt;
* &#039;&#039;&#039;Exchange Type&#039;&#039;&#039; Indicates if the data will be sent or received.&lt;br /&gt;
* &#039;&#039;&#039;Message Type&#039;&#039;&#039; Select the view (query) corresponding to the data that will be sent/received.&lt;br /&gt;
* &#039;&#039;&#039;Synchronization&#039;&#039;&#039; Indicates if the application blocks when sending or awaiting data.&lt;br /&gt;
* &#039;&#039;&#039;Communication Style&#039;&#039;&#039; Indicates if the application sends a single message or manages a queue of messages&lt;br /&gt;
* &#039;&#039;&#039;Period (s)&#039;&#039;&#039; The period (in seconds) indicates the rate the message should be sent/received&lt;br /&gt;
&lt;br /&gt;
For this first demonstration, choose:&lt;br /&gt;
* &#039;&#039;Publish/Subscribe&#039;&#039; for the messaging pattern&lt;br /&gt;
* &#039;&#039;Outbound&#039;&#039; for Exchange Type&lt;br /&gt;
&lt;br /&gt;
Click SAVE (near the upper right).&lt;br /&gt;
&lt;br /&gt;
Now, run through all the steps again to create a complementary UoP.  Make sure you choose the same Message Type, but this time, choose &#039;&#039;&#039; &#039;&#039;Inbound&#039;&#039; &#039;&#039;&#039; for the Exchange Type.&lt;br /&gt;
&lt;br /&gt;
[[File:Generate_-_CreateUoP.png|border|800x800px]]&lt;br /&gt;
&lt;br /&gt;
== Create a UoP Instance ==&lt;br /&gt;
Since UoPs can be used in many different applications, UoP Instances are used to explicitly connect a UoP to an application.&lt;br /&gt;
&lt;br /&gt;
A new UoP Instance can be created by selecting the corresponding option in the CREATE &amp;gt;&amp;gt; INTEGRATION &amp;gt;&amp;gt; UOP INSTANCE.&lt;br /&gt;
&lt;br /&gt;
After providing an appropriate name, select the UoP that corresponds to this instance.  Click SAVE near the upper right corner.&lt;br /&gt;
&lt;br /&gt;
Repeat this process for the complementary UoP that you created in the previous section.&lt;br /&gt;
&lt;br /&gt;
[[File:Generate_-_CreateUoPInstance2.png|border|800x800px]]&lt;br /&gt;
&lt;br /&gt;
== Create an Integration Context ==&lt;br /&gt;
The Integration Context is a visual diagram of the interactions between a UoP and the configurable elements of CinC.&lt;br /&gt;
&lt;br /&gt;
[[File:Generate - CreateContext.png|none|thumb|800px]]&lt;br /&gt;
&lt;br /&gt;
Add UoP Instances that you created to the context.&lt;br /&gt;
* Find the UoP Instances in the navigation tree and select it&lt;br /&gt;
* Drag it onto the context.&lt;br /&gt;
&lt;br /&gt;
At this point, the two UoP (instances) exist, but they do not know how to communicate with each other.  In this simplest of examples where the two UoPs are communicating using the same message, they can easily be integrated by using a Transporter block.&lt;br /&gt;
&lt;br /&gt;
* In the toolbar on the left side of the diagram find and select the transporter block&lt;br /&gt;
* Drag the transporter block onto the diagram.&lt;br /&gt;
&lt;br /&gt;
A Transporter is a represents where the flow of data is occurring.  However, it is a somewhat generic concept that needs further configuration.  This is where you select the &#039;&#039;transport protocol&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
* With the transporter block selected, on the right side find the Transport Channel control and click on the &#039;+&#039; to add a new channel&lt;br /&gt;
* Give the channel a name and click the save icon. &lt;br /&gt;
* Once the save completes, click on the transport channel drop down and select the name of the channel you just created.&lt;br /&gt;
&lt;br /&gt;
Now you are ready to connect the blocks to each other.&lt;br /&gt;
&lt;br /&gt;
* Select the first UoP Instance block in the diagram (this should be the &amp;quot;outbound&amp;quot; application)&lt;br /&gt;
* Click on the up arrow at the upper right corner of the block and drag it to the transporter block&lt;br /&gt;
* A popup dialog will allow you to select the UoP port to connect to the transporter, select the port from the drop down list and click on save (in this case, there is only one)&lt;br /&gt;
* Select the Transporter block in the diagram&lt;br /&gt;
* Click on the up arrow at the upper right corner of the transporter block and drag it to the second UoP Instance (this should be the &amp;quot;inbound&amp;quot; application)&lt;br /&gt;
&lt;br /&gt;
Up to this point, we have relied on the SAVE button to persist most of our changes.  However, diagrams work a little differently.  In order to persist diagrammed changes, you need to commit the changes.&lt;br /&gt;
&lt;br /&gt;
* Click the Commit button under the heading Model on the diagram tool bar.  This saves the changes to the Integration Model (IM) elements but does NOT save the diagram.&lt;br /&gt;
* Now, save the diagram.  Click the middle disk icon under diagram in order to save the layout of the elements in the diagram.  This saves the layout of the items in the diagram but does NOT save changes to the Integration or Deployment models that may have been made while editing the diagram elements.&lt;br /&gt;
&lt;br /&gt;
== Create a Main ==&lt;br /&gt;
The Main Program represents the executable program containing one (or more) UoPs and CinC.&lt;br /&gt;
&lt;br /&gt;
A new Main Program can be created by selecting the corresponding option in the CREATE &amp;gt;&amp;gt; DEPLOYMENT.  &lt;br /&gt;
&lt;br /&gt;
After setting an appropriate name, &#039;the most important thing&#039; is to add your UoP Instances to the executable.  Look halfway down the page and there is a &#039;&#039;&#039;Contains UOP Instances&#039;&#039;&#039; heading with a list of UoP Instances.  Use the drop down box at the bottom of that section to add your UoP Instances.&lt;br /&gt;
&lt;br /&gt;
Click SAVE near the upper right corner.&lt;br /&gt;
&lt;br /&gt;
[[File:Generate_-_CreateMainProgram2.png|none|thumb|800x800px]]&lt;br /&gt;
&lt;br /&gt;
== Add a TPM ==&lt;br /&gt;
The transport protocol module is responsible for the serialization and deserialization of messages and their transport from one TPM to another or another system. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;This step is optional as PHENOM will generate a UDP TPM by default.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[File:Generate - MainCreateTPM2.png|thumb|none|800px]]&lt;br /&gt;
# Within the Main detail page, after saving the main, click on the Create TPM button.  &lt;br /&gt;
# Give the TPM a name (&#039;tpm&#039; is fine).&lt;br /&gt;
# Click the save button.  &lt;br /&gt;
# Commit the changes to the main by clicking the disk icon in the upper right.&lt;br /&gt;
&lt;br /&gt;
== Generate CinC ==&lt;br /&gt;
This is the step where you will actually be transforming your model into a downloadable source code package.&lt;br /&gt;
&lt;br /&gt;
* Open the &#039;Generate&#039; section and click on the CinC submenu.&lt;br /&gt;
# Select &#039;CinC&#039; as the artifact. &lt;br /&gt;
# Select the version of CinC you would like to generate&lt;br /&gt;
# Select include CinC Source and choose Yes.&lt;br /&gt;
# Select the Main and UoP Instances for the context we created above and make sure they are both checked&lt;br /&gt;
# Select the appropriate license.&lt;br /&gt;
# Click on the Generate button and a zip file will be created.  The .zip file will contain the CinC source, the data modeled FACE types used by the UoP and the CinC configuration files. Save the file and extract the generated code.&lt;br /&gt;
&lt;br /&gt;
[[File:Generate_-_CinC.png|none|thumb|800x800px]]&lt;br /&gt;
&lt;br /&gt;
[[Category:UserGuide|0044_Integration_Model_to_CinC_Generation]]&lt;/div&gt;</summary>
		<author><name>Chris</name></author>
	</entry>
	<entry>
		<id>https://kb.phenomportal.com/index.php?title=Integration_Model_to_CinC_Generation&amp;diff=1540</id>
		<title>Integration Model to CinC Generation</title>
		<link rel="alternate" type="text/html" href="https://kb.phenomportal.com/index.php?title=Integration_Model_to_CinC_Generation&amp;diff=1540"/>
		<updated>2026-01-13T16:33:32Z</updated>

		<summary type="html">&lt;p&gt;Chris: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This sample workflow will lead the user to generate FACE 3 CinC after creating necessary Mains, UoP Instances, and UoPs.&lt;br /&gt;
&lt;br /&gt;
== Create a UoP ==&lt;br /&gt;
A UoP (Unit of Portability) represents your application.  It defines all the inputs and outputs of the application by associating the data types (the queries and views defined in the data model) with the UoP.&lt;br /&gt;
&lt;br /&gt;
Start by creating a UoP.  CREATE &amp;gt;&amp;gt; INTEGRATION &amp;gt;&amp;gt; UOP&lt;br /&gt;
&lt;br /&gt;
Enter an appropriate name for the UoP and choose a parent package.&lt;br /&gt;
&lt;br /&gt;
After description, there are three drop down boxes. These are options specified by the FACE Technical Standard.  At this point, you can choose any value.  However, you may need to choose specific values when you run the UoP through the conformance test suite.  See [[FACE UoP Options]] for more details.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Message Ports / Connections&#039;&#039;&#039;&lt;br /&gt;
In the data model, the views (queries) define the data types that are ultimately sent and received by the UoP (applications).  Click &amp;quot;+ Add New Message Port&amp;quot; to add the corresponding data type to this application.  &lt;br /&gt;
* &#039;&#039;&#039;Name &#039;&#039;&#039; Enter a name for the message port&lt;br /&gt;
* &#039;&#039;&#039;Message Pattern&#039;&#039;&#039; This describes the general way messages are transmitted and works in conjunction with the Exchange Type (message direction).  &lt;br /&gt;
** &#039;&#039;&#039;Publish/Subscribe&#039;&#039;&#039; Publish/Subscribe indicates the messages will be (effectively) streamed.  &lt;br /&gt;
** &#039;&#039;&#039;Client&#039;&#039;&#039; indicate that some other pattern will be used and this message port will play act as a client&lt;br /&gt;
** &#039;&#039;&#039;Server&#039;&#039;&#039; indicate that some other pattern will be used and this message port will play act as a server&lt;br /&gt;
* &#039;&#039;&#039;Exchange Type&#039;&#039;&#039; Indicates if the data will be sent or received.&lt;br /&gt;
* &#039;&#039;&#039;Message Type&#039;&#039;&#039; Select the view (query) corresponding to the data that will be sent/received.&lt;br /&gt;
* &#039;&#039;&#039;Synchronization&#039;&#039;&#039; Indicates if the application blocks when sending or awaiting data.&lt;br /&gt;
* &#039;&#039;&#039;Communication Style&#039;&#039;&#039; Indicates if the application sends a single message or manages a queue of messages&lt;br /&gt;
* &#039;&#039;&#039;Period (s)&#039;&#039;&#039; The period (in seconds) indicates the rate the message should be sent/received&lt;br /&gt;
&lt;br /&gt;
For this first demonstration, choose:&lt;br /&gt;
* &#039;&#039;Publish/Subscribe&#039;&#039; for the messaging pattern&lt;br /&gt;
* &#039;&#039;Outbound&#039;&#039; for Exchange Type&lt;br /&gt;
&lt;br /&gt;
Click SAVE (near the upper right).&lt;br /&gt;
&lt;br /&gt;
Now, run through all the steps again to create a complementary UoP.  Make sure you choose the same Message Type, but this time, choose &#039;&#039;&#039; &#039;&#039;Inbound&#039;&#039; &#039;&#039;&#039; for the Exchange Type.&lt;br /&gt;
&lt;br /&gt;
[[File:Generate_-_CreateUoP.png|border|800x800px]]&lt;br /&gt;
&lt;br /&gt;
== Create a UoP Instance ==&lt;br /&gt;
Once the user has created their UoP it is now time to create the UoP Instance that will be used in CinC generation. This UoP Instance is going to be very important for later steps.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Similarly, new UoP Instance can be created by selecting the corresponding option in the &#039;Create&amp;gt;Integration&#039; dropdown and then saving after inputting the required data .&lt;br /&gt;
[[File:Generate_-_CreateUoPInstance2.png|border|800x800px]]&lt;br /&gt;
&lt;br /&gt;
== Create a Context ==&lt;br /&gt;
The context is a visual diagram of the interactions between a UoP and the configurable elements of CinC.&lt;br /&gt;
[[File:Generate - CreateContext.png|none|thumb|800px]]&lt;br /&gt;
# Add UoP Instance to the context.&lt;br /&gt;
##	Find the UoP Instance in the navigation tree and select it&lt;br /&gt;
## Drag it onto the context.&lt;br /&gt;
# Add a Transporter to the context.&lt;br /&gt;
## In the horizontal toolbar on the left side of the diagram find and select the transporter block&lt;br /&gt;
## Drag the transporter block onto the diagram.&lt;br /&gt;
# Create a Transport Channel&lt;br /&gt;
## With the transporter block selected, on the right side find the Transport Channel control and click on the &#039;+&#039; to add a new channel&lt;br /&gt;
## Give the channel a name and click the save icon. &lt;br /&gt;
## Once the save completes, click on the transport channel drop down and select the name of the channel you just created.&lt;br /&gt;
# Connect the blocks&lt;br /&gt;
##Select the Uop Instance block in the diagram&lt;br /&gt;
## click on the up arrow at the upper right corner of the block and drag it over to the transporter block. &lt;br /&gt;
## A popup dialog will allow you to select the UoP port to connect to the transporter, select the port from the drop down list and click on save.&lt;br /&gt;
#Commit the changes.&lt;br /&gt;
##Click the Commit button under the heading Model on the diagram tool bar.  This saves the changes to the Integration Model (IM) elements but does NOT save the diagram.&lt;br /&gt;
# Save the diagram&lt;br /&gt;
##click the middle disk icon under diagram in order to save the layout of the elements in the diagram.  This saves the layout of the items in the diagram but does NOT save changes to the Integration or Deployment models that may have been made while editing the diagram elements.&lt;br /&gt;
&lt;br /&gt;
== Create a Main ==&lt;br /&gt;
The Main Program represents the executable program containing one (or more) UoPs and CinC.&lt;br /&gt;
#A new Main Program can be created by selecting the corresponding option in the &#039;Create&amp;gt;Deployment&#039; dropdown and then saving after inputting the needed data including the UoP Instance.&lt;br /&gt;
[[File:Generate_-_CreateMainProgram2.png|none|thumb|800x800px]]&lt;br /&gt;
&lt;br /&gt;
== Add a TPM ==&lt;br /&gt;
The transport protocol module is responsible for the serialization and deserialization of messages and their transport from one TPM to another or another system. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;This step is optional as PHENOM will generate a UDP TPM by default.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[File:Generate - MainCreateTPM2.png|thumb|none|800px]]&lt;br /&gt;
# Within the Main detail page, after saving the main, click on the Create TPM button.  &lt;br /&gt;
# Give the TPM a name (&#039;tpm&#039; is fine).&lt;br /&gt;
# Click the save button.  &lt;br /&gt;
# Commit the changes to the main by clicking the disk icon in the upper right.&lt;br /&gt;
&lt;br /&gt;
== Generate CinC ==&lt;br /&gt;
#	Next the user needs to open the &#039;Generate&#039; section and click on the CinC submenu.&lt;br /&gt;
# The user should select &#039;CinC&#039; as the artifact. &lt;br /&gt;
# Select the version of CinC you would like to generate&lt;br /&gt;
# Select include CinC Source and choose Yes.&lt;br /&gt;
# Select the Main and UoP Instances for the context we created above and make sure they are both checked&lt;br /&gt;
# Select the appropriate license.&lt;br /&gt;
# Click on the Generate button and a zip file will be created.  The .zip file will contain the cinc source, the data modeled FACE types used by the UoP and the CinC configuration files. Save the file and extract the generated code.&lt;br /&gt;
[[File:Generate_-_CinC.png|none|thumb|800x800px]]&lt;br /&gt;
&lt;br /&gt;
[[Category:UserGuide|0044_Integration_Model_to_CinC_Generation]]&lt;/div&gt;</summary>
		<author><name>Chris</name></author>
	</entry>
	<entry>
		<id>https://kb.phenomportal.com/index.php?title=Merge_External_Model&amp;diff=1521</id>
		<title>Merge External Model</title>
		<link rel="alternate" type="text/html" href="https://kb.phenomportal.com/index.php?title=Merge_External_Model&amp;diff=1521"/>
		<updated>2025-12-12T14:52:44Z</updated>

		<summary type="html">&lt;p&gt;Chris: Created page with &amp;quot;A merge external model operation imports nodes from an external model file into the current project. During this process, the system checks each incoming node’s globally unique identifier (GUID):  * If the node’s ID does not already exist in the current project, the node is eligible to be added. * If the node’s ID is already present, the existing node in the project is preserved and the incoming one is ignored.  The merge also verifies that each incoming node has a...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;A merge external model operation imports nodes from an external model file into the current project. During this process, the system checks each incoming node’s globally unique identifier (GUID):&lt;br /&gt;
&lt;br /&gt;
* If the node’s ID does not already exist in the current project, the node is eligible to be added.&lt;br /&gt;
* If the node’s ID is already present, the existing node in the project is preserved and the incoming one is ignored.&lt;br /&gt;
&lt;br /&gt;
The merge also verifies that each incoming node has a valid parent in the destination project. Any node that cannot be placed under an appropriate parent - even if it would otherwise qualify for merging - is excluded to maintain structural consistency.  In order for a parent to be considered valid, the user must have (at least) write permissions (to the parent node) and the parent node must not be [[Projects and Models Management#Model Versions | published]].&lt;br /&gt;
&lt;br /&gt;
== Overwrite Option ==&lt;br /&gt;
If the Overwrite option is enabled, the merge behaves more aggressively. For nodes that exist in both the source model and the destination project, the system compares their contents. When differences are found, the destination node is updated to match the version from the source model.&lt;br /&gt;
&lt;br /&gt;
== Check for Name Collisions Option ==&lt;br /&gt;
The Check for Name Collisions option controls how the merge process handles situations where two different entities - identified by different GUIDs - share the same name.&lt;br /&gt;
&lt;br /&gt;
When &#039;&#039;&#039;enabled&#039;&#039;&#039;, the merge operation will fail if it encounters two distinct entities that use the same name. This safeguard ensures that no ambiguous or conflicting names are introduced into the project. (Entities with the same GUID and same name are not affected by this rule.)&lt;br /&gt;
&lt;br /&gt;
When &#039;&#039;&#039;disabled&#039;&#039;&#039;, the merge operation will complete even if name conflicts exist. In this mode, the system allows potentially overlapping names to coexist, and any required name adjustments must be resolved manually after the merge. &lt;br /&gt;
&lt;br /&gt;
This setting is recommended when merging models from unrelated or independently developed sources, where naming overlaps are more likely.&lt;/div&gt;</summary>
		<author><name>Chris</name></author>
	</entry>
	<entry>
		<id>https://kb.phenomportal.com/index.php?title=FAQ&amp;diff=1513</id>
		<title>FAQ</title>
		<link rel="alternate" type="text/html" href="https://kb.phenomportal.com/index.php?title=FAQ&amp;diff=1513"/>
		<updated>2025-10-23T12:21:46Z</updated>

		<summary type="html">&lt;p&gt;Chris: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== How do I submit a ticket? ==&lt;br /&gt;
If you have an issue or a questions, you can email us at [http://mailto:support@phenomportal.com support@phenomportal.com]. We&#039;ll have you up and running as soon as possible.&lt;br /&gt;
&lt;br /&gt;
== How can I share feedback &amp;amp; report bugs? ==&lt;br /&gt;
We welcome your feedback! If you&#039;ve identified a bug, need help with user access, or have recommendations for future features, please email us at [http://mailto:support@phenomportal.com support@phenomportal.com].&lt;br /&gt;
&lt;br /&gt;
== How often will new PHENOM features be released? ==&lt;br /&gt;
We’re constantly working to improve and extend PHENOM, both the software and the underlying data models and content. We&#039;ll always be making little tweaks to make things simpler for you, but of course, we have major new feature additions planned as well. Those improvements are released about every three weeks.&lt;br /&gt;
&lt;br /&gt;
Your Dashboard lists the most recent updates made, and we send out emails when there is major update available.&lt;br /&gt;
&lt;br /&gt;
Best of all, all software updates, enhancements, new modules as well as extensions to your data model are included in your licensing fee.&lt;br /&gt;
&lt;br /&gt;
== Can I see all this content on one page? ==&lt;br /&gt;
A curated set of articles from the knowledgebase can be found here [[User&#039;s Guide (One Page)]].&lt;/div&gt;</summary>
		<author><name>Chris</name></author>
	</entry>
	<entry>
		<id>https://kb.phenomportal.com/index.php?title=User%27s_Guide_(One_Page)&amp;diff=1512</id>
		<title>User&#039;s Guide (One Page)</title>
		<link rel="alternate" type="text/html" href="https://kb.phenomportal.com/index.php?title=User%27s_Guide_(One_Page)&amp;diff=1512"/>
		<updated>2025-10-23T12:19:39Z</updated>

		<summary type="html">&lt;p&gt;Chris: Chris moved page Book to User&amp;#039;s Guide (One Page) without leaving a redirect&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==About PHENOM Portal==&lt;br /&gt;
{{:About PHENOM Portal}}&lt;br /&gt;
&lt;br /&gt;
==Getting Started==&lt;br /&gt;
{{:Getting Started}}&lt;br /&gt;
&lt;br /&gt;
==Login==&lt;br /&gt;
{{:Login}}&lt;br /&gt;
&lt;br /&gt;
==Basic Navigation==&lt;br /&gt;
{{:Basic Navigation}}&lt;br /&gt;
&lt;br /&gt;
==Dashboard==&lt;br /&gt;
{{:Dashboard}}&lt;br /&gt;
&lt;br /&gt;
==Search Bar==&lt;br /&gt;
{{:Search Bar}}&lt;br /&gt;
&lt;br /&gt;
==Data Modeling==&lt;br /&gt;
{{:Data Modeling}}&lt;br /&gt;
&lt;br /&gt;
==Data Model Details==&lt;br /&gt;
{{:Data Model Details}}&lt;br /&gt;
&lt;br /&gt;
==Entity and Association==&lt;br /&gt;
{{:Entity and Association}}&lt;br /&gt;
&lt;br /&gt;
==View==&lt;br /&gt;
{{:View}}&lt;br /&gt;
&lt;br /&gt;
==View Attribute==&lt;br /&gt;
{{:View Attribute}}&lt;br /&gt;
&lt;br /&gt;
==Package==&lt;br /&gt;
{{:Package}}&lt;br /&gt;
&lt;br /&gt;
==Observable==&lt;br /&gt;
{{:Observable}}&lt;br /&gt;
&lt;br /&gt;
==Measurement==&lt;br /&gt;
{{:Measurement}}&lt;br /&gt;
&lt;br /&gt;
==Enumerations==&lt;br /&gt;
{{:Enumerations}}&lt;br /&gt;
&lt;br /&gt;
==Platform Type and Enumeration==&lt;br /&gt;
{{:Platform Type and Enumeration}}&lt;br /&gt;
&lt;br /&gt;
==Constraint==&lt;br /&gt;
{{:Constraint}}&lt;br /&gt;
&lt;br /&gt;
==Measurement System and Coordinate System==&lt;br /&gt;
{{:Measurement System and Coordinate System}}&lt;br /&gt;
&lt;br /&gt;
==Reference Point==&lt;br /&gt;
{{:Reference Point}}&lt;br /&gt;
&lt;br /&gt;
==Diagram==&lt;br /&gt;
{{:Diagram}}&lt;br /&gt;
&lt;br /&gt;
==Healthcheck==&lt;br /&gt;
{{:Healthcheck}}&lt;br /&gt;
&lt;br /&gt;
==Meridian Map==&lt;br /&gt;
{{:Meridian Map}}&lt;br /&gt;
&lt;br /&gt;
==Semantic Matches==&lt;br /&gt;
{{:Semantic Matches}}&lt;br /&gt;
&lt;br /&gt;
==View Trace==&lt;br /&gt;
{{:View Trace}}&lt;br /&gt;
&lt;br /&gt;
==Import==&lt;br /&gt;
{{:Import}}&lt;br /&gt;
&lt;br /&gt;
==Analytics==&lt;br /&gt;
{{:Analytics}}&lt;br /&gt;
&lt;br /&gt;
==Integration Modeling==&lt;br /&gt;
{{:Integration Modeling}}&lt;br /&gt;
&lt;br /&gt;
==Integration Model Details==&lt;br /&gt;
{{:Integration Model Details}}&lt;br /&gt;
&lt;br /&gt;
==Service / UOP &amp;amp; Message Port==&lt;br /&gt;
{{:Service / UOP &amp;amp; Message Port}}&lt;br /&gt;
&lt;br /&gt;
==Transport Channel==&lt;br /&gt;
{{:Transport Channel}}&lt;br /&gt;
&lt;br /&gt;
==Integration Model Editor==&lt;br /&gt;
{{:Integration Model Editor}}&lt;br /&gt;
&lt;br /&gt;
==Generate==&lt;br /&gt;
{{:Generate}}&lt;br /&gt;
&lt;br /&gt;
==Data Model Generation=={{:Data Model Generation}}&lt;br /&gt;
&lt;br /&gt;
==CinC Generation==&lt;br /&gt;
{{:CinC Generation}}&lt;br /&gt;
&lt;br /&gt;
==Templates==&lt;br /&gt;
{{:Templates}}&lt;br /&gt;
&lt;br /&gt;
==Manage==&lt;br /&gt;
{{:Manage}}&lt;br /&gt;
&lt;br /&gt;
==Projects and Models Management==&lt;br /&gt;
{{:Projects and Models Management}}&lt;br /&gt;
&lt;br /&gt;
==Push, Pull, and Approve Process==&lt;br /&gt;
{{:Push, Pull, and Approve Process}}&lt;br /&gt;
&lt;br /&gt;
==Review Project==&lt;br /&gt;
{{:Review Project}}&lt;br /&gt;
&lt;br /&gt;
==Permissions==&lt;br /&gt;
{{:Permissions}}&lt;br /&gt;
&lt;br /&gt;
==Tutorials==&lt;br /&gt;
{{:Tutorials}}&lt;br /&gt;
&lt;br /&gt;
==Developing an Entity Model==&lt;br /&gt;
{{:Developing an Entity Model}}&lt;br /&gt;
&lt;br /&gt;
==Document Interfaces using PHENOM Portal==&lt;br /&gt;
{{:Document Interfaces using PHENOM Portal}}&lt;br /&gt;
&lt;br /&gt;
==Integration Model to CinC Generation==&lt;br /&gt;
{{:Integration Model to CinC Generation}}&lt;br /&gt;
&lt;br /&gt;
==Support==&lt;br /&gt;
{{:Support}}&lt;/div&gt;</summary>
		<author><name>Chris</name></author>
	</entry>
	<entry>
		<id>https://kb.phenomportal.com/index.php?title=User%27s_Guide_(One_Page)&amp;diff=1511</id>
		<title>User&#039;s Guide (One Page)</title>
		<link rel="alternate" type="text/html" href="https://kb.phenomportal.com/index.php?title=User%27s_Guide_(One_Page)&amp;diff=1511"/>
		<updated>2025-10-22T20:44:08Z</updated>

		<summary type="html">&lt;p&gt;Chris: Created page with &amp;quot;==About PHENOM Portal== {{:About PHENOM Portal}}  ==Getting Started== {{:Getting Started}}  ==Login== {{:Login}}  ==Basic Navigation== {{:Basic Navigation}}  ==Dashboard== {{:Dashboard}}  ==Search Bar== {{:Search Bar}}  ==Data Modeling== {{:Data Modeling}}  ==Data Model Details== {{:Data Model Details}}  ==Entity and Association== {{:Entity and Association}}  ==View== {{:View}}  ==View Attribute== {{:View Attribute}}  ==Package== {{:Package}}  ==Observable== {{:Observabl...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==About PHENOM Portal==&lt;br /&gt;
{{:About PHENOM Portal}}&lt;br /&gt;
&lt;br /&gt;
==Getting Started==&lt;br /&gt;
{{:Getting Started}}&lt;br /&gt;
&lt;br /&gt;
==Login==&lt;br /&gt;
{{:Login}}&lt;br /&gt;
&lt;br /&gt;
==Basic Navigation==&lt;br /&gt;
{{:Basic Navigation}}&lt;br /&gt;
&lt;br /&gt;
==Dashboard==&lt;br /&gt;
{{:Dashboard}}&lt;br /&gt;
&lt;br /&gt;
==Search Bar==&lt;br /&gt;
{{:Search Bar}}&lt;br /&gt;
&lt;br /&gt;
==Data Modeling==&lt;br /&gt;
{{:Data Modeling}}&lt;br /&gt;
&lt;br /&gt;
==Data Model Details==&lt;br /&gt;
{{:Data Model Details}}&lt;br /&gt;
&lt;br /&gt;
==Entity and Association==&lt;br /&gt;
{{:Entity and Association}}&lt;br /&gt;
&lt;br /&gt;
==View==&lt;br /&gt;
{{:View}}&lt;br /&gt;
&lt;br /&gt;
==View Attribute==&lt;br /&gt;
{{:View Attribute}}&lt;br /&gt;
&lt;br /&gt;
==Package==&lt;br /&gt;
{{:Package}}&lt;br /&gt;
&lt;br /&gt;
==Observable==&lt;br /&gt;
{{:Observable}}&lt;br /&gt;
&lt;br /&gt;
==Measurement==&lt;br /&gt;
{{:Measurement}}&lt;br /&gt;
&lt;br /&gt;
==Enumerations==&lt;br /&gt;
{{:Enumerations}}&lt;br /&gt;
&lt;br /&gt;
==Platform Type and Enumeration==&lt;br /&gt;
{{:Platform Type and Enumeration}}&lt;br /&gt;
&lt;br /&gt;
==Constraint==&lt;br /&gt;
{{:Constraint}}&lt;br /&gt;
&lt;br /&gt;
==Measurement System and Coordinate System==&lt;br /&gt;
{{:Measurement System and Coordinate System}}&lt;br /&gt;
&lt;br /&gt;
==Reference Point==&lt;br /&gt;
{{:Reference Point}}&lt;br /&gt;
&lt;br /&gt;
==Diagram==&lt;br /&gt;
{{:Diagram}}&lt;br /&gt;
&lt;br /&gt;
==Healthcheck==&lt;br /&gt;
{{:Healthcheck}}&lt;br /&gt;
&lt;br /&gt;
==Meridian Map==&lt;br /&gt;
{{:Meridian Map}}&lt;br /&gt;
&lt;br /&gt;
==Semantic Matches==&lt;br /&gt;
{{:Semantic Matches}}&lt;br /&gt;
&lt;br /&gt;
==View Trace==&lt;br /&gt;
{{:View Trace}}&lt;br /&gt;
&lt;br /&gt;
==Import==&lt;br /&gt;
{{:Import}}&lt;br /&gt;
&lt;br /&gt;
==Analytics==&lt;br /&gt;
{{:Analytics}}&lt;br /&gt;
&lt;br /&gt;
==Integration Modeling==&lt;br /&gt;
{{:Integration Modeling}}&lt;br /&gt;
&lt;br /&gt;
==Integration Model Details==&lt;br /&gt;
{{:Integration Model Details}}&lt;br /&gt;
&lt;br /&gt;
==Service / UOP &amp;amp; Message Port==&lt;br /&gt;
{{:Service / UOP &amp;amp; Message Port}}&lt;br /&gt;
&lt;br /&gt;
==Transport Channel==&lt;br /&gt;
{{:Transport Channel}}&lt;br /&gt;
&lt;br /&gt;
==Integration Model Editor==&lt;br /&gt;
{{:Integration Model Editor}}&lt;br /&gt;
&lt;br /&gt;
==Generate==&lt;br /&gt;
{{:Generate}}&lt;br /&gt;
&lt;br /&gt;
==Data Model Generation=={{:Data Model Generation}}&lt;br /&gt;
&lt;br /&gt;
==CinC Generation==&lt;br /&gt;
{{:CinC Generation}}&lt;br /&gt;
&lt;br /&gt;
==Templates==&lt;br /&gt;
{{:Templates}}&lt;br /&gt;
&lt;br /&gt;
==Manage==&lt;br /&gt;
{{:Manage}}&lt;br /&gt;
&lt;br /&gt;
==Projects and Models Management==&lt;br /&gt;
{{:Projects and Models Management}}&lt;br /&gt;
&lt;br /&gt;
==Push, Pull, and Approve Process==&lt;br /&gt;
{{:Push, Pull, and Approve Process}}&lt;br /&gt;
&lt;br /&gt;
==Review Project==&lt;br /&gt;
{{:Review Project}}&lt;br /&gt;
&lt;br /&gt;
==Permissions==&lt;br /&gt;
{{:Permissions}}&lt;br /&gt;
&lt;br /&gt;
==Tutorials==&lt;br /&gt;
{{:Tutorials}}&lt;br /&gt;
&lt;br /&gt;
==Developing an Entity Model==&lt;br /&gt;
{{:Developing an Entity Model}}&lt;br /&gt;
&lt;br /&gt;
==Document Interfaces using PHENOM Portal==&lt;br /&gt;
{{:Document Interfaces using PHENOM Portal}}&lt;br /&gt;
&lt;br /&gt;
==Integration Model to CinC Generation==&lt;br /&gt;
{{:Integration Model to CinC Generation}}&lt;br /&gt;
&lt;br /&gt;
==Support==&lt;br /&gt;
{{:Support}}&lt;/div&gt;</summary>
		<author><name>Chris</name></author>
	</entry>
	<entry>
		<id>https://kb.phenomportal.com/index.php?title=View_Attribute&amp;diff=1510</id>
		<title>View Attribute</title>
		<link rel="alternate" type="text/html" href="https://kb.phenomportal.com/index.php?title=View_Attribute&amp;diff=1510"/>
		<updated>2025-10-22T20:28:46Z</updated>

		<summary type="html">&lt;p&gt;Chris: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;A View Attribute can be also referred to as view characteristic or view field.&lt;br /&gt;
&lt;br /&gt;
== Creating &amp;amp; Editing View Attributes ==&lt;br /&gt;
To create a new View Attribute, click the &amp;quot;Create&amp;quot; button in the Attributes section of a [[View]] details page:&lt;br /&gt;
&lt;br /&gt;
[[File:Phenom-data model-details view attr create.png|1200px|border]]&lt;br /&gt;
&lt;br /&gt;
[[File:Phenom-data model-details view attr new.png|1000px|border]]&lt;br /&gt;
&lt;br /&gt;
A View Attribute must have:&lt;br /&gt;
* A unique and conformant name&lt;br /&gt;
* An [[Observable]]&lt;br /&gt;
* A [[Measurement]]&lt;br /&gt;
* A path&lt;br /&gt;
&lt;br /&gt;
=== Name ===&lt;br /&gt;
The attribute&#039;s name must consist of letters, numbers, or underscores and start with a letter.&lt;br /&gt;
&lt;br /&gt;
=== Observable/Measurement ===&lt;br /&gt;
The user can either start by selecting an Observable and then the Measurement - the Measurement list will be filtered to the Measurements realizing the selected Observable - or select the Measurement first which will automatically select the Observable the Measurement realizes.&lt;br /&gt;
&lt;br /&gt;
[[File:Phenom-data model-details view attr obs meas.png|1000px|border]]&lt;br /&gt;
&lt;br /&gt;
=== Platform Type ===&lt;br /&gt;
Once the Measurement is selected, the user needs to either create a new Platform Type or select an existing one by clicking &amp;quot;Select Platform Type&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[[File:Phenom-data model-details view attr new ptf type.png|1000px|border]]&lt;br /&gt;
&lt;br /&gt;
[[File:Phenom-data model-details view attr select ptf type.png|1000px|border]]&lt;br /&gt;
&lt;br /&gt;
=== Path ===&lt;br /&gt;
The final step in creating a View Attribute is to add a semantic path using the path builder. The path is built hop by hop, starting with the entity/association attribute typing the selected observable. Each hop must be committed by clicking the checkmark before being able to move to the next. The last selected hop can be removed by clicking the x next to the new hop box. The current path of the attribute is rendered under the Path section title.&lt;br /&gt;
&lt;br /&gt;
[[File:Phenom-data model-details view attr path1.png|1000px|border]]&lt;br /&gt;
&lt;br /&gt;
After committing a hop, if there are additional hops that can be added, they will appear in the dropdown list, otherwise the text &amp;quot;No Possible Options&amp;quot; will appear.&lt;br /&gt;
&lt;br /&gt;
[[File:Phenom-data model-details view attr path2.png|1000px|border]]&lt;br /&gt;
&lt;br /&gt;
[[File:Phenom-data model-details view attr path3.png|1000px|border]]&lt;br /&gt;
&lt;br /&gt;
The circling arrow and the X next to the commit button respectively resets and cleans the path.&lt;br /&gt;
&lt;br /&gt;
[[File:Phenom-data model-details view attr path4.png|1000px|border]]&lt;br /&gt;
&lt;br /&gt;
=== Destructure Linkers ===&lt;br /&gt;
Destructure Linkers are available when a view attribute has a IDL Struct Platform Type. The option is present on the view attribute page.&lt;br /&gt;
[[File:IDLStruct in Attribute Page.png|frameless|1007x1007px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
When enabling the Destructure Linker toggle, some additional options will pop up such as a Destructure Reference radio button and a option to create a new, or select an existing Destructure Linker. It&#039;s only possible to select a single IDL Composition as a Destructure Reference.&lt;br /&gt;
&lt;br /&gt;
[[File:Destructure linker enabled.png|frameless|1017x1017px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
After saving when selecting a Reference and a Linker, the parent view of the attribute will now update it&#039;s &#039;Query and Template Preview&#039; to include the new Destructure Linker&lt;br /&gt;
&lt;br /&gt;
[[File:Update Query and Template Preview.png|frameless|1013x1013px]]&lt;br /&gt;
&lt;br /&gt;
== Creating &amp;amp; Editing Nesting View Attributes ==&lt;br /&gt;
To create a new Nesting View Attribute, click the &amp;quot;Add Nesting&amp;quot; button in the Attributes section of a View details page:&lt;br /&gt;
&lt;br /&gt;
[[File:Phenom-data model-details nesting view attr create.png|1000px|border]]&lt;br /&gt;
&lt;br /&gt;
A Nesting View Attribute must have:&lt;br /&gt;
* A unique and conformant name&lt;br /&gt;
* A View&lt;br /&gt;
* A path&lt;br /&gt;
* Be Privately Scoped or Foreign Reference&lt;br /&gt;
&lt;br /&gt;
Nesting View Attributes are created and edited inline. Any new or updated Nesting View Attributes will be saved when the user clicks on the &amp;quot;Save&amp;quot; button either for the row or for the entire View.&lt;br /&gt;
&lt;br /&gt;
A Nesting View Attribute must point to a view with a uniform projected characteristic. The foreign referenced Nesting View Attribute&#039;s uniform projected characteristic must match the type of the last hop of the perspective path used by any field that nests it.&lt;br /&gt;
&lt;br /&gt;
A Nesting View Attribute can either be a &amp;quot;Foreign Reference&amp;quot; or a &amp;quot;Privately Scoped&amp;quot; attribute. If the Private checkbox is checked, then the attribute is marked as &amp;quot;Privately Scoped&amp;quot; otherwise, it is marked as &amp;quot;Foreign Reference&amp;quot;. New Nesting View Attribute defaults to &amp;quot;Privately Scoped&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Note that when switching from a Nesting to a Composite View, the Path/Perspective attribute and the Private attribute are cleared on save.&lt;br /&gt;
&lt;br /&gt;
[[Category:UserGuide|011_View_Attribute]]&lt;/div&gt;</summary>
		<author><name>Chris</name></author>
	</entry>
	<entry>
		<id>https://kb.phenomportal.com/index.php?title=Getting_Started&amp;diff=1465</id>
		<title>Getting Started</title>
		<link rel="alternate" type="text/html" href="https://kb.phenomportal.com/index.php?title=Getting_Started&amp;diff=1465"/>
		<updated>2025-10-22T17:20:50Z</updated>

		<summary type="html">&lt;p&gt;Chris: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Welcome to PHENOM by Skayl! == &lt;br /&gt;
&lt;br /&gt;
If you&#039;re new to PHENOM, or if you haven&#039;t had your introductory training yet, this page can help get you oriented to some of the tools basic features.  Click on the Getting Started link below to see a tree of links to instructions on beginning functionality within PHENOM, including login, settings, navigating and editing.&lt;br /&gt;
&lt;br /&gt;
== Introductory Topics ==&lt;br /&gt;
* [[Login]]&lt;br /&gt;
* [[Dashboard]]&lt;br /&gt;
* [[Data Modeling]]&lt;br /&gt;
* [[Integration Modeling]]&lt;br /&gt;
* [[Generate]]&lt;br /&gt;
* [[Manage]]&lt;br /&gt;
&lt;br /&gt;
[[Category:UserGuide|002_Getting_Started]]&lt;/div&gt;</summary>
		<author><name>Chris</name></author>
	</entry>
	<entry>
		<id>https://kb.phenomportal.com/index.php?title=About_PHENOM_Portal&amp;diff=1464</id>
		<title>About PHENOM Portal</title>
		<link rel="alternate" type="text/html" href="https://kb.phenomportal.com/index.php?title=About_PHENOM_Portal&amp;diff=1464"/>
		<updated>2025-10-22T17:20:08Z</updated>

		<summary type="html">&lt;p&gt;Chris: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Not Just another Modeling Tool =&lt;br /&gt;
The Skayl team has been practicing this form of data modeling since 2011...before Skayl even existed.  Our team worked together on a project developing the modeling technology as well as an initial model.  After one particular model update cycle, a couple of million dollars worth of work was lost.  A minor change in the model resulted in the need to reproduce a lot of work.  To make matters worse, this could have been avoided with some specialized tooling.  Thus the idea of PHENOM was born.  At that moment, we committed to make sure this amount of loss would not occur again.  &lt;br /&gt;
&lt;br /&gt;
Skayl did not aspire to be a tool vendor.  We developed the tool we needed to data model and decided to share it with others.  PHENOM has continued to grow as our customer needs change.&lt;br /&gt;
&lt;br /&gt;
== The Initial Release of PHENOM ==&lt;br /&gt;
The original PHENOM release was based on the idea of &amp;quot;one domain specific data model per server.&amp;quot;  Skayl envisioned hosting many different DSDMs for different purposes.  One server would exist for the Aerospace and Defense community.  Another server would exist for medical technology, etc.  It wasn&#039;t long before users wanted to upload their own models and import their own content.  Thus the tool (and our vision for us) started to evolve.&lt;br /&gt;
&lt;br /&gt;
= Release Cycle =&lt;br /&gt;
We’re constantly working to improve and extend PHENOM, both the software and the underlying data models and content.  We are always making little tweaks to make things simpler for you, but of course, we have major new feature additions planned as well.&lt;br /&gt;
&lt;br /&gt;
Your Dashboard will list the most recent updates made, and we’ll send out emails when there is major update available. Of course, if you use the Skayl-hosted version of PHENOM, the updates will automatically appear the next time you login.  If you are an enterprise user, your IT department will periodically update your PHENOM instance to the latest version.&lt;br /&gt;
&lt;br /&gt;
[[Category:UserGuide|001_About_PHENOM_Portal]]&lt;/div&gt;</summary>
		<author><name>Chris</name></author>
	</entry>
	<entry>
		<id>https://kb.phenomportal.com/index.php?title=Support&amp;diff=1463</id>
		<title>Support</title>
		<link rel="alternate" type="text/html" href="https://kb.phenomportal.com/index.php?title=Support&amp;diff=1463"/>
		<updated>2025-10-22T16:58:02Z</updated>

		<summary type="html">&lt;p&gt;Chris: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==How Do I Submit a Ticket?==&lt;br /&gt;
Please email us at support@skayl.com. We&#039;ll have you up and running as soon as possible.&lt;br /&gt;
&lt;br /&gt;
==How Can I Share Feedback &amp;amp; Report Bugs?==&lt;br /&gt;
We welcome your feedback! If you&#039;ve identified a bug or have recommendations for future features, please email us at support@skayl.com.&lt;/div&gt;</summary>
		<author><name>Chris</name></author>
	</entry>
	<entry>
		<id>https://kb.phenomportal.com/index.php?title=Creating_a_Filtered_Project&amp;diff=1462</id>
		<title>Creating a Filtered Project</title>
		<link rel="alternate" type="text/html" href="https://kb.phenomportal.com/index.php?title=Creating_a_Filtered_Project&amp;diff=1462"/>
		<updated>2025-10-22T16:50:16Z</updated>

		<summary type="html">&lt;p&gt;Chris: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;This Feature is Current Inactive.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
In some instances, a user may wish to share only a small part of a project with another user, without burdening them with the entirety of it. If the user you are sharing with only needs access to a few views or a subset of the measurements available, this functionality can be utilized to build a new filtered project that maintains its model inheritance relationship with the initial project. Any changes made to this new project can be pushed up to the initial project, and any changes made in the initial project can be pulled down to the filtered project so long as the changes are to a non-filtered element.&lt;br /&gt;
&lt;br /&gt;
== Create a new filtered project ==&lt;br /&gt;
In order to create a filtered project, follow these steps:&lt;br /&gt;
# Go to the Manage Models page in PHENOM&lt;br /&gt;
# Select the project that you would like to filter&lt;br /&gt;
# You will notice a &amp;quot;Create new filtered project&amp;quot; button appear at the top of the list&lt;br /&gt;
#:[[File:Phenom-manage-create filtered project.png|border]]&lt;br /&gt;
# Once you click that button, the right panel will load the creation form with two Nav Trees&lt;br /&gt;
#: [[File:Phenom-manage-new filtered project.png|600px|border]]&lt;br /&gt;
# In this panel, there are several options that make filtering your project easier&lt;br /&gt;
#* &#039;&#039;Project Name&#039;&#039;: this is the name of your resulting filtered project. It defaults to the name of your initial project with &amp;quot;_filtered&amp;quot; added to the end.&lt;br /&gt;
#* &#039;&#039;New Project Starting State&#039;&#039;: this allows you to choose the starting state of your project, either a full project from which you remove elements or an empty project to which you add elements.&lt;br /&gt;
#* &#039;&#039;Left Hand Nav Tree&#039;&#039;: this is the Nav Tree that represents the initial project. In this Nav Tree, you&#039;ll find every element from the model.&lt;br /&gt;
#* &#039;&#039;Right Hand Nav Tree&#039;&#039;: this is the Nav tree that represents your filtered project. This tree will change as you add and remove elements from the initial project.&lt;br /&gt;
#* &#039;&#039;Add Button&#039;&#039;: this button will add the selected model elements from the Left Hand Nav Tree and all the elements that they depend on to the Right Hand Nav Tree.&lt;br /&gt;
#* &#039;&#039;Remove Button&#039;&#039;: this button will remove the selected model elements from the Right Hand Nav Tree and all the elements that depend on them.&lt;br /&gt;
# Once you have used the options above to filter your project to your satisfaction, you can press the Save button in the top right corner. This will create a new project that contains only the elements in the Right Hand Nav Tree, but still inherits from the models in the initial project.&lt;br /&gt;
&lt;br /&gt;
== Alter a filtered project ==&lt;br /&gt;
Should you not be satisfied with your filtering and wish to change it, you may press the alter filter button on the top right corner of the project details pane of the newly created project.&lt;br /&gt;
Please note this button is only available so long as no changes have been pushed from the filtered project and no other models have inherited from the models in the filtered project.&lt;br /&gt;
This button will launch the filtering dialog again, where you can follow the same steps until your model is filtered to your satisfaction.&lt;br /&gt;
[[File:Phenom-manage-alter filtered project.png|600px|border]]&lt;/div&gt;</summary>
		<author><name>Chris</name></author>
	</entry>
	<entry>
		<id>https://kb.phenomportal.com/index.php?title=Data_Modeling&amp;diff=1461</id>
		<title>Data Modeling</title>
		<link rel="alternate" type="text/html" href="https://kb.phenomportal.com/index.php?title=Data_Modeling&amp;diff=1461"/>
		<updated>2025-10-22T16:07:37Z</updated>

		<summary type="html">&lt;p&gt;Chris: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==[[Data Model Details]]==&lt;br /&gt;
The details tab is where most of the detailed model editing is done. Although selecting the [[details]] tab directly does very little, this is where the properties appear once an element has been selected from the [[NavTree]].&lt;br /&gt;
&lt;br /&gt;
==[[Diagram]]==&lt;br /&gt;
Diagrams are a very easy way to visualize models and explore their connectivity. A modeling tool would not be complete without some means of building diagrams. While constructing PHENOM&#039;s diagramming engine, users expressed their desire for a &amp;quot;modeling scratchpad&amp;quot; capability. This concept allows users to build model content without immediately affecting the data model. This makes it possible to experiment with different modeling ideas without adding a bunch of intermediate content to the model. The new elements become official model content once they are &amp;quot;committed.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Beyond modeling new elements and patterns, the diagram tool can be used to build interface documentation. This functions oppositely from PHENOM&#039;s typical mode of documentation. Instead of start with the most specific details and then adding context, this view editing tool starts with the broadest context and narrows down to the most specific details. This approach is difficult to use unless you know the data model.&lt;br /&gt;
&lt;br /&gt;
==[[Health Check|Healthcheck]]==&lt;br /&gt;
Rapidly check the overall health of your data model using PHENOM&#039;s Health Check. It runs 19 different tests against the model. &lt;br /&gt;
&lt;br /&gt;
Some of the health checks provide tools to help users fix errors.&lt;br /&gt;
&lt;br /&gt;
==[[Analytics]]==&lt;br /&gt;
These are tools that provide additional insight into the model. It can show the distribution of entities and attributes used in the documentation. This helps identify areas of the model where refactoring activities can provide the greatest benefit.&lt;br /&gt;
&lt;br /&gt;
==[[Meridian Map]]==&lt;br /&gt;
The Meridian Map is a type of ribbon diagram that shows the semantic alignment of a collection of views. Drag up to 50 views into the Meridian Map, and it will quickly render the a graph showing all of the 100% semantic matches. &lt;br /&gt;
&lt;br /&gt;
By default, this alignment works at the conceptual level. This means that a latitude position will map to a longitude position. In order to further filter using the measurement information, make sure that &amp;quot;Logical Matches Only&amp;quot; is selected.&lt;br /&gt;
&lt;br /&gt;
==[[View Trace]]==&lt;br /&gt;
The View Trace tool allows users to map a set of views (one or more) to another set of views (one or more). Although the data model automates the View Trace process, there are times when it is necessary to map dissimilar semantics. View Trace is the primary mechanism for overriding semantic mappings.&lt;br /&gt;
&lt;br /&gt;
==[[Import]]==&lt;br /&gt;
Although loading FACE XMI models (.face files) is the primary mechanism for importing bulk data into PHENOM, the import section has some helpful tools for importing data that may not conform to this default format.&lt;br /&gt;
&lt;br /&gt;
PHENOM has the ability to import: [[Entity and Association| Entities]], [[Entity and Association| Associations]], [[View]]s, [[Platform Type and Enumeration|Enumerations]], [[Constraint]]s, and [[Platform Type and Enumeration|Platform Types]].&lt;br /&gt;
&lt;br /&gt;
[[Category:UserGuide|003_Data_Modeling]]&lt;/div&gt;</summary>
		<author><name>Chris</name></author>
	</entry>
	<entry>
		<id>https://kb.phenomportal.com/index.php?title=Dashboard&amp;diff=1460</id>
		<title>Dashboard</title>
		<link rel="alternate" type="text/html" href="https://kb.phenomportal.com/index.php?title=Dashboard&amp;diff=1460"/>
		<updated>2025-10-22T16:06:49Z</updated>

		<summary type="html">&lt;p&gt;Chris: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;PHENOM&#039;s Dashboard is the first screen users will see when they log in. The Dashboard communicates the latest general analytics regarding the core model, recent changes to the model, and the most recent as well as archived Release Notes, containing a summary of the latest features added to PHENOM.  The dashboard also provides a series of Quick Links - these are common actions intended to help the novice user find what they need easily.&lt;br /&gt;
&lt;br /&gt;
== Using the Dashboard ==&lt;br /&gt;
When you first log into PHENOM, you will see your personal dashboard.  This section will show you the key elements of the dashboard.&lt;br /&gt;
&lt;br /&gt;
Across the very top of your dashboard, you find your login name as well as the name of your current branch.  Read more about [[Branches]].  Since PHENOM allows you to change branches and work in other models, this is a helpful tool so you can be sure that you are editing the branch of the model you expect.&lt;br /&gt;
&lt;br /&gt;
[[File:Phenom dashboard 1.jpg|thumb|center|alt=This is a screenshot that highlights where the username and currently active project is shown.|Current User and Branch Identification]]&lt;br /&gt;
&lt;br /&gt;
On the left-hand side, you will see the navigation links.  This is where you can choose between the major functions of PHENOM. &lt;br /&gt;
&lt;br /&gt;
NOTE: This interface is expected to change.  While it may look different and the currently listed commands may be allocated to another place on the website, the function remains the same.  Use this area to switch between the main modes of operation of the site.&lt;br /&gt;
&lt;br /&gt;
[[File:Phenom dashboard 2.jpg|thumb|center]]&lt;br /&gt;
&lt;br /&gt;
Across the top of the dashboard, you see the project overview.  This is a live count of the number of entities, attributes, and views currently managed in your branch. The shapes, sizes and proportions of the regions in the overview can provide a high-level idea of model quality and how the model is currently used.&lt;br /&gt;
&lt;br /&gt;
[[File:Phenom dashboard 3.jpg|thumb|center]]&lt;br /&gt;
&lt;br /&gt;
The next section is a series of Quick Links.  These are common actions that are commonly performed in PHENOM and is intended to help a novice user quickly navigate to the correct function.  &lt;br /&gt;
&lt;br /&gt;
[[File:Phenom dashboard 5.jpg|thumb|center]]&lt;br /&gt;
&lt;br /&gt;
Finally, you see the notification area typically used to announce the features added in the latest release.  When you log in, you can go here to find out what has changed since the last update of the software.  &lt;br /&gt;
&lt;br /&gt;
[[File:Phenom dashboard 4.jpg|thumb|center]]&lt;br /&gt;
&lt;br /&gt;
[[Category:UserGuide|002_Dashboard]]&lt;/div&gt;</summary>
		<author><name>Chris</name></author>
	</entry>
	<entry>
		<id>https://kb.phenomportal.com/index.php?title=Login&amp;diff=1459</id>
		<title>Login</title>
		<link rel="alternate" type="text/html" href="https://kb.phenomportal.com/index.php?title=Login&amp;diff=1459"/>
		<updated>2025-10-22T16:05:04Z</updated>

		<summary type="html">&lt;p&gt;Chris: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;PHENOM users will be prompted for a username and password upon login.  Each user should have a unique username.  If a user has set up Two-Factor Authentication previously, this authentication will be requested after the username and password is verified.&lt;br /&gt;
&lt;br /&gt;
== Requesting an Account ==&lt;br /&gt;
To request a new user account to PHENOM:&lt;br /&gt;
&lt;br /&gt;
# Contact your organization&#039;s PHENOM administrator and request access&lt;br /&gt;
or&lt;br /&gt;
# email INQUIRIES@SKAYL.COM &lt;br /&gt;
# Include your organization&#039;s name, your full name, your email address, phone number in the email&lt;br /&gt;
&lt;br /&gt;
== Logging Into PHENOM ==&lt;br /&gt;
Login Using Username and Password&lt;br /&gt;
&lt;br /&gt;
#Go to your PHENOM portal URL&lt;br /&gt;
#Enter your username&lt;br /&gt;
#Enter your password (of this is your first time logging in, enter the password provided to you. Once you are logged in, you can change your password in [[Settings]])&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
PHENOM_Login_Screenshot.png|Screenshot of PHENOM Portal Login Prompt&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Logging in with Two-Factor Authentication ==&lt;br /&gt;
Once you have set up Two-Factor Authentication, you will need access to your mobile device to login to your PHENOM account.&lt;br /&gt;
&lt;br /&gt;
#At the Login prompt, enter your PHENOM username and password&lt;br /&gt;
#Upon successful password verification, PHENOM will request your Authenticator passcode&lt;br /&gt;
#Open the Authenticator app on your phone&lt;br /&gt;
#Under PHENOM, you will find the Authenticator passcode, enter this code into PHENOM&lt;br /&gt;
#You are now logged into PHENOM&lt;br /&gt;
&lt;br /&gt;
== Requesting a New Password ==&lt;br /&gt;
To request a new password to PHENOM:&lt;br /&gt;
&lt;br /&gt;
On the login page, click “request a new password”:&lt;br /&gt;
&lt;br /&gt;
[[File:Phenom Password Request Step 1.png|none|none]]&lt;br /&gt;
&lt;br /&gt;
Enter your username and click “Request Reset”:&lt;br /&gt;
&lt;br /&gt;
[[File:Phenom Password Request Step 2.png|none|none]]&lt;br /&gt;
&lt;br /&gt;
After a few minutes you should receive a password reset email. Copy paste the link into your web browser (if it redirects to the login page, copy paste the link and refresh the page again):&lt;br /&gt;
&lt;br /&gt;
[[File:Phenom Password Request Step 3.png|none|none]]&lt;br /&gt;
&lt;br /&gt;
Enter a new password, click “Reset Password”.&lt;br /&gt;
&lt;br /&gt;
[[File:Phenom Password Request Step 4.png|none|none]]&lt;br /&gt;
&lt;br /&gt;
Login with your username and new password.&lt;br /&gt;
&lt;br /&gt;
[[File:PHENOM_Login_Screenshot.png|none|none]]&lt;br /&gt;
&lt;br /&gt;
[[Category:UserGuide|001_Logging_In]]&lt;/div&gt;</summary>
		<author><name>Chris</name></author>
	</entry>
	<entry>
		<id>https://kb.phenomportal.com/index.php?title=Getting_Started&amp;diff=1458</id>
		<title>Getting Started</title>
		<link rel="alternate" type="text/html" href="https://kb.phenomportal.com/index.php?title=Getting_Started&amp;diff=1458"/>
		<updated>2025-10-22T15:49:14Z</updated>

		<summary type="html">&lt;p&gt;Chris: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Welcome to PHENOM by Skayl! == &lt;br /&gt;
&lt;br /&gt;
If you&#039;re new to PHENOM, or if you haven&#039;t had your introductory training yet, this page can help get you oriented to some of the tools basic features.  Click on the Getting Started link below to see a tree of links to instructions on beginning functionality within PHENOM, including login, settings, navigating and editing.&lt;br /&gt;
&lt;br /&gt;
== Introductory Topics ==&lt;br /&gt;
* [[Login]]&lt;br /&gt;
* [[Dashboard]]&lt;br /&gt;
* [[Data Modeling]]&lt;br /&gt;
* [[Integration Modeling]]&lt;br /&gt;
* [[Generate]]&lt;br /&gt;
* [[Manage]]&lt;br /&gt;
&lt;br /&gt;
[[Category:UserGuide]]&lt;/div&gt;</summary>
		<author><name>Chris</name></author>
	</entry>
	<entry>
		<id>https://kb.phenomportal.com/index.php?title=User:Chris/Books/User%27s_Guide&amp;diff=1457</id>
		<title>User:Chris/Books/User&#039;s Guide</title>
		<link rel="alternate" type="text/html" href="https://kb.phenomportal.com/index.php?title=User:Chris/Books/User%27s_Guide&amp;diff=1457"/>
		<updated>2025-10-20T19:31:08Z</updated>

		<summary type="html">&lt;p&gt;Chris: Created page with &amp;quot;{{saved_book}}  :Main Page  User&amp;amp;#39;s Guide&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{saved_book}}&lt;br /&gt;
&lt;br /&gt;
:[[Main Page]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Books|User&amp;amp;#39;s Guide]]&lt;/div&gt;</summary>
		<author><name>Chris</name></author>
	</entry>
	<entry>
		<id>https://kb.phenomportal.com/index.php?title=Projects_and_Models_Management&amp;diff=1456</id>
		<title>Projects and Models Management</title>
		<link rel="alternate" type="text/html" href="https://kb.phenomportal.com/index.php?title=Projects_and_Models_Management&amp;diff=1456"/>
		<updated>2025-09-24T20:51:29Z</updated>

		<summary type="html">&lt;p&gt;Chris: /* Copy Project */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Projects &amp;amp; Models 101 ==&lt;br /&gt;
A &#039;&#039;&#039;project&#039;&#039;&#039; in PHENOM is composed of one or more models which are loaded together into a workspace.&lt;br /&gt;
A &#039;&#039;&#039;model&#039;&#039;&#039; is a collection of nodes. A node can be an entity, an association, an observable, a view…&lt;br /&gt;
One objective of a project is to be:&lt;br /&gt;
* Independent &lt;br /&gt;
* Complete: reflect the reality to the best of its ability&lt;br /&gt;
* Compliant  &lt;br /&gt;
* Valid  (or at least &amp;quot;validatable &amp;quot;)&lt;br /&gt;
A model in and of itself might not constitute a complete, compliant, or even valid project as it might depend on entities inside other models, making it impossible to load independently. However, by combining several models in a project, they can form a complete, compliant, and valid model.&lt;br /&gt;
&lt;br /&gt;
[[File:Phenom-manage-project model structure1.png|600px|border]]&lt;br /&gt;
&lt;br /&gt;
The following diagram depicts how a model can be part of multiple projects.&lt;br /&gt;
&lt;br /&gt;
[[File:Phenom-manage-project model structure2.png|600px|border]]&lt;br /&gt;
&lt;br /&gt;
Once a project is loaded into PHENOM, the node contents of its constituent models can be added to as well as edited.&lt;br /&gt;
&lt;br /&gt;
== Projects Management ==&lt;br /&gt;
When in PHENOM &amp;gt; Manage Models &amp;gt; Projects, the user can see the projects and models they have access to.&lt;br /&gt;
&lt;br /&gt;
[[File:Phenom-manage-projects models list.png|500px|border]]&lt;br /&gt;
&lt;br /&gt;
The project you are currently working on is displayed at the top of all the pages. Additionally, in the Manage Projects page, the active project is the expanded by default and has a different icon.&lt;br /&gt;
&lt;br /&gt;
[[File:Phenom-manage-active project.png|600px|border]]&lt;br /&gt;
 &lt;br /&gt;
To create a project, the user can click on the + button in the Projects list and then select existing models, import new FACE models, or add new blank models.&lt;br /&gt;
&lt;br /&gt;
[[File:Phenom-manage-new project.png|600px|border]]&lt;br /&gt;
&lt;br /&gt;
There are three ways a user can have access to a project or a model:&lt;br /&gt;
* The user creates it&lt;br /&gt;
* The user uploads it&lt;br /&gt;
* The user is assigned permissions from an external user&lt;br /&gt;
The user will see, for each model, its inheritors and versions.&lt;br /&gt;
&lt;br /&gt;
The user can easily switch between projects in the Projects Management page.&lt;br /&gt;
&lt;br /&gt;
[[File:Phenom-manage-switch-project-2.png|border|800x800px]]&lt;br /&gt;
&lt;br /&gt;
== Model Versions ==&lt;br /&gt;
In PHENOM, models maintain the content as well as the record of changes made to that content.&lt;br /&gt;
&lt;br /&gt;
By default, each model has a &amp;quot;live&amp;quot; version. This is the version of the model which, when loaded in a project can be edited and amended.&lt;br /&gt;
&lt;br /&gt;
When the user is satisfied with the current state of a model, they can publish it, thus creating a “static” version of that model. A published version of a model is a snapshot of its content at one point in time. It cannot be added to or edited but can still be included in a project, referenced by and depended upon by the contents of a different model.&lt;br /&gt;
&lt;br /&gt;
In the example below, the model version FACE_SDM_306 and FACE_SDM_316 are a &amp;quot;published&amp;quot; version of the FACE_SDM model. While it can be shared with other users, included in a project, and referred to and depended upon by other models, it can never be edited. In the Model tree, all published models have their publication dates displayed for ease of use.&lt;br /&gt;
&lt;br /&gt;
[[File:Phenom-manage-published model.png|600px|border]]&lt;br /&gt;
&lt;br /&gt;
== Model Inheritance &amp;amp; Content Merging ==&lt;br /&gt;
The same model can be loaded as a part of several different projects. However, the users of those projects will not be able to edit the content of the model simultaneously.&lt;br /&gt;
When a user chooses to include in a project a model which is already a part of a different project, a &amp;quot;child&amp;quot; model will be created. This inheriting or &amp;quot;child&amp;quot; model is not a different version of a model, but rather its own model which inherits some portion of its content.&lt;br /&gt;
At first, the inheriting and the parent models are identical but as their respective user make changes, they grow apart. Therefore, it’s possible for this &amp;quot;child&amp;quot; model to merge its changes to and from the parent model.&lt;br /&gt;
A user can see the relationships between models in Manage Models &amp;gt; Projects &amp;gt; Model.&lt;br /&gt;
In this example, the model Coffee is the parent of the model Coffee_in_Coffee_2. This results from the Coffee_live version of the Coffee model being loaded into a new project. When edits are made in either the parent or child model, the changes can be merged between them.&lt;br /&gt;
&lt;br /&gt;
[[File:Phenom-manage-model branching.png|600px|border]]&lt;br /&gt;
&lt;br /&gt;
Clicking on a live or published model will display its characteristics on the right panel. The user will be able to edit some of the model&#039;s characteristics and the permissions of the model, provided the user has Admin or Owner privileges for that model.&lt;br /&gt;
&lt;br /&gt;
[[File:Phenom-manage-model details2.png|border|800x800px]]&lt;br /&gt;
&lt;br /&gt;
== Copy Project (Create Branch) ==&lt;br /&gt;
Copying a project allows for easy cloning of project content with just a click of a button. The resulting project will contain a child of all the live models of the source project and the same published models.&lt;br /&gt;
&lt;br /&gt;
To copy a project, the user just needs to select a project from their project tree and click the copy project icon on the top-right.&lt;br /&gt;
[[File:Manage - Copybtn.png|none|800px]]&lt;br /&gt;
The copy project screen closely resembles the project creation screen, requiring the user to input a new name and description for the new project. Additionally, the user must choose whether to copy the existing permissions from the source project to the copied project before saving.&lt;br /&gt;
[[File:Manage - CopyCreate.png|none|800px]]&lt;br /&gt;
&lt;br /&gt;
== PHENOM-Managed SDMs ==&lt;br /&gt;
PHENOM comes loaded with official FACE Shared Data Models (SDMs) for FACE Technical Standard Editions 2.1, 3.0, 3.1, and 3.2.&lt;br /&gt;
&lt;br /&gt;
=== Creating a Project with an SDM ===&lt;br /&gt;
The user can create a project by importing a model file and/or selecting existing model.&lt;br /&gt;
&lt;br /&gt;
If the user choses to import a model file containing an SDM, PHENOM will try to replace it with its managed version. This will allow the user to benefit from the ability to update SDM version in the future.&lt;br /&gt;
During import, PHENOM will scan the model and if it detects a &amp;lt;dm/&amp;gt; node with the exact same name as one of the managed SDM model, it will try to replace it. However, if the imported SDM model contains more content than what is present in the &amp;quot;official&amp;quot; SDM, the swap will not occur (e.g. a custom measurement was added to package inside the SDM).&lt;br /&gt;
&lt;br /&gt;
If for some reason, an expected SDM doesn&#039;t swap to a PHENOM-managed SDM, the user can proceed as follows to manually do it:&lt;br /&gt;
# Click on Create New Model and import the model file; this may lead to several models being created from the original file&lt;br /&gt;
# Click on Create New Project, and instead of uploading a file, select all the models that were created in step 1 except for the SDM one. Instead of selecting that SDM model, select one of the PHENOM-managed SDM models&lt;br /&gt;
# (Optional) Delete the SDM model that was created in step 1&lt;br /&gt;
&lt;br /&gt;
Alternatively, the user can chose to create the project by using one of the SDMs in the list of existing models.&lt;br /&gt;
&lt;br /&gt;
=== Update a Project&#039;s SDM model ===&lt;br /&gt;
&lt;br /&gt;
If the project contains a PHENOM-managed SDM, the user has the ability to switch between versions of the SDM on the Project details page.&lt;br /&gt;
&lt;br /&gt;
If the project contains a custom version of an SDM, it is possible to replace it with a PHENOM-managed. To do so, the user needs to follow these steps:&lt;br /&gt;
# Delete the original project containing the custom SDM. In the confirmation window, DO &#039;&#039;&#039;NOT&#039;&#039;&#039; select any constituent models for deletion&lt;br /&gt;
# Create a new project, and instead of uploading a file, select all the models that were included in the original deleted project except for the SDM one, and of the PHENOM-managed SDM models&lt;br /&gt;
# (Optional) Delete the custom SDM model&lt;br /&gt;
&lt;br /&gt;
== Sample Workflow ==&lt;br /&gt;
This section goes over a sample workflow which employs the PHENOM project and model structure concepts described in the sections above.&lt;br /&gt;
In the scenario laid out below, a group of users, Chris, Dave, Nick, and Riley are working on different parts of completing a data model and documenting a set of interfaces against it. Each of them plays a slightly different role in the process, and they will use some of PHENOM&#039;s Model management features to keep their work organized.&lt;br /&gt;
&lt;br /&gt;
=== Part 1 – Chris ===&lt;br /&gt;
Chris is working on updating the Shared Data Model (SDM) the group is using to conform to the latest changes released in an accepted standard. The user loads an SDM content file to create a model.&lt;br /&gt;
[[File:Workflow-newModel.png|border|800px]]&lt;br /&gt;
&lt;br /&gt;
[[File:Worlflow - CreatedSubmodel.png|border|300px]]&lt;br /&gt;
 &lt;br /&gt;
The user loads the model into an SDM_Editor project and begins to make the changes.&lt;br /&gt;
&lt;br /&gt;
[[File:Worlflow - CreatingProject.png|border|800px]]&lt;br /&gt;
&lt;br /&gt;
[[File:Workflow - SwitchProject.png|border|300px]]&lt;br /&gt;
&lt;br /&gt;
Once the user has made the changes necessary to match a decided-upon standard, the user publishes a version v1 of his SDM model.&lt;br /&gt;
&lt;br /&gt;
[[File:Workflow - PublishProject.png|border|300px]]   [[File:Worklow - PublishedModel.png|border|300px]]&lt;br /&gt;
  	 &lt;br /&gt;
Chris is going to make further changes in the SDM_Editor project, but that will be for the next standard update. In the meantime, the user wants to make the static version of the SDM they just published available to the rest of his team, so the user gives them Read permissions to it. However, making further changes to the SDM is his job and the user wants to stay in control of the process, so the user does not give any of his colleagues permissions to either the live version of the SDM model or the SDM_Editor project.&lt;br /&gt;
&lt;br /&gt;
[[File:Phenom-manage-example-chris-7.png|border|800px]]&lt;br /&gt;
 &lt;br /&gt;
=== Part 2 – Dave ===&lt;br /&gt;
Dave is working on creating a Domain Specific Data Model (DSDM) for the team to use - he will be referencing the SDM Chris released in his efforts. He creates a new project into which he adds the SDM version he has access to and a blank model which will contain the DSDM content he creates.&lt;br /&gt;
&lt;br /&gt;
[[File:Workflow - Davecreate project.png|border|800px]]&lt;br /&gt;
&lt;br /&gt;
After Dave has added some content to his DSDM model which references nodes in the SDM, he will see that his DSDM model is now listed as dependent on the SDM model he has been using – which means, it can no longer be loaded without it.&lt;br /&gt;
&lt;br /&gt;
[[File:Workflow - Dependencies.png|border|800px]]&lt;br /&gt;
&lt;br /&gt;
Nick and Riley will be documenting some interfaces against the domain model that Dave is working on. However, Dave does not want them to have to wait for him to have finished with all of his work before they can start. Also, as they work on their interface documentation, they may come up with good changes to the DSDM and suggest that they be included in Dave&#039;s work. So, Dave decided to share his project with Nick and Riley, giving them Read/Write permissions, which automatically gives them permissions to the active DSDM model version he&#039;s working on.&lt;br /&gt;
&lt;br /&gt;
[[File:Phenom-manage-example-dave-4.png|border|800px]]&lt;br /&gt;
&lt;br /&gt;
=== Part 3 – Nick &amp;amp; Riley ===&lt;br /&gt;
Nick and Riley will be documenting interfaces using the DSDM that was shared with them, but they will be working with different sets of interfaces, each in his own project.&lt;br /&gt;
If they try to create a new project with just the DSDM, they will be rejected because they must also load in the SDM that was used to create it and on which it depends.&lt;br /&gt;
&lt;br /&gt;
[[File:Workflow - DepFailure.png|border|800px]]&lt;br /&gt;
 &lt;br /&gt;
Once they have the appropriate permissions to all of the content, they can create their individual project with the models to house their documentation work separate from the contents of both the SDM and the DSDM.&lt;br /&gt;
In the example below, Riley creates a RILEY_s_INTFC_DOC project including the DSDM_live model and a new blank model for his changes. By doing so, a new model, DSDM_IN_RILEY_S_INTFC_DOC, was created, inheriting from Dave’s DSDM_live.&lt;br /&gt;
&lt;br /&gt;
[[File:Manage workflow - Final2.png|border|800px]]&lt;br /&gt;
&lt;br /&gt;
Dave and Riley will now be able to independently edit DSDM content and merge changes between their two models as they see appropriate.&lt;br /&gt;
Whenever Dave makes new updates to the DSDM, Nick and Riley have the opportunity to pull in those changes into their copies of the model. When either one of them makes a change to the DSDM portion of his project that he thinks should be included in the official version, they can make a push request to Dave&#039;s project that he can then either approve or ignore.&lt;/div&gt;</summary>
		<author><name>Chris</name></author>
	</entry>
	<entry>
		<id>https://kb.phenomportal.com/index.php?title=File:Phenom-manage-active_project.png&amp;diff=1455</id>
		<title>File:Phenom-manage-active project.png</title>
		<link rel="alternate" type="text/html" href="https://kb.phenomportal.com/index.php?title=File:Phenom-manage-active_project.png&amp;diff=1455"/>
		<updated>2025-09-24T20:49:59Z</updated>

		<summary type="html">&lt;p&gt;Chris: Chris uploaded a new version of File:Phenom-manage-active project.png&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Active project display&lt;/div&gt;</summary>
		<author><name>Chris</name></author>
	</entry>
	<entry>
		<id>https://kb.phenomportal.com/index.php?title=File:Phenom-manage-projects_models_list.png&amp;diff=1454</id>
		<title>File:Phenom-manage-projects models list.png</title>
		<link rel="alternate" type="text/html" href="https://kb.phenomportal.com/index.php?title=File:Phenom-manage-projects_models_list.png&amp;diff=1454"/>
		<updated>2025-09-24T20:45:24Z</updated>

		<summary type="html">&lt;p&gt;Chris: Chris uploaded a new version of File:Phenom-manage-projects models list.png&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Projects and Models lists&lt;/div&gt;</summary>
		<author><name>Chris</name></author>
	</entry>
	<entry>
		<id>https://kb.phenomportal.com/index.php?title=File:Phenom-manage-projects_models_list.png&amp;diff=1453</id>
		<title>File:Phenom-manage-projects models list.png</title>
		<link rel="alternate" type="text/html" href="https://kb.phenomportal.com/index.php?title=File:Phenom-manage-projects_models_list.png&amp;diff=1453"/>
		<updated>2025-09-24T20:39:06Z</updated>

		<summary type="html">&lt;p&gt;Chris: Chris uploaded a new version of File:Phenom-manage-projects models list.png&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Projects and Models lists&lt;/div&gt;</summary>
		<author><name>Chris</name></author>
	</entry>
</feed>