summaryrefslogtreecommitdiff
path: root/ebus-xml/ebus.docbook.xslt
diff options
context:
space:
mode:
Diffstat (limited to 'ebus-xml/ebus.docbook.xslt')
-rw-r--r--ebus-xml/ebus.docbook.xslt244
1 files changed, 244 insertions, 0 deletions
diff --git a/ebus-xml/ebus.docbook.xslt b/ebus-xml/ebus.docbook.xslt
new file mode 100644
index 0000000..c6c80c5
--- /dev/null
+++ b/ebus-xml/ebus.docbook.xslt
@@ -0,0 +1,244 @@
+<?xml version="1.0" encoding="utf8"?>
+<xsl:stylesheet version="1.0"
+ xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns:ebus="http://xapek.org/ebus/0.1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xmlns:db="http://docbook.org/ns/docbook"
+ xsi:schemaLocation="
+ http://xapek.org/ebus/0.1 ebus-0.1.xsd
+ http://docbook.org/ns/docbook http://docbook.org/xml/5.0/xsd/docbook.xsd"
+>
+ <xsl:output method="xml" indent="yes"/>
+
+ <xsl:template match="/">
+ <db:book version="5.0" xml:lang="de">
+ <db:info>
+ <db:title>Ebus Protokollbeschreibung</db:title>
+ <db:author>
+ <db:personname>Yves Fischer</db:personname>
+ <db:email>yvesf+git@xapek.org</db:email>
+ </db:author>
+ </db:info>
+ <db:chapter>
+ <db:title>Adressen</db:title>
+ <db:sect1>
+ <db:title>Master Adressen</db:title>
+ <xsl:call-template name="do_devices">
+ <xsl:with-param name="type" select="'master'"/>
+ </xsl:call-template>
+ </db:sect1>
+ <db:sect1>
+ <db:title>Slave Adressen</db:title>
+ <xsl:call-template name="do_devices">
+ <xsl:with-param name="type" select="'slave'"/>
+ </xsl:call-template>
+ </db:sect1>
+ <db:sect1>
+ <db:title>Broadcast Adressen</db:title>
+ <xsl:call-template name="do_devices">
+ <xsl:with-param name="type" select="'broadcast'"/>
+ </xsl:call-template>
+ </db:sect1>
+ </db:chapter>
+ <db:chapter>
+ <db:title>Pakete</db:title>
+
+ <db:informaltable pgwide="1">
+ <db:tgroup cols="3">
+ <db:colspec colnum="1" colname="c1" colwidth="5cm"/>
+ <db:colspec colnum="2" colname="c2" colwidth="1.8cm"/>
+ <db:colspec colnum="3" colname="c3"/>
+ <db:thead>
+ <db:row>
+ <db:entry>Packet</db:entry>
+ <db:entry>Prim./Sec. Address</db:entry>
+ <db:entry>Description</db:entry>
+ </db:row>
+ </db:thead>
+ <db:tbody>
+ <xsl:for-each select="ebus:ebus/ebus:packets/ebus:packet">
+ <db:row>
+ <db:entry>
+ <xsl:element name="db:link">
+ <xsl:attribute name="linkend">
+ <xsl:value-of select="concat('link.packet.', @name)"/>
+ </xsl:attribute>
+ <xsl:value-of select="@name"/>
+ </xsl:element>
+ </db:entry>
+ <db:entry>
+ <db:computeroutput>
+ <xsl:value-of select="format-number(@primary, '00')"/> /
+ <xsl:value-of select="format-number(@secondary, '00')"/>
+ </db:computeroutput>
+ </db:entry>
+ <db:entry>
+ <xsl:for-each select="ebus:description">
+ <db:para>
+ <db:emphasis><xsl:value-of select="@lang"/>:
+ </db:emphasis>
+ <xsl:value-of select="text()"/>
+ </db:para>
+ </xsl:for-each>
+ </db:entry>
+ </db:row>
+ </xsl:for-each>
+ </db:tbody>
+ </db:tgroup>
+ </db:informaltable>
+ <db:sect1>
+ <db:title>Fields</db:title>
+ <xsl:for-each select="ebus:ebus/ebus:packets/ebus:packet">
+ <xsl:call-template name="do_packet"/>
+ </xsl:for-each>
+ </db:sect1>
+ </db:chapter>
+ </db:book>
+ </xsl:template>
+
+ <xsl:template name="do_packet">
+ <db:sect2>
+ <db:title>
+ <xsl:value-of select="@name"/>
+ </db:title>
+ <xsl:element name="db:anchor">
+ <xsl:attribute name="id">
+ <xsl:value-of select="concat('link.packet.', @name)"/>
+ </xsl:attribute>
+ </xsl:element>
+
+ <db:informaltable pgwide="1">
+ <db:tgroup cols="4">
+ <db:colspec colname="c1"/>
+ <db:colspec colname="c2" colwidth=".8cm"/>
+ <db:colspec colname="c3" colwidth="1.5cm"/>
+ <db:colspec colname="c4"/>
+ <db:thead>
+ <db:row>
+ <db:entry>Name</db:entry>
+ <db:entry>Offset</db:entry>
+ <db:entry>Type</db:entry>
+ <db:entry>Description</db:entry>
+ </db:row>
+ </db:thead>
+ <db:tbody>
+ <xsl:for-each select="ebus:fields/*">
+ <db:row>
+ <db:entry>
+ <xsl:value-of select="@name"/>
+ </db:entry>
+ <db:entry>
+ <xsl:value-of select="@offset"/>
+ </db:entry>
+ <db:entry>
+ <xsl:value-of select="name()"/>
+ </db:entry>
+ <db:entry>
+ <xsl:for-each select="ebus:description">
+ <db:para>
+ <db:emphasis>
+ <xsl:value-of select="concat(@lang, ': ')"/>
+ </db:emphasis>
+ <xsl:value-of select="text()"/>
+ </db:para>
+ </xsl:for-each>
+ </db:entry>
+ </db:row>
+
+ <xsl:if test="name() = 'byteEnum'">
+ <db:row>
+ <db:entry namest="c1" nameend="c4">
+ <xsl:call-template name="enuminfo"/>
+ </db:entry>
+ </db:row>
+ </xsl:if>
+ </xsl:for-each>
+ </db:tbody>
+ </db:tgroup>
+ </db:informaltable>
+
+ <xsl:for-each select="ebus:fields/*">
+
+ </xsl:for-each>
+ </db:sect2>
+ </xsl:template>
+
+ <xsl:template name="enuminfo">
+ <db:informaltable pgwide="1">
+ <db:tgroup cols="3">
+ <db:colspec colname="c1"/>
+ <db:colspec colname="c2"/>
+ <db:colspec colname="c3"/>
+ <db:thead>
+ <db:row>
+ <db:entry>Code</db:entry>
+ <db:entry>Name</db:entry>
+ <db:entry>Description</db:entry>
+ </db:row>
+ </db:thead>
+ <db:tbody>
+ <xsl:for-each select="ebus:option">
+ <db:row>
+ <db:entry>
+ <xsl:value-of select="@value"/>
+ </db:entry>
+ <db:entry>
+ <xsl:value-of select="@name"/>
+ </db:entry>
+ <db:entry>
+ <xsl:for-each select="ebus:description">
+ <db:para>
+ <db:emphasis>
+ <xsl:value-of select="concat(@lang, ': ')"/>
+ </db:emphasis>
+ <xsl:value-of select="text()"/>
+ </db:para>
+ </xsl:for-each>
+ </db:entry>
+ </db:row>
+ </xsl:for-each>
+ </db:tbody>
+ </db:tgroup>
+ </db:informaltable>
+ <db:para/>
+ </xsl:template>
+
+ <xsl:template name="do_devices">
+ <xsl:param name="type"/>
+ <db:informaltable pgwide="1" frame="none">
+ <db:tgroup cols="3">
+ <db:colspec colname="c1"/>
+ <db:colspec colname="c2"/>
+ <db:colspec colname="c3"/>
+ <db:thead>
+ <db:row>
+ <db:entry>Gerät</db:entry>
+ <db:entry>Address</db:entry>
+ <db:entry>Description</db:entry>
+ </db:row>
+ </db:thead>
+ <db:tbody>
+ <xsl:for-each select="ebus:ebus/ebus:devices/ebus:device[@type=$type]">
+ <db:row>
+ <db:entry>
+ <xsl:value-of select="@name"/>
+ </db:entry>
+ <db:entry>
+ <xsl:value-of select="@address"/>
+ </db:entry>
+ <db:entry>
+ <xsl:for-each select="ebus:description">
+ <db:para>
+ <db:emphasis>
+ <xsl:value-of select="concat(@lang, ': ')"/>
+ </db:emphasis>
+ <xsl:value-of select="text()"/>
+ </db:para>
+ </xsl:for-each>
+ </db:entry>
+ </db:row>
+ </xsl:for-each>
+ </db:tbody>
+ </db:tgroup>
+ </db:informaltable>
+ </xsl:template>
+</xsl:stylesheet> \ No newline at end of file