<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki-en.dmxcontrol-projects.org/index.php?action=history&amp;feed=atom&amp;title=Hardware_Abstraction_Layer_%28HAL%29_DMXC3</id>
	<title>Hardware Abstraction Layer (HAL) DMXC3 - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki-en.dmxcontrol-projects.org/index.php?action=history&amp;feed=atom&amp;title=Hardware_Abstraction_Layer_%28HAL%29_DMXC3"/>
	<link rel="alternate" type="text/html" href="https://wiki-en.dmxcontrol-projects.org/index.php?title=Hardware_Abstraction_Layer_(HAL)_DMXC3&amp;action=history"/>
	<updated>2026-06-25T19:59:20Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.39.10</generator>
	<entry>
		<id>https://wiki-en.dmxcontrol-projects.org/index.php?title=Hardware_Abstraction_Layer_(HAL)_DMXC3&amp;diff=4296&amp;oldid=prev</id>
		<title>Jkuehn at 23:36, 3 March 2025</title>
		<link rel="alternate" type="text/html" href="https://wiki-en.dmxcontrol-projects.org/index.php?title=Hardware_Abstraction_Layer_(HAL)_DMXC3&amp;diff=4296&amp;oldid=prev"/>
		<updated>2025-03-03T23:36:43Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 01:36, 4 March 2025&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l6&quot;&gt;Line 6:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 6:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;= Overview =&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;= Overview =&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;With the help of the HAL, the DMX channels and their associated DMX values, which are required to call a function on a {{Manual Windowcaption|device}}, are abstracted directly to the property itself. These abstracted properties are stored in the {{Manual Windowcaption|[[Cuelist_DMXC3|&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;scenes (&lt;/del&gt;cues&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;)&lt;/del&gt;]]}} independently of a device&amp;#039;s channel layout. For example, the dimmer is stored simply as &amp;quot;set dimmer to {{Manual Value || 50%}}&amp;quot; or the color as &amp;quot;red to {{Manual Value || 132}}, green to {{Manual Value || 43}}, and blue to {{Manual Value || 0}}&amp;quot;, representing the RGB value {{Manual Value || 132; 43; 0}}.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;With the help of the HAL, the DMX channels and their associated DMX values, which are required to call a function on a {{Manual Windowcaption|device}}, are abstracted directly to the property itself. These abstracted properties are stored in the {{Manual Windowcaption|[[Cuelist_DMXC3|cues]]}} independently of a device&amp;#039;s channel layout. For example, the dimmer is stored simply as &amp;quot;set dimmer to {{Manual Value || 50%}}&amp;quot; or the color as &amp;quot;red to {{Manual Value || 132}}, green to {{Manual Value || 43}}, and blue to {{Manual Value || 0}}&amp;quot;, representing the RGB value {{Manual Value || 132; 43; 0}}.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;The HAL offers the following advantages for the workflow:&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;The HAL offers the following advantages for the workflow:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key d041d6b7-mw_en_:diff::1.12:old-4251:rev-4296 --&gt;
&lt;/table&gt;</summary>
		<author><name>Jkuehn</name></author>
	</entry>
	<entry>
		<id>https://wiki-en.dmxcontrol-projects.org/index.php?title=Hardware_Abstraction_Layer_(HAL)_DMXC3&amp;diff=4251&amp;oldid=prev</id>
		<title>Jkuehn at 21:07, 3 March 2025</title>
		<link rel="alternate" type="text/html" href="https://wiki-en.dmxcontrol-projects.org/index.php?title=Hardware_Abstraction_Layer_(HAL)_DMXC3&amp;diff=4251&amp;oldid=prev"/>
		<updated>2025-03-03T21:07:05Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 23:07, 3 March 2025&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l82&quot;&gt;Line 82:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 82:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;noinclude&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;noinclude&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Category: DMXControl 3 &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Manual&lt;/del&gt;]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Category: &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Manual &lt;/ins&gt;DMXControl 3]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/noinclude&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/noinclude&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[de:Hardware_Abstraction_Layer_(HAL)_DMXC3]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[de:Hardware_Abstraction_Layer_(HAL)_DMXC3]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key d041d6b7-mw_en_:diff::1.12:old-4242:rev-4251 --&gt;
&lt;/table&gt;</summary>
		<author><name>Jkuehn</name></author>
	</entry>
	<entry>
		<id>https://wiki-en.dmxcontrol-projects.org/index.php?title=Hardware_Abstraction_Layer_(HAL)_DMXC3&amp;diff=4242&amp;oldid=prev</id>
		<title>Jkuehn: Created page with &quot;{{Manual Header | Type = DMXC3 Main-Software | Version = 3.2.3}}  The {{Manual Windowcaption|Hardware Abstraction Layer}} (HAL for short) is a central component of DMXControl 3. Instead of directly addressing the functions of DMX-controlled {{Manual Windowcaption|devices}}, these functions are processed through an intermediate module in DMXControl. This means that when working with DMXControl 3, you no longer interact directly with DMX channels and DMX v...&quot;</title>
		<link rel="alternate" type="text/html" href="https://wiki-en.dmxcontrol-projects.org/index.php?title=Hardware_Abstraction_Layer_(HAL)_DMXC3&amp;diff=4242&amp;oldid=prev"/>
		<updated>2025-03-03T20:51:26Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;{{Manual Header | Type = DMXC3 Main-Software | Version = 3.2.3}}  The {{Manual Windowcaption|Hardware Abstraction Layer}} (HAL for short) is a central component of DMXControl 3. Instead of directly addressing the functions of DMX-controlled {{Manual Windowcaption|&lt;a href=&quot;/index.php?title=Device_DMXC3&quot; title=&quot;Device DMXC3&quot;&gt;devices&lt;/a&gt;}}, these functions are processed through an intermediate module in DMXControl. This means that when working with DMXControl 3, you no longer interact directly with DMX channels and DMX v...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{Manual Header&lt;br /&gt;
| Type = DMXC3 Main-Software&lt;br /&gt;
| Version = 3.2.3}}&lt;br /&gt;
&lt;br /&gt;
The {{Manual Windowcaption|Hardware Abstraction Layer}} (HAL for short) is a central component of DMXControl 3. Instead of directly addressing the functions of DMX-controlled {{Manual Windowcaption|[[Device_DMXC3|devices]]}}, these functions are processed through an intermediate module in DMXControl. This means that when working with DMXControl 3, you no longer interact directly with DMX channels and DMX values.&lt;br /&gt;
&lt;br /&gt;
= Overview =&lt;br /&gt;
With the help of the HAL, the DMX channels and their associated DMX values, which are required to call a function on a {{Manual Windowcaption|device}}, are abstracted directly to the property itself. These abstracted properties are stored in the {{Manual Windowcaption|[[Cuelist_DMXC3|scenes (cues)]]}} independently of a device&amp;#039;s channel layout. For example, the dimmer is stored simply as &amp;quot;set dimmer to {{Manual Value || 50%}}&amp;quot; or the color as &amp;quot;red to {{Manual Value || 132}}, green to {{Manual Value || 43}}, and blue to {{Manual Value || 0}}&amp;quot;, representing the RGB value {{Manual Value || 132; 43; 0}}.&lt;br /&gt;
&lt;br /&gt;
The HAL offers the following advantages for the workflow:&lt;br /&gt;
* All devices are largely controlled in the same way using a standardized user interface consisting of the {{Manual Windowcaption|[[Control_Panel_DMXC3|control panels]]}} for common device functions and the {{Manual Windowcaption|[[Device_Control_DMXC3|device control]]}}.&lt;br /&gt;
* Functions can be called up using clear text or sliders. These operate consistently, regardless of the device.&lt;br /&gt;
* {{Manual Windowcaption|[[Device_Group_DMXC3|Device groups]]}} can be heterogeneous, meaning you do not need to differentiate between different device types during programming.&lt;br /&gt;
* The channel layout of a device is no longer relevant for programming.&lt;br /&gt;
&lt;br /&gt;
The HAL applies to several device functions, including the shutter and dimmer, strobe function, color channels, and gobos.&lt;br /&gt;
&lt;br /&gt;
In practical terms, even with a mixed device group containing LED spotlights, scanners with color wheels, and wash-moving heads with CMY color mixing, you can set the color centrally as an RGB value for the entire device group. The HAL handles the conversion to various color mixing systems or selects the closest matching color for devices with fixed colors.&lt;br /&gt;
&lt;br /&gt;
= Key Features =&lt;br /&gt;
The HAL influences how devices behave within the project, both internally in DMXControl 3 and during the data output process:&lt;br /&gt;
* The HAL defines a default state for each function that all devices assume unless modified by a cuelist.&lt;br /&gt;
* The HAL provides virtual implementations of certain functions for devices that lack them.&lt;br /&gt;
* The HAL manages the interaction of different devices, simplifying the process for the user.&lt;br /&gt;
* The HAL monitors which values are authorized for output, particularly when multiple active cuelists target the same function.&lt;br /&gt;
&lt;br /&gt;
= Usage =&lt;br /&gt;
== Default State for Functions ==&lt;br /&gt;
When devices are added to a project, they adopt a predefined default state. This usually means that DMX values are sent to devices in this state, which is often visible for properties like position and color.&lt;br /&gt;
{{Manual Box | en | Hint | These values are embedded in DMXControl 3 and cannot be changed. If you require a different initial state, create a dedicated background cuelist.}}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable toptextcells&amp;quot;&lt;br /&gt;
|- class=&amp;quot;hintergrundfarbe10&amp;quot;&lt;br /&gt;
! style=&amp;quot;width: 125px;&amp;quot; | Function !! style=&amp;quot;width: 250px;&amp;quot; | Default Value !! Explanation and Notes&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Position&amp;#039;&amp;#039;&amp;#039; || Center of the pan-tilt range || For moving heads, this typically means the lens points vertically upward and the tilt arm is parallel to the base.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Pan-Tilt Speed&amp;#039;&amp;#039;&amp;#039; || Maximum speed &amp;lt;br /&amp;gt; {{Manual Value || 100%}} ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Color&amp;#039;&amp;#039;&amp;#039; || White &amp;lt;br /&amp;gt; {{Manual Value || 255; 255; 255}} ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Color Temperature&amp;#039;&amp;#039;&amp;#039; || Daylight white &amp;lt;br /&amp;gt; {{Manual Value || 6500 K}} || This value is selected when virtual color temperature control is enabled for devices with the appropriate LED chips.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;Notes&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Color&amp;#039;&amp;#039;&amp;#039;: All devices default to white when the dimmer is raised, including LED spotlights, which behave similarly to moving heads or scanners with discharge lamps. If you open the shutter here and raise the dimmer, they also light up white directly.&lt;br /&gt;
&lt;br /&gt;
== Software-Provided Functions ==&lt;br /&gt;
=== Dimmer / Shutter ===&lt;br /&gt;
Whether an LED spotlight has only RGB channels or an additional dimmer channel, brightness can be controlled uniformly. For devices without a physical dimmer, the HAL provides a virtual dimmer.&lt;br /&gt;
&lt;br /&gt;
=== Strobe ===&lt;br /&gt;
If a device lacks a built-in strobe function, the HAL provides a virtual strobe effect. The maximum frequency for this software-generated strobe is &amp;lt;code&amp;gt;5 Hz&amp;lt;/code&amp;gt;.&lt;br /&gt;
{{Manual Box | en | Hint | The virtual strobe toggles the dimmer channel (or RGB channels) on and off. This process occurs per device, meaning perfect synchronization between devices cannot be guaranteed.}}&lt;br /&gt;
&lt;br /&gt;
=== Color Temperature ===&lt;br /&gt;
For devices with multiple white LEDs (e.g., cold white and amber), the HAL provides a virtual color temperature control, automatically incorporating any additional white LED colors like warm white.&lt;br /&gt;
&lt;br /&gt;
== Interaction of Functions ==&lt;br /&gt;
Function behavior varies depending on the property:&lt;br /&gt;
&lt;br /&gt;
=== Color ===&lt;br /&gt;
Colors are stored as RGB values in a {{Manual Windowcaption|scene}}. This allows combining different device types within a {{Manual Windowcaption|device group}}. The HAL ensures that the most suitable value is selected for each device.&lt;br /&gt;
&lt;br /&gt;
For example, if a device group contains LED spotlights, scanners with color wheels, and wash-moving heads with CMY color mixing, setting the color to red ({{Manual Value || 132}}, green {{Manual Value || 43}}, blue {{Manual Value || 0}}) will:&lt;br /&gt;
* Output the exact RGB value for LED spotlights.&lt;br /&gt;
* Select the closest matching color on the color wheel for scanners.&lt;br /&gt;
* Convert RGB to CMY for wash-moving heads.&lt;br /&gt;
&lt;br /&gt;
=== Gobo ===&lt;br /&gt;
Gobos require special handling due to device-specific differences. DMXControl 3 includes an internal gobo database that tracks similarities between gobos, allowing the HAL to activate the most similar gobo across different devices.&lt;br /&gt;
&lt;br /&gt;
For instance, if one moving head has a five-dot circle gobo and another has a five-star gobo, both will display their closest equivalent when the five-dot gobo is selected.&lt;br /&gt;
&lt;br /&gt;
== Output Monitoring ==&lt;br /&gt;
Beyond providing consistent control, the HAL also monitors values from multiple cuelists and the programmer. Based on cuelist priorities and mixing modes, only the most relevant value is passed to the DMXC mixer, ensuring that devices receive the correct data.&lt;br /&gt;
&lt;br /&gt;
= Links and References =&lt;br /&gt;
Links&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Category: DMXControl 3 Manual]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[de:Hardware_Abstraction_Layer_(HAL)_DMXC3]]&lt;/div&gt;</summary>
		<author><name>Jkuehn</name></author>
	</entry>
</feed>