diff options
-rw-r--r-- | ebus-xml/.project | 11 | ||||
-rw-r--r-- | ebus-xml/dist/2016-08-13/ebus.docbook.pdf | bin | 0 -> 87783 bytes | |||
-rw-r--r-- | ebus-xml/ebus.xml | 2 | ||||
-rw-r--r-- | ebus-xml/transform/ebus.docbook.xslt | 338 |
4 files changed, 200 insertions, 151 deletions
diff --git a/ebus-xml/.project b/ebus-xml/.project deleted file mode 100644 index 533290a..0000000 --- a/ebus-xml/.project +++ /dev/null @@ -1,11 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<projectDescription> - <name>ebus-xml</name> - <comment></comment> - <projects> - </projects> - <buildSpec> - </buildSpec> - <natures> - </natures> -</projectDescription> diff --git a/ebus-xml/dist/2016-08-13/ebus.docbook.pdf b/ebus-xml/dist/2016-08-13/ebus.docbook.pdf Binary files differnew file mode 100644 index 0000000..750ca04 --- /dev/null +++ b/ebus-xml/dist/2016-08-13/ebus.docbook.pdf diff --git a/ebus-xml/ebus.xml b/ebus-xml/ebus.xml index 82c0dff..39ebca8 100644 --- a/ebus-xml/ebus.xml +++ b/ebus-xml/ebus.xml @@ -196,7 +196,7 @@ </packet> <packet primary="3" secondary="8" name="brenstoffmengeLesen"> - <description lang="Gesamtbrennstoffmenge Lesen"></description> + <description lang="de">Gesamtbrennstoffmenge Lesen</description> <fields /> </packet> diff --git a/ebus-xml/transform/ebus.docbook.xslt b/ebus-xml/transform/ebus.docbook.xslt index 4f147f4..80c024d 100644 --- a/ebus-xml/transform/ebus.docbook.xslt +++ b/ebus-xml/transform/ebus.docbook.xslt @@ -1,182 +1,242 @@ <?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" - xsi:schemaLocation="http://xapek.org/ebus/0.1 ebus-0.1.xsd" - xmlns:db="http://docbook.org/ns/docbook"> - <xsl:output method="xml" indent="yes" /> + 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:bookinfo> + <db:info> <db:title>Ebus Protokollbeschreibung</db:title> <db:author> - <db:firstname>Yves</db:firstname> - <db:surname>Fischer</db:surname> + <db:personname>Yves Fischer</db:personname> + <db:email>yvesf+git@xapek.org</db:email> </db:author> - </db:bookinfo> + </db:info> <db:chapter> <db:title>Adressen</db:title> <db:sect1> - <db:title>Master-Adressen</db:title> - <xsl:for-each select="ebus:ebus/ebus:devices/ebus:device[@type='master']"> - <xsl:call-template name="do_device" /> - </xsl:for-each> + <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:for-each select="ebus:ebus/ebus:devices/ebus:device[@type='slave']"> - <xsl:call-template name="do_device" /> - </xsl:for-each> + <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:for-each select="ebus:ebus/ebus:devices/ebus:device[@type='broadcast']"> - <xsl:call-template name="do_device" /> - </xsl:for-each> + <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> - <xsl:for-each select="ebus:ebus/ebus:packets/ebus:packet"> - <xsl:call-template name="do_packet" /> - </xsl:for-each> + + <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_device"> + <xsl:template name="do_packet"> <db:sect2> - <db:title>Gerät: <xsl:value-of select="@name" /></db:title> + <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="2"> + <db:tgroup cols="4"> <db:colspec colname="c1"/> - <db:colspec colname="c2"/> - <db:tbody> + <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><xsl:value-of select="@name" /></db:entry> - </db:row> - <db:row> - <db:entry>Address</db:entry> - <db:entry><xsl:value-of select="@address" /></db:entry> - </db:row> - <db:row> - <db:entry>Typ</db:entry> - <db:entry><xsl:value-of select="@type" /></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:if test="ebus:description"> - <xsl:for-each select="ebus:description"> - <db:blockquote> - <db:title>Description <xsl:value-of select="@lang" /></db:title> - <db:para><xsl:value-of select="text()" /></db:para> - </db:blockquote> - </xsl:for-each> - </xsl:if> + + <xsl:for-each select="ebus:fields/*"> + + </xsl:for-each> </db:sect2> </xsl:template> - <xsl:template name="do_packet"> - <db:sect1> - <db:title>Paket: <xsl:value-of select="@name" /></db:title> - <db:informaltable pgwide="1"> - <db:tgroup cols="2"> - <db:colspec colname="c1"/> - <db:colspec colname="c2"/> - <db:tbody> + <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>Name</db:entry> - <db:entry><xsl:value-of select="@name" /></db:entry> - </db:row> - <db:row> - <db:entry>Primary</db:entry> - <db:entry><xsl:value-of select="@primary" /></db:entry> - </db:row> - <db:row> - <db:entry>Secondary</db:entry> - <db:entry><xsl:value-of select="@secondary" /></db:entry> + <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> - </db:tbody> - </db:tgroup> - </db:informaltable> - <xsl:if test="ebus:description"> - <xsl:for-each select="ebus:description"> - <db:blockquote> - <db:title>Description <xsl:value-of select="@lang" /></db:title> - <db:para><xsl:value-of select="text()" /></db:para> - </db:blockquote> - </xsl:for-each> - </xsl:if> - <xsl:if test="count(ebus:fields/*) > 0"> - <xsl:for-each select="ebus:fields/*"> - <xsl:call-template name="do_field" /> - </xsl:for-each> - </xsl:if> - </db:sect1> + </xsl:for-each> + </db:tbody> + </db:tgroup> + </db:informaltable> + <db:para/> </xsl:template> - <xsl:template name="do_field"> - <db:sect2> - <db:title>Feld <xsl:value-of select="@name" /></db:title> - <db:informaltable pgwide="1"> - <db:tgroup cols="2"> - <db:colspec colname="c1"/> - <db:colspec colname="c2"/> - <db:tbody> - <db:row> - <db:entry>Name</db:entry> - <db:entry><xsl:value-of select="@name" /></db:entry> - </db:row> - <db:row> - <db:entry>Typ</db:entry> - <db:entry><xsl:value-of select="name()" /></db:entry> - </db:row> + <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>offset</db:entry> - <db:entry><xsl:value-of select="@offset" /></db:entry> - </db:row> - </db:tbody> - </db:tgroup> - </db:informaltable> - - <xsl:if test="name() = 'byteEnum'"> - <db:para>Enum Werte</db:para> - <db:informaltable pgwide="1"> - <db:tgroup cols="2"> - <db:colspec colname="c1"/> - <db:colspec colname="c2"/> - <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: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:row> - <db:entry namest="c1" nameend="c2"> - <db:emphasis> - <xsl:value-of select="text()" /> - </db:emphasis> - </db:entry> - </db:row> + <db:para> + <db:emphasis> + <xsl:value-of select="concat(@lang, ': ')"/> + </db:emphasis> + <xsl:value-of select="text()"/> + </db:para> </xsl:for-each> - </xsl:for-each> - </db:tbody> - </db:tgroup> - </db:informaltable> - </xsl:if> - - <xsl:if test="ebus:description"> - <xsl:for-each select="ebus:description"> - <db:blockquote> - <db:title>Description <xsl:value-of select="@lang" /></db:title> - <db:para><xsl:value-of select="text()" /></db:para> - </db:blockquote> - </xsl:for-each> - </xsl:if> - </db:sect2> + </db:entry> + </db:row> + </xsl:for-each> + </db:tbody> + </db:tgroup> + </db:informaltable> </xsl:template> -</xsl:stylesheet> +</xsl:stylesheet>
\ No newline at end of file |