LogicToXO1

block LogicToXO1 "This model will be removed in future Modelica versions, use 'LogicToX01' instead!"
    import D = Modelica.Electrical.Digital;
    import T = Modelica.Electrical.Digital.Tables;

    extends Modelica.Icons.ObsoleteModel;

    D.Interfaces.DigitalInput x[n] annotation (Placement(transformation(extent = {
        {-60, -10}, 
        {-40, 10}})));
    D.Interfaces.DigitalOutput y[n] annotation (Placement(transformation(extent = {
        {40, -10}, 
        {60, 10}})));
    parameter Integer n(final min = 1, start = 1) "signal width";
algorithm
    for i in 1:n loop
        y[i] := T.X01Table[x[i]];
    end for;

    annotation (
        Documentation(
            info = "<html>\n<h4>Obsoletion Note</h4>\n<p>This model will be removed in future versions of the Modelica Standard Library. Instead the model <a href=\"modelica://Modelica.Electrical.Digital.Converters.LogicToX01\">LogicToX01</a> shall be used.</p>\n<hr>\n<p>\nConversion of a nine valued digital input into a X01 digital output without\nany delay according to IEEE 1164 To_X01 function.\n</p>\n<p><strong>Conversion Table:</strong></p>\n<pre>\n  input                  output\n  'U' (coded by 1)       'X'  (coded by 2)\n  'X' (coded by 2)       'X'  (coded by 2)\n  '0' (coded by 3)       '0'  (coded by 3)\n  '1' (coded by 4)       '1'  (coded by 4)\n  'Z' (coded by 5)       'X'  (coded by 2)\n  'W' (coded by 6)       'X'  (coded by 2)\n  'L' (coded by 7)       '0'  (coded by 3)\n  'H' (coded by 8)       '1'  (coded by 4)\n  '-' (coded by 9)       'X'  (coded by 2)\n</pre>\n<p>\nIf the signal width is greater than 1 this conversion is done for each signal.\n</p>\n</html>",
            revisions = "<html>\n<ul>\n<li><em>September 15, 2004</em>\n       by Christoph Clauss name converted from cvt_to_x01 into LogicToX01<br>\n       </li>\n<li><em>November 5, 2003</em>\n       by Christoph Clauss<br>\n       initially modelled.</li>\n</ul>\n</html>"),
        Icon(
            coordinateSystem(
                preserveAspectRatio = true,
                extent = {
                    {-100, -100}, 
                    {100, 100}}),
            graphics = {
                Text(
                    extent = {
                        {152, -100}, 
                        {-148, -40}},
                    lineColor = {0, 0, 255},
                    textString = "%name"), 
                Polygon(
                    points = {
                        {-40, -40}, 
                        {-40, 40}, 
                        {40, 40}, 
                        {-40, -40}},
                    lineColor = {127, 0, 127},
                    fillColor = {127, 0, 127},
                    fillPattern = FillPattern.Solid), 
                Polygon(
                    points = {
                        {-40, -40}, 
                        {40, -40}, 
                        {40, 40}, 
                        {-40, -40}},
                    lineColor = {127, 0, 127},
                    lineThickness = 0.5,
                    fillColor = {255, 255, 255},
                    fillPattern = FillPattern.Solid), 
                Text(
                    extent = {
                        {0, -20}, 
                        {40, -40}},
                    textString = "X01"), 
                Rectangle(
                    extent = {
                        {-40, 40}, 
                        {40, -40}},
                    lineThickness = 0.5)}),
        obsolete = "Obsolete block - use Modelica.Electrical.Digital.Converters.LogicToX01 instead");
end LogicToXO1;