<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ca">
	<id>https://wiki.cadt.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Pascual</id>
	<title>Cadt Documentation - Contribucions de l&amp;#039;usuari [ca]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.cadt.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Pascual"/>
	<link rel="alternate" type="text/html" href="https://wiki.cadt.com/index.php/Especial:Contribucions/Pascual"/>
	<updated>2026-04-13T09:33:44Z</updated>
	<subtitle>Contribucions de l&amp;#039;usuari</subtitle>
	<generator>MediaWiki 1.44.2</generator>
	<entry>
		<id>https://wiki.cadt.com/index.php?title=Capses_defectuoses&amp;diff=3166</id>
		<title>Capses defectuoses</title>
		<link rel="alternate" type="text/html" href="https://wiki.cadt.com/index.php?title=Capses_defectuoses&amp;diff=3166"/>
		<updated>2016-10-11T09:18:54Z</updated>

		<summary type="html">&lt;p&gt;Pascual: /* TINTORIENTE */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:LDST]]&lt;br /&gt;
[[Category:Hardware]]&lt;br /&gt;
Relació de capses defectuoses:&lt;br /&gt;
&lt;br /&gt;
===TINTORIENTE===&lt;br /&gt;
&lt;br /&gt;
==BX5609L90010R==&lt;br /&gt;
&lt;br /&gt;
. Diagnostic: El display s&#039;ha desplaçat del seu lloc. La resta del funcionament sembla normal.&lt;br /&gt;
&lt;br /&gt;
Sospitem que la capsa a estat exposada a una alta temperatura que ha fet que la termocola deixes de mantenir els elements interns enganxats.&lt;/div&gt;</summary>
		<author><name>Pascual</name></author>
	</entry>
	<entry>
		<id>https://wiki.cadt.com/index.php?title=Capses_defectuoses&amp;diff=3165</id>
		<title>Capses defectuoses</title>
		<link rel="alternate" type="text/html" href="https://wiki.cadt.com/index.php?title=Capses_defectuoses&amp;diff=3165"/>
		<updated>2016-10-11T08:50:37Z</updated>

		<summary type="html">&lt;p&gt;Pascual: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:LDST]]&lt;br /&gt;
[[Category:Hardware]]&lt;br /&gt;
Relació de capses defectuoses:&lt;br /&gt;
&lt;br /&gt;
==TINTORIENTE==&lt;br /&gt;
&lt;br /&gt;
BX5609L90010R&lt;br /&gt;
&lt;br /&gt;
Diagnostic: El display s&#039;ha desplaçat del seu lloc. La resta del funcionament sembla normal.&lt;br /&gt;
&lt;br /&gt;
Sospitem que la capsa a estat exposada a una alta temperatura que ha fet que la termocola deixes de mantenir els elements interns enganxats.&lt;/div&gt;</summary>
		<author><name>Pascual</name></author>
	</entry>
	<entry>
		<id>https://wiki.cadt.com/index.php?title=Capses_defectuoses&amp;diff=3164</id>
		<title>Capses defectuoses</title>
		<link rel="alternate" type="text/html" href="https://wiki.cadt.com/index.php?title=Capses_defectuoses&amp;diff=3164"/>
		<updated>2016-10-11T08:48:53Z</updated>

		<summary type="html">&lt;p&gt;Pascual: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Relació de capses defectuoses:&lt;br /&gt;
&lt;br /&gt;
=== TINTORIENTE&lt;br /&gt;
BX5609L90010R&lt;br /&gt;
&lt;br /&gt;
Diagnostic: El display s&#039;ha desplaçat del seu lloc. La resta del funcionament sembla normal.&lt;br /&gt;
&lt;br /&gt;
Sospitem que la capsa a estat exposada a una alta temperatura que ha fet que la termocola deixes de mantenir els elements interns enganxats.&lt;/div&gt;</summary>
		<author><name>Pascual</name></author>
	</entry>
	<entry>
		<id>https://wiki.cadt.com/index.php?title=Capses_defectuoses&amp;diff=3163</id>
		<title>Capses defectuoses</title>
		<link rel="alternate" type="text/html" href="https://wiki.cadt.com/index.php?title=Capses_defectuoses&amp;diff=3163"/>
		<updated>2016-10-11T08:48:01Z</updated>

		<summary type="html">&lt;p&gt;Pascual: Es crea la pàgina amb «Relació de capses defectuoses:  == TINTORIENTE BX5609L90010R  Diagnostic: El display s&amp;#039;ha desplaçat del seu lloc. La resta del funcionament sembla normal.  Sospitem...».&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Relació de capses defectuoses:&lt;br /&gt;
&lt;br /&gt;
== TINTORIENTE&lt;br /&gt;
BX5609L90010R&lt;br /&gt;
&lt;br /&gt;
Diagnostic: El display s&#039;ha desplaçat del seu lloc. La resta del funcionament sembla normal.&lt;br /&gt;
&lt;br /&gt;
Sospitem que la capsa a estat exposada a una alta temperatura que ha fet que la termocola deixes de mantenir els elements interns enganxats.&lt;/div&gt;</summary>
		<author><name>Pascual</name></author>
	</entry>
	<entry>
		<id>https://wiki.cadt.com/index.php?title=Drf-reader&amp;diff=3162</id>
		<title>Drf-reader</title>
		<link rel="alternate" type="text/html" href="https://wiki.cadt.com/index.php?title=Drf-reader&amp;diff=3162"/>
		<updated>2016-10-05T17:21:50Z</updated>

		<summary type="html">&lt;p&gt;Pascual: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;languages/&amp;gt;&lt;br /&gt;
[[Category:SAPO]]&lt;br /&gt;
[[Category:Devel]]&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== DLL_EXPORTS === &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;void drf_clear_errors()&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Descr:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:1--&amp;gt;&lt;br /&gt;
Borra todos los mensajes de error producidos por la librería.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;int drf_get_num_errors()&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Descr:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:2--&amp;gt;&lt;br /&gt;
Obtiene el número de mensajes de error producidos por la librería.&lt;br /&gt;
&lt;br /&gt;
Return:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:3--&amp;gt;&lt;br /&gt;
Número de mensajes almacenados.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;const char* drf_get_error(int idx)&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Descr:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:4--&amp;gt;&lt;br /&gt;
Obtiene el mensaje de error indicado por idx (referenciado a 0).&lt;br /&gt;
&lt;br /&gt;
Params:&lt;br /&gt;
&lt;br /&gt;
idx:&lt;br /&gt;
&amp;lt;!--T:5--&amp;gt;&lt;br /&gt;
Número de mensaje a obtener. Rango entre: 0 y (drf_get_num_errors()-1) ambos incluidos.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:6--&amp;gt;&lt;br /&gt;
Return:&lt;br /&gt;
&lt;br /&gt;
Éxito: Puntero a una cadena de caracteres ASCII terminada por el byte NUL (&#039;\0&#039;)&lt;br /&gt;
&lt;br /&gt;
Error: NULL en caso que el valor de idx esté fuera de rango.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;int drf_to_json(char *path,FILE *json,int options)&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Descr:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:7--&amp;gt;&lt;br /&gt;
Serializa a JSON un archivo en formato DRF.&lt;br /&gt;
&lt;br /&gt;
Params:&lt;br /&gt;
&lt;br /&gt;
path:&lt;br /&gt;
Ruta al fichero DRF a serializar en formato Windows ANSI.&lt;br /&gt;
&lt;br /&gt;
json:&lt;br /&gt;
puntero FILE ya abierto y con la escritura habilitada.&lt;br /&gt;
&lt;br /&gt;
options:&lt;br /&gt;
&amp;lt;!--T:8--&amp;gt;&lt;br /&gt;
Selecciona que información se serializará. Valores possibles:&lt;br /&gt;
&lt;br /&gt;
   DRF_GET_GENERIC_INFO&lt;br /&gt;
   DRF_GET_MACHINE_INFO&lt;br /&gt;
   DRF_GET_DRAFT_INFO&lt;br /&gt;
   DRF_GET_ALL_INFO&lt;br /&gt;
&lt;br /&gt;
o una combinación de los valores anteriores (OR)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:9--&amp;gt;&lt;br /&gt;
Return:&lt;br /&gt;
&lt;br /&gt;
Éxito : retorna valor igual a 0&lt;br /&gt;
&lt;br /&gt;
Error : retorna valor diferente de 0&lt;br /&gt;
&lt;br /&gt;
=== TAGS ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:11--&amp;gt;&lt;br /&gt;
Codificación a JSON de los datos:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:12--&amp;gt;&lt;br /&gt;
Internamente el DRF guarda la información como una lista de tags. Cada tag puede contener uno o varios elementos del mismo tipo.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:13--&amp;gt;&lt;br /&gt;
Al codificar un DRF a JSON se codifica como un objeto donde se usa el nombre del tag como clave y el contenido de éste como valor.&lt;br /&gt;
En caso que el tag pueda contener más de un valor, la librería serializa el contenido como un vector.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:14--&amp;gt;&lt;br /&gt;
Como el formato DRF soporta más tipos que el JSON, la librería los convertirá a un tipo soportado por el JSON. La siguiente tabla muestra a que &lt;br /&gt;
tipo del JSON se convierte cada tipo del DRF &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    DRF  | JSON   &lt;br /&gt;
  -------+--------&lt;br /&gt;
  byte   | &lt;br /&gt;
  int16  | int&lt;br /&gt;
  int32  |&lt;br /&gt;
  -------+-------&lt;br /&gt;
  float  | float&lt;br /&gt;
  -------+-------&lt;br /&gt;
  string | string *&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:16--&amp;gt;&lt;br /&gt;
*) Todos los strings contienen sólo caracteres ASCII (encoding:ASCII-7)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== TAGS GENERIC INFO ==== &amp;lt;!--T:17--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:18--&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:19--&amp;gt;&lt;br /&gt;
*Software string&lt;br /&gt;
Nombre del programa que ha generado el fichero .DRF&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:20--&amp;gt;&lt;br /&gt;
*DrawName string&lt;br /&gt;
Referencia del dibujo (max. 256 carac).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:21--&amp;gt;&lt;br /&gt;
*Company string&lt;br /&gt;
Compañía que ha creado el dibujo (max. 30 carac).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:22--&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== TAGS MACHINE INFO ==== &amp;lt;!--T:23--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:25--&amp;gt;&lt;br /&gt;
*Machine string&lt;br /&gt;
Referencia de la máquina. (max. 30 carac) &lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:26--&amp;gt;&lt;br /&gt;
*MachineType string&lt;br /&gt;
Modelo de la máquina. Sólo es válido un modelo definido en el sistema de diseño. (p.e. LEAVERS)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:27--&amp;gt;&lt;br /&gt;
*Description string&lt;br /&gt;
Descripción o información adicional de la máquina.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:28--&amp;gt;&lt;br /&gt;
*Serial string&lt;br /&gt;
Num. serie de la máquina. (max. 30 carac) . Puede contener carácteres no numéricos.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:29--&amp;gt;&lt;br /&gt;
*Version int32 [RASCHEL SU]&lt;br /&gt;
Versión de la máquina raschel SU (versión 1 .. 4).&lt;br /&gt;
   versión 1 . Sin ahorrador de memoria&lt;br /&gt;
   versión 2 . Con ahorrador de memoria (repeticiones)&lt;br /&gt;
   versión 3 . Sin ahorrador de memoria + información empresa.&lt;br /&gt;
   versión 4 . Con ahorrador de memoria (repeciciones) + información empresa.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:30--&amp;gt;&lt;br /&gt;
*Jacquard int32&lt;br /&gt;
Número de barras de Jacquard independientes. Valores posibles: &lt;br /&gt;
   0 : No jacquard&lt;br /&gt;
   1 : 1 jacquard o fina barra simple&lt;br /&gt;
   2 : 2 jacquard raschel o fina barra doble.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:31--&amp;gt;&lt;br /&gt;
*Fronture int32 [RASCHEL DOUBLE NEEDLE BAR]&lt;br /&gt;
Número de fonturas de la máquina&lt;br /&gt;
   1 : 1 fontura&lt;br /&gt;
   2 : 2 fontures (delante / detrás)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:32--&amp;gt;&lt;br /&gt;
*BarsRepeat int32&lt;br /&gt;
Altura del diseño.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:33--&amp;gt;&lt;br /&gt;
*NumRepeats int32&lt;br /&gt;
Num de repeticiones en el diseño.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:34--&amp;gt;&lt;br /&gt;
*NumBars int32&lt;br /&gt;
Numero de barras que tiene el telar.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:35--&amp;gt;&lt;br /&gt;
*Plate int32&lt;br /&gt;
En máquinas raschel (textronic), indica la posición de la plancha.&lt;br /&gt;
&lt;br /&gt;
En máquinas leavers indica donde empiezan los brodeurs.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:36--&amp;gt;&lt;br /&gt;
*JacqNeedles int32&lt;br /&gt;
Numero de agujas de Jacquard del telar.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:37--&amp;gt;&lt;br /&gt;
*MachNeedles int32&lt;br /&gt;
Numero total de agujas del telar.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:38--&amp;gt;&lt;br /&gt;
*BarsOffset int32&lt;br /&gt;
Desplazamiento de barras (orillos=zona perdida)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:39--&amp;gt;&lt;br /&gt;
*JacqOffset int32&lt;br /&gt;
Deplazamiento de las agujas de jacquard en el telar.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:40--&amp;gt;&lt;br /&gt;
*MaxDisp int32 [RASCHEL SU]&lt;br /&gt;
Deplazamiento máximo general de las barras para máquinas raschel SU.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:41--&amp;gt;&lt;br /&gt;
*Proximity int32&lt;br /&gt;
Para máquinas raschel, distáncia máxima a la que se pueden acercar dos barras del mismo grupo.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:42--&amp;gt;&lt;br /&gt;
*ProximityCollindant int32&lt;br /&gt;
Para máquinas raschel, distáncia máxima a la que se pueden acercar dos barras del mismo grupo colindantes.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:43--&amp;gt;&lt;br /&gt;
*JacqRt int32&lt;br /&gt;
Deplazamiento Rt del jacquard:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:44--&amp;gt;&lt;br /&gt;
para máquinas raschel:&lt;br /&gt;
   no jacquard: rt = 0&lt;br /&gt;
   jacquard simple o doble: rt = 1&lt;br /&gt;
Indica cuántas agujas se desplaza la lectura del jacaquard en las pasadas alternadas.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:45--&amp;gt;&lt;br /&gt;
para máquinas leavers&lt;br /&gt;
   no fina barra:      0&lt;br /&gt;
   fina barra simple: -1&lt;br /&gt;
   fina barra doble:   0&lt;br /&gt;
Indica cuántas agujas se desplaza la lectura del jacquard (desde la posición derecha de la máquina en las pasadas alternadas).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:46--&amp;gt;&lt;br /&gt;
*JacqRtCourse int32&lt;br /&gt;
Indica que pasadas se aplica el valor JacqRt.&lt;br /&gt;
   0:pasadas pares&lt;br /&gt;
   1: pasadas impares&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:47--&amp;gt;&lt;br /&gt;
*FinalGauge float&lt;br /&gt;
Galga de producto tejido aplicando encongimiento (medida en agujas/pulgada)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:48--&amp;gt;&lt;br /&gt;
*FinalQuality float&lt;br /&gt;
Calidad de producto tejido aplicando elasticidad (medida en pasadas/centímetro).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:49--&amp;gt;&lt;br /&gt;
*RealGauge float&lt;br /&gt;
Galga de máquina (medida en agujas/pulgada)-&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:50--&amp;gt;&lt;br /&gt;
*RealQuality float&lt;br /&gt;
Calidad de máquina (medida en pasadas/centímetro).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:51--&amp;gt;&lt;br /&gt;
*Shrinkage float&lt;br /&gt;
Porcentage de encongimiento en agujas (0-100%)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:52--&amp;gt;&lt;br /&gt;
*Elasticity float&lt;br /&gt;
Porcentage de elasticidad en pasadas (0-100%)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:53--&amp;gt;&lt;br /&gt;
*BarNumBar int32(NumBars)&lt;br /&gt;
Numero de cada una de las barras del telar (valor numérico consecutivo)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:54--&amp;gt;&lt;br /&gt;
*BarName string(NumBars)&lt;br /&gt;
Nombre o identificador de cada una de las barras del telar&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:55--&amp;gt;&lt;br /&gt;
*BarGroup int32(NumBars)&lt;br /&gt;
En máquinas raschel el número de grupo de la barra.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:56--&amp;gt;&lt;br /&gt;
*BarStop int32(NumBars)&lt;br /&gt;
Posición 0 de la barra.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:57--&amp;gt;&lt;br /&gt;
*BarUtil int32(NumBars)&lt;br /&gt;
Visibilidad de la barra en el sistema de diseño.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:58--&amp;gt;&lt;br /&gt;
*BarType int32(NumBars)&lt;br /&gt;
Tipo de hilo por defecto de la barra.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:59--&amp;gt;&lt;br /&gt;
*BarMaxGimp int32&lt;br /&gt;
Guimpada máxima en agujas de la barra.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:60--&amp;gt;&lt;br /&gt;
*BarDrive int32&lt;br /&gt;
En máquinas raschel SU, el número de getribe de la barra.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:61--&amp;gt;&lt;br /&gt;
*BarFactor int32&lt;br /&gt;
En máquinas raschel SU, multiplicador de la barra.&lt;br /&gt;
1: factor de 1 agulla&lt;br /&gt;
2: factor de 2 agulles,&lt;br /&gt;
4: factor de 4 agulles.&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:62--&amp;gt;&lt;br /&gt;
*BarInvert int32&lt;br /&gt;
En máquinas raschel SU, les barres invertides. &lt;br /&gt;
1: barra invertida.&lt;br /&gt;
0: barra no invertida.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:63--&amp;gt;&lt;br /&gt;
*BarWork int32&lt;br /&gt;
Trabajo de la barra en el sistema de diseño.&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;!--T:64--&amp;gt;&lt;br /&gt;
0: Chainette&lt;br /&gt;
   1: Jacquard     [1]&lt;br /&gt;
   2: Brodeur&lt;br /&gt;
   3: Gros&lt;br /&gt;
   4: Fin&lt;br /&gt;
   5: Brillant&lt;br /&gt;
   6: Picot&lt;br /&gt;
   7: Corde&lt;br /&gt;
   8: Lycra&lt;br /&gt;
   9: Fond&lt;br /&gt;
  10: Bloc&lt;br /&gt;
  11: Cord&lt;br /&gt;
  12: Guimp&lt;br /&gt;
  13: Nul&lt;br /&gt;
  14: Jacq 0/2,6/4 [1]&lt;br /&gt;
  15: Jacq 0/2,8/6 [1]&lt;br /&gt;
  16: Fine Bar.  [sup]&lt;br /&gt;
  17: Braquette&amp;quot;&lt;br /&gt;
  18: Jacquard     [2]&lt;br /&gt;
  19: Jacq 0/2,6/4 [2]&lt;br /&gt;
  20: Jacq 0/2,8/6 [2]&lt;br /&gt;
  21: Fine Bar.  [inf]&lt;br /&gt;
  22: Jacquard&lt;br /&gt;
  23: Fine Barre&lt;br /&gt;
  24: Fallplate&lt;br /&gt;
  25: Embrodery&lt;br /&gt;
  26: EFS&lt;br /&gt;
  27: Reservé 1&lt;br /&gt;
  28: Reservé 2&lt;br /&gt;
  29: Jacq 0/2,6/4&lt;br /&gt;
  30: Jacq 0/2,8/6&lt;br /&gt;
  31: Bord&lt;br /&gt;
  32: Lisieres&lt;br /&gt;
  33: Romaines&lt;br /&gt;
  34: Sonnette&lt;br /&gt;
  35: Guimp devant&lt;br /&gt;
  36: Petite Corde&lt;br /&gt;
  37: Fileur&lt;br /&gt;
  38: Separation&lt;br /&gt;
  39: Corde Termo&lt;br /&gt;
  40: Solv rom&lt;br /&gt;
  41: Vis&lt;br /&gt;
  42: Jacquard     [3]&lt;br /&gt;
  43: Jacquard     [4]&lt;br /&gt;
  44: Space Fabric&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:65--&amp;gt;&lt;br /&gt;
*BarKnit&lt;br /&gt;
En máquines raschel textronic tipous de lligada:&lt;br /&gt;
  0 : no planxa&lt;br /&gt;
  1 : lligada 1 (mecanica)&lt;br /&gt;
  2 : lligada 2 (binaria)&lt;br /&gt;
  3 : lligada 3 (mecánica (2))&lt;br /&gt;
  4 : lligada 4 (binària (2))&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:66--&amp;gt;&lt;br /&gt;
*BarTimes&lt;br /&gt;
En máquines raschel textonic temps de la lligada&lt;br /&gt;
  0 : no planxa&lt;br /&gt;
  2 : temps 2 (p.e) 0202 0202 0202&lt;br /&gt;
  4 : temps 4 (p.e) 0220 0220 0220&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:67--&amp;gt;&lt;br /&gt;
*BarMode&lt;br /&gt;
En máquines raschel textronic el mode la la barra:&lt;br /&gt;
  0 : mode A (p.e 0220)&lt;br /&gt;
  1 : mode B (p.e 2002)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:68--&amp;gt;&lt;br /&gt;
*BarModif int32&lt;br /&gt;
En máquines raschel textronic indica que la barra no es pot deslligar&lt;br /&gt;
  0 : no es pot deslligar&lt;br /&gt;
  1 : si es pot deslligar&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:69--&amp;gt;&lt;br /&gt;
*BarTension int32&lt;br /&gt;
Tensió de la barra a les simulacions.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:70--&amp;gt;&lt;br /&gt;
*BarNumFingers int32(NumBars)&lt;br /&gt;
Número de pasadors de la barra&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:71--&amp;gt;&lt;br /&gt;
*BarModeDrop int32(NumBars)&lt;br /&gt;
Ponderación de cada uno de los 7 bits que se usan para indicar el desplazamiento de la barra. Valores:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;!--T:72--&amp;gt;&lt;br /&gt;
Valor | B7 | B6 | B5 | B4 | B3 | B2 | B1&lt;br /&gt;
 ------+----+----+----+----+----+----+----&lt;br /&gt;
    0  |  8 |  8 |  8 |  4 |  2 |  1 |1/2&lt;br /&gt;
 ------+----+----+----+----+----+----+----&lt;br /&gt;
    1  | 16 |  8 |  8 |  4 |  2 |  1 |1/2&lt;br /&gt;
 ------+----+----+----+----+----+----+----&lt;br /&gt;
    2  | 16 | 16 |  8 |  4 |  2 |  1 |1/2&lt;br /&gt;
 ------+----+----+----+----+----+----+----&lt;br /&gt;
    3  | 32 | 16 |  8 |  4 |  2 |  1 |1/2&lt;br /&gt;
 ------+----+----+----+----+----+----+----&lt;br /&gt;
    4  |  8 |  8 |  8 |  8 |  4 |  2 | 1&lt;br /&gt;
 ------+----+----+----+----+----+----+----&lt;br /&gt;
    5  | 16 |  8 |  8 |  8 |  4 |  2 | 1&lt;br /&gt;
 ------+----+----+----+----+----+----+----&lt;br /&gt;
    6  |  4 |  4 |  4 |  4 |  2 |  1 | 1&lt;br /&gt;
 ------+----+----+----+----+----+----+----&lt;br /&gt;
    7  |  0 |  0 |  0 |  1 |  2 |  1 |1/2&lt;br /&gt;
 ------+----+----+----+----+----+----+----&lt;br /&gt;
    8  |  4 |  4 |  4 |  4 |  2 |  1 |1/2&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:73--&amp;gt;&lt;br /&gt;
*BarMaxDesp int32(NumBars)&lt;br /&gt;
Desplazamiento máximo de la barra en agujas&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:74--&amp;gt;&lt;br /&gt;
*BarActive byte(NumBars)&lt;br /&gt;
Sólo para maquinas EL. Indica si la barra esta en uso o no.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:75--&amp;gt;&lt;br /&gt;
*BarHalvesUp byte(NumBars)&lt;br /&gt;
Si en la pasada se incrementa la posición de la barra en BarHalvesUp agujas o más, entonces , se añade media aguja a la posición final.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:76--&amp;gt;&lt;br /&gt;
*BarHalvesDn byte(NumBars)&lt;br /&gt;
Si en la pasada se decrementa la posición de la barra en BarHalvesDwn agujas o más, entonces , se le resta media aguja a la posición final.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:77--&amp;gt;&lt;br /&gt;
*BarString int32(NumBars)&lt;br /&gt;
Valors:&lt;br /&gt;
0:&lt;br /&gt;
1:ple&lt;br /&gt;
2:1f 1x&lt;br /&gt;
3:1x 1f&lt;br /&gt;
4:buit&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:78--&amp;gt;&lt;br /&gt;
*BarFronture int32(NumBars)&lt;br /&gt;
Solo se usa en las máquinas de doble frontura. Da la frontura en la que empieza a trabajar la barra.Valores:&lt;br /&gt;
0: primera forntura&lt;br /&gt;
1: segunda frontura&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:79--&amp;gt;&lt;br /&gt;
*BarDropsUtil int32(7*NumBars)&lt;br /&gt;
indica como se deben perforar los 7 posiciones correspondientes a la barra:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:80--&amp;gt;&lt;br /&gt;
Valor:&lt;br /&gt;
0: Usado. Siempre a 1. Es decir: no perforar nunca&lt;br /&gt;
1: Usado, Se perforara o no en funcion del desplazamiento de la barra&lt;br /&gt;
2: Usado. Siemre a 0. Es decir, se perfora siempre&lt;br /&gt;
3: No usado. No se perfora&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:81--&amp;gt;&lt;br /&gt;
*FingerStop int32(num_fingers) num_fingers=BarNumFingers(0) + ... + BarNumFingers(NumBars-1)&lt;br /&gt;
Stop del pasador relativo al stop de la barra.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:82--&amp;gt;&lt;br /&gt;
*FingerType int32(num_fingers) num_fingers=BarNumFingers(0) + ... + BarNumFingers(NumBars-1)&lt;br /&gt;
Tipo de pasador.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:83--&amp;gt;&lt;br /&gt;
*CGF1Card int32&lt;br /&gt;
ha de estar a 0.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:84--&amp;gt;&lt;br /&gt;
*CGF1Type int32&lt;br /&gt;
Número de columnas útiles en el cartón.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:85--&amp;gt;&lt;br /&gt;
*CGF1Taille int32&lt;br /&gt;
Número de columnas totales que caben del cartón.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:86--&amp;gt;&lt;br /&gt;
*CGF1Numlines int32&lt;br /&gt;
numero de entradas de las que consta la especificación del cartón.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:87--&amp;gt;&lt;br /&gt;
*CGF1Script string(CGF1Numlines)&lt;br /&gt;
Lista de cadenas de caracteres que detallan como se ha de perforar  cada columna del cartón empezando por la columna de mas a la derecha.&lt;br /&gt;
Cada cadena de caracteres tiene el formato: &amp;lt;codigo de tipo&amp;gt; &amp;lt;espacio&amp;gt; &amp;lt;numero de repeticiones&amp;gt;. Ex: &amp;quot;LC 1&amp;quot;.&lt;br /&gt;
Los codigos de tipo validos son:&lt;br /&gt;
   LC: Laçage&lt;br /&gt;
   TC: Trou de centrage&lt;br /&gt;
   TS: Trou de centrage simple&lt;br /&gt;
   EL: Element vide&lt;br /&gt;
   GF: Gros fil&lt;br /&gt;
   VB: Value&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:88--&amp;gt;&lt;br /&gt;
*CGF1Descrip string(CGF1Numlines)&lt;br /&gt;
Descripción de cada entada del cartón.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:89--&amp;gt;&lt;br /&gt;
Ex:&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;!--T:90--&amp;gt;&lt;br /&gt;
CGF1Script | CGF1Descrip&lt;br /&gt;
 ------------+--------------&lt;br /&gt;
   &amp;quot;LC 1&amp;quot;    |  &amp;quot;Laçage&amp;quot;&lt;br /&gt;
   &amp;quot;TC 1&amp;quot;    |  &amp;quot;Trou de centrage&amp;quot;&lt;br /&gt;
   &amp;quot;GF 6&amp;quot;    |  &amp;quot;braquettes&amp;quot;  &lt;br /&gt;
   &amp;quot;GF 4&amp;quot;    |  &amp;quot;stum&amp;quot;                                                                                                      &lt;br /&gt;
   &amp;quot;GF 30&amp;quot;   |  &amp;quot;guimpes&amp;quot;                                                                                                    &lt;br /&gt;
   &amp;quot;TC 1&amp;quot;    |  &amp;quot;Trou de centrage&amp;quot;                                                                                            &lt;br /&gt;
   &amp;quot;LC 1&amp;quot;    |  &amp;quot;Laçage&amp;quot;                                                                                                       &lt;br /&gt;
   &amp;quot;GF 26&amp;quot;   |  &amp;quot;guimpes&amp;quot;                                                                                                &lt;br /&gt;
   &amp;quot;GF 4&amp;quot;    |  &amp;quot;stum&amp;quot;                                                                                                   &lt;br /&gt;
   &amp;quot;GF 6&amp;quot;    |  &amp;quot;braquettes&amp;quot;                                                                                               &lt;br /&gt;
   &amp;quot;GF 3&amp;quot;    |  &amp;quot;brodeus&amp;quot;                                                                                                  &lt;br /&gt;
   &amp;quot;TC 1&amp;quot;    |  &amp;quot;Trou de centrage&amp;quot;                                                                                         &lt;br /&gt;
   &amp;quot;LC 1&amp;quot;    |  &amp;quot;Laçage&amp;quot;                                                                                                      &lt;br /&gt;
   &amp;quot;GF 39&amp;quot;   |  &amp;quot;brodeus&amp;quot;                                                                                                 &lt;br /&gt;
   &amp;quot;TC 1&amp;quot;    |  &amp;quot;Trou de centrage&amp;quot;                                                                                           &lt;br /&gt;
   &amp;quot;LC 1&amp;quot;    |  &amp;quot;Laçage&amp;quot;                                                                                                    &lt;br /&gt;
                                                                                                                           &lt;br /&gt;
&amp;lt;div style=&amp;quot;font-size:7pt;color:blue;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;                                                                                                                          &lt;br /&gt;
  L T                GF39                   L T G   GF6  GF4          GF26            L T               GF30           GF4  GF6  T L&lt;br /&gt;
  C C _____________________________________ C C F  ____  __  ________________________ C C ____________________________  __  ____ C C&lt;br /&gt;
  1 1/                                     \1 1/3\/    \/  \/                        \1 1/                            \/  \/    \1 1&lt;br /&gt;
/------------------------------------------------------------------------------------------------------------------------------------\&lt;br /&gt;
|    OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO.  OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO.  OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO    |&lt;br /&gt;
| O  .O.O.O.OOOOOOO.OOO.OOOOOO.O.O.OOOOOOOOOO  OOOOOOOOOOO..O..OO...O.OO.....O..O..OOOO  OO...O...OOO.OOOOO...O.....O..OO..OOOOOO  O |&lt;br /&gt;
|    OOOOO.OO.O...OOO..O..OO.OO.OOOO.O..OO.O.  OOOOOO...OOOO.O.OOOO..O.OO.OOO..O.O.O...  ..OOO.OO..O.OO....O.O..O.OOOOOOOOOOOO...    |&lt;br /&gt;
|  ().OO.OO...OOOOOOOO.OO...O.OOOO..OO....O..()O..OOOOOOOOOOO.O....OO..O..OOO..OO.O.O..()OO.....OOO...OO..OO.O.OOO.OO.OOOOOOOOOOO()  |&lt;br /&gt;
|    ........................................  ...............OO..OO..O.......O........  ...........O...O...O.O...O...O..........    |&lt;br /&gt;
| O  .O....OO.O.O....O.O.OOO..O.O.OO.O..OOO.O  ..O...........OOO.OOO.OOOOOOO.OOO.OOO.OO  OOOOOOOOOOOOOOOOOOOO.OOOOOOOOO..........  O |&lt;br /&gt;
|    O.OOOOOOO.O.OOOO.O.OOOOOO.O.OOOO.OO.OOO.  OOO..........OOOOOOOOOOOOOOOOOOOOOOOOOO.  OOOOOOOOOOOOOOOOOOOOOOOOOOOOOO..........    |&lt;br /&gt;
\------------------------------------------------------------------------------------------------------------------------------------/    &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:91--&amp;gt;&lt;br /&gt;
*CGF2Card int32&lt;br /&gt;
ha de estar a 0.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:92--&amp;gt;&lt;br /&gt;
*CGF2Type int32&lt;br /&gt;
Número de columnas útiles en el cartón.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:93--&amp;gt;&lt;br /&gt;
*CGF2Taille int32&lt;br /&gt;
Número de columnas totales que caben del cartón.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:94--&amp;gt;&lt;br /&gt;
*CGF2Numlines int32&lt;br /&gt;
numero de entradas de las que consta la especificación del cartón.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:95--&amp;gt;&lt;br /&gt;
*CGF2Script string(CGF2Numlines)&lt;br /&gt;
Especificación del cartón. Formateado igual que CGF1Script.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:96--&amp;gt;&lt;br /&gt;
*CGF2Descrip string(CGF2Numlines)&lt;br /&gt;
Descripción de cada entada del cartón.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:97--&amp;gt;&lt;br /&gt;
*CFBCard int32&lt;br /&gt;
ha de estar a 1.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:98--&amp;gt;&lt;br /&gt;
*CFBType int32&lt;br /&gt;
Número de columnas útiles en el cartón.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:99--&amp;gt;&lt;br /&gt;
*CFBTaille int32&lt;br /&gt;
Número de columnas totales que caben del cartón multiplicadas por 8.Ex:&lt;br /&gt;
si el cartón tiene 75 columnas CFBTaille=75*8=600&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:100--&amp;gt;&lt;br /&gt;
*CFBNumlines int32&lt;br /&gt;
numero de entradas de las que consta la especificación del cartón.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:101--&amp;gt;&lt;br /&gt;
*CFBScript string(CFBNumlines)&lt;br /&gt;
Especificación del cartón. Formateado igual que CGF1Script. Excepto que los tipos aceptados&lt;br /&gt;
son:&lt;br /&gt;
   LC: Laçage&lt;br /&gt;
   TC: Trou de centrage&lt;br /&gt;
   TS: Trou de centrage simple&lt;br /&gt;
   EL: Element vide&lt;br /&gt;
   FB: Fine barre&lt;br /&gt;
   VB: Value&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:102--&amp;gt;&lt;br /&gt;
Es decir el tipo &amp;quot;GF&amp;quot; no existe para este tag y en su lugar hay el tipo &amp;quot;FB&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:103--&amp;gt;&lt;br /&gt;
*CFBDescrip string(CFBNumlines)&lt;br /&gt;
Descripción de cada entada del cartón.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:104--&amp;gt;&lt;br /&gt;
*CFBNGaits int32&lt;br /&gt;
Número de entradas para mapear las repeticiones de agujas de Fine Barre a los cartones en función de la repetición.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:105--&amp;gt;&lt;br /&gt;
*CFBGaitNRepeat int32(CFBNGaits)&lt;br /&gt;
Número de repetición a mapear&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:106--&amp;gt;&lt;br /&gt;
*CFBGaitNBar int32(CFBNGaits)&lt;br /&gt;
Número de aguja a mapear&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:107--&amp;gt;&lt;br /&gt;
*CFBGaitNGait int32(CFBNGaits)&lt;br /&gt;
Indice de agujero en el cartón&lt;br /&gt;
&lt;br /&gt;
==== TAGS DRAFT DATA ==== &amp;lt;!--T:109--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:110--&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:111--&amp;gt;&lt;br /&gt;
*NumCourses int32&lt;br /&gt;
Numero de pasadas del dibujo sin tener en cuenta las repeticiones.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:112--&amp;gt;&lt;br /&gt;
*BarNeedle int16(NumCourses*NumBars)&lt;br /&gt;
Despazamientos medidos en agujas de las barras en cada pasada. Ordenados de la siguiente manera:&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;!--T:113--&amp;gt;&lt;br /&gt;
BarNeedle(0)              Desplazamiento barra 1 en la primera pasada.&lt;br /&gt;
   BarNeedle(1)              Desplazamiento barra 1 en la segunda pasada.&lt;br /&gt;
   .&lt;br /&gt;
   .&lt;br /&gt;
   BarNeedle(NumCourses-1)   Desplazamiento barra 1 en la última pasada.&lt;br /&gt;
   BarNeedle(NumCourses)     Desplazamiento barra 2 en la primera pasada.&lt;br /&gt;
   .&lt;br /&gt;
   .&lt;br /&gt;
   BarNeedel(NumCourses*2-1) Desplazamiento barra 2 en la última pasada.&lt;br /&gt;
   BarNeedle(NumCourses)     Desplazamiento barra 3 en la primera pasada.&lt;br /&gt;
   .&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:114--&amp;gt;&lt;br /&gt;
*BarNeedleB int16(NumCourses*NumBars)&lt;br /&gt;
Solo se utiliza en maquinas de doble frontura. Es equivalente a BarNeedle pero contiene la información&lt;br /&gt;
para la segunda frontura.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:115--&amp;gt;&lt;br /&gt;
*BarHalves byte(NumCourses*NumBars)&lt;br /&gt;
Incremento de 1/2 aguja en el movimiento de la barra introducido manualmente por el diseñador desde el menú de Bareme&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:116--&amp;gt;&lt;br /&gt;
*BarKnitting byte(NumCourses*NumBars)&lt;br /&gt;
Indica en las maquinas que hacen 2 movimientos por pasada que movimiento se realiza&lt;br /&gt;
Valores:&lt;br /&gt;
 0 : Movimiento 0 0 . No liga&lt;br /&gt;
 1 : Movimeinto 0 1 . Liga&lt;br /&gt;
 2 : Movimeinto 1 0 . Liga&lt;br /&gt;
 3 : Movimeinto 1 1 . No liga&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:117--&amp;gt;&lt;br /&gt;
*BarKnittingB byte(NumCourses*NumBars)&lt;br /&gt;
Solo se utiliza en maquinas de doble frontura. Es equivalente a BarKnitting pero contiene la información&lt;br /&gt;
para la segunda frontura.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:118--&amp;gt;&lt;br /&gt;
*Layout_JacqData byte(NumCourses*JacqNeedles*Jacquard)&lt;br /&gt;
Cada byte guarda un bit de Jacquard. Valores:&lt;br /&gt;
0: T&lt;br /&gt;
1: H&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:119--&amp;gt;&lt;br /&gt;
*Layout_FrontureData byte(NumCourses*JacqNeedles*Jacquard)&lt;br /&gt;
Solo se utiliza en maquinas de doble frontura. Es equivalente a Layout_JacqData pero contiene la información&lt;br /&gt;
para la segunda frontura.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:120--&amp;gt;&lt;br /&gt;
*Layout_WBData byte(NumCourses*JacqNeedles*Jacquard)&lt;br /&gt;
Solo se utiliza en maquinas CLIPTRONIC . Contiene los datos para la barra de Embrodery(WB) en el mismo formato que&lt;br /&gt;
Layout_JacqData.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:121--&amp;gt;&lt;br /&gt;
*LayoutCourNRepeats int32&lt;br /&gt;
Numero de repeticiones de pasadas. Las repeticiones de pasadas afectan por igual las barras de dibujo y el jacquard.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:122--&amp;gt;&lt;br /&gt;
*LayoutCourNLayouts int32&lt;br /&gt;
Numero de bloques de pasadas a repetir&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:123--&amp;gt;&lt;br /&gt;
*LayoutCourRepeat int32(LayoutCourNLayouts)&lt;br /&gt;
Numero de pasadas que contiene cada bloque a repetir&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:124--&amp;gt;&lt;br /&gt;
*LayoutCourWhich int32(LayoutCourNRepeats)&lt;br /&gt;
indice del bloque que a repetir&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:125--&amp;gt;&lt;br /&gt;
*LayoutCourTimes int32(LayoutCourNRepeats)&lt;br /&gt;
numero de veces que se ha de repetir el bloque. Ejemplo:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:126--&amp;gt;&lt;br /&gt;
Normalmente como los dibujos suelen ser bastante repetitivos, para ahorrar trabajo y memoria no se guardan todas las pasadas&lt;br /&gt;
del dibujo. En un dibujo como el siguiente :&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;!--T:127--&amp;gt;&lt;br /&gt;
+------------------------------------------------------------------------------------------+&lt;br /&gt;
    |  ,~.~._,~.~._,~.~._,~.~._,~.~._,~.~._,~.~.    ,~.~._,~.~._,~.~._,~.~._,~.~._,~.~._,~.~.  | &lt;br /&gt;
    | / O.O   O.O   O.O   O.O   O.O   O.O   O.O \  / O.O   O.O   O.O   O.O   O.O   O.O   O.O \ | &lt;br /&gt;
    |( O:@:O O:@:O O:@:O O:@:O O:@:O O:@:O O:@:O )( O:@:O O:@:O O:@:O O:@:O O:@:O O:@:O O:@:O )| &lt;br /&gt;
    | \ O&#039;O   O&#039;O   O&#039;O   O&#039;O   O&#039;O   O&#039;O   O&#039;O /  \ O&#039;O   O&#039;O   O&#039;O   O&#039;O   O&#039;O   O&#039;O   O&#039;O / | &lt;br /&gt;
    |  )   . ,   . ,   . ,   . ,   . ,   . ,   (    )   . ,   . ,   . ,   . ,   . ,   . ,   (  | &lt;br /&gt;
/\  | (  * -@- * -@- * -@- * -@- * -@- * -@- *  )  (  * -@- * -@- * -@- * -@- * -@- * -@- *  ) | &lt;br /&gt;
 A  |  )   &#039; `   &#039; `   &#039; `   &#039; `   &#039; `   &#039; `   (    )   &#039; `   &#039; `   &#039; `   &#039; `   &#039; `   &#039; `   (  | &lt;br /&gt;
 g  | / O.O   O.O   O.O   O.O   O.O   O.O   O.O \  / O.O   O.O   O.O   O.O   O.O   O.O   O.O \ | &lt;br /&gt;
 u  |( O:@:O O:@:O O:@:O O:@:O O:@:O O:@:O O:@:O )( O:@:O O:@:O O:@:O O:@:O O:@:O O:@:O O:@:O )| &lt;br /&gt;
 j  | \ O&#039;O   O&#039;O   O&#039;O   O&#039;O   O&#039;O   O&#039;O   O&#039;O /  \ O&#039;O   O&#039;O   O&#039;O   O&#039;O   O&#039;O   O&#039;O   O&#039;O / | &lt;br /&gt;
 a  |  ·~·~·^·~·~·^·~·~·^·~·~·^·~·~·^·~·~·^·~·~·    ·~·~·^·~·~·^·~·~·^·~·~·^·~·~·^·~·~·^·~·~·  | &lt;br /&gt;
 s  +------------------------------------------------------------------------------------------+&lt;br /&gt;
     Pasadas &amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:128--&amp;gt;&lt;br /&gt;
Si se mira lo que hay guardado en el archivo se encontraría algo similar a :&lt;br /&gt;
                     &lt;br /&gt;
    +---------------+&lt;br /&gt;
    |  ,~.~._,~.~.  |&lt;br /&gt;
    | / O.O   O.O \ |&lt;br /&gt;
    |( O:@:O O:@:O )|&lt;br /&gt;
    | \ O&#039;O   O&#039;O / |&lt;br /&gt;
    |  )   . ,   (  |&lt;br /&gt;
/\  | (  * -@- *  ) | &lt;br /&gt;
 A  |  )   &#039; `   (  |&lt;br /&gt;
 g  | / O.O   O.O \ |&lt;br /&gt;
 u  |( O:@:O O:@:O )|&lt;br /&gt;
 j  | \ O&#039;O   O&#039;O / |&lt;br /&gt;
 a  |  ·~·~·^·~·~·  |&lt;br /&gt;
 s  +---------------+&lt;br /&gt;
     Pasadas &amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:129--&amp;gt;&lt;br /&gt;
Esto pasa por que se ha guardado solo una vez cada bloque que se repite. En este caso los bloques que se han usado:&lt;br /&gt;
&lt;br /&gt;
     &amp;lt;!--T:130--&amp;gt;&lt;br /&gt;
A      B        C&lt;br /&gt;
  +----+ +------+ +-----+&lt;br /&gt;
  |  ,~| |.~._,~| |.~.  | &lt;br /&gt;
  | / O| |.O   O| |.O \ | &lt;br /&gt;
  |( O:| |@:O O:| |@:O )| &lt;br /&gt;
  | \ O| |&#039;O   O| |&#039;O / | &lt;br /&gt;
  |  ) | |  . , | |  (  | &lt;br /&gt;
  | (  | |* -@- | |*  ) |&lt;br /&gt;
  |  ) | |  &#039; ` | |  (  | &lt;br /&gt;
  | / O| |.O   O| |.O \ | &lt;br /&gt;
  |( O:| |@:O O:| |@:O )|&lt;br /&gt;
  | \ O| |&#039;O   O| |&#039;O / |  &lt;br /&gt;
  |  ·~| |·~·^·~| |·~·  | &lt;br /&gt;
  +----+ +------+ +-----+&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:131--&amp;gt;&lt;br /&gt;
Se puede ver con facilidad que la sequencia de bloques para obtener el dibujo es: A B B B B B B C A B B B B B B C&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:132--&amp;gt;&lt;br /&gt;
LayoutCourNLayouts=3 pues hay tres bloques distintos ( A , B , C )&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:133--&amp;gt;&lt;br /&gt;
LayoutCourRepeat=Array(&lt;br /&gt;
   numero de pasadas de A,&lt;br /&gt;
   numero de pasadas de B,&lt;br /&gt;
   numero de pasadas de C&lt;br /&gt;
)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:134--&amp;gt;&lt;br /&gt;
NOTA: El número total de pasadas ha de ser igual a la suma de pasadas de los bloques de repeticiones. Es decir:&lt;br /&gt;
NumCourses=LayoutCourRepeat(0)+...+LayoutCourRepeat(LayoutCourNLayouts-1)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:135--&amp;gt;&lt;br /&gt;
Luego para codificar que se desea 1 repetición de A, 6 repeticiones de B y una repeticion de C se haria de la siguiente manera:&lt;br /&gt;
&lt;br /&gt;
                         &amp;lt;!--T:136--&amp;gt;&lt;br /&gt;
idx  |  LayoutCourWhich | LayoutCourTimes | Significado&lt;br /&gt;
                      --------+------------------+-----------------+------------------&lt;br /&gt;
                        _     |                  |                 |&lt;br /&gt;
                       /  0   |         1        |       1         | Bloque 1 (A) repetir una vez&lt;br /&gt;
                       |      |                  |                 |&lt;br /&gt;
                       |  1   |         2        |       6         | Bloque 2 (B) repetir 6 veces&lt;br /&gt;
                       |      |                  |                 |&lt;br /&gt;
                       |  2   |         3        |       1         | Bloque 3 (C) repetir una vez&lt;br /&gt;
LayoutCourNRepeats=6  &amp;lt;       |                  |                 |&lt;br /&gt;
                       |  3   |         1        |       1         | Bloque 1 (A) repetir una vez&lt;br /&gt;
                       |      |                  |                 |&lt;br /&gt;
                       |  4   |         2        |       6         | Bloque 2 (B) repetir 6 veces&lt;br /&gt;
                       |      |                  |                 |&lt;br /&gt;
                       \_ 5   |         3        |       1         | Bloque 3 (C) repetir una vez&lt;br /&gt;
                              |                  |                 |&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:137--&amp;gt;&lt;br /&gt;
*LayoutJacqNRepeats int32&lt;br /&gt;
Numero de repeticiones de agujas. Solo afecta el jacquard. Sigue el mismo sistema que las repeticiones de pasadas.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:138--&amp;gt;&lt;br /&gt;
*LayoutJacqNLayouts int32&lt;br /&gt;
Numero de bloques de agujas a repetir&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:139--&amp;gt;&lt;br /&gt;
*LayoutJacqRepeat int32(LayoutJacqNLayouts)&lt;br /&gt;
Numero de agujas que contiene cada bloque a repetir&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:140--&amp;gt;&lt;br /&gt;
*LayoutJacqWhich int32(LayoutJacqNRepeats)&lt;br /&gt;
indice del bloque que a repetir&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:141--&amp;gt;&lt;br /&gt;
*LayoutJacqTimes int32(LayoutJacqNRepeats)&lt;br /&gt;
numero de veces que se ha de repetir el bloque.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:142--&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;/div&gt;</summary>
		<author><name>Pascual</name></author>
	</entry>
	<entry>
		<id>https://wiki.cadt.com/index.php?title=Drf-reader&amp;diff=3161</id>
		<title>Drf-reader</title>
		<link rel="alternate" type="text/html" href="https://wiki.cadt.com/index.php?title=Drf-reader&amp;diff=3161"/>
		<updated>2016-10-05T17:21:09Z</updated>

		<summary type="html">&lt;p&gt;Pascual: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;languages/&amp;gt;&lt;br /&gt;
[[Category:SAPO]]&lt;br /&gt;
[[Category:Devel]]&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== DLL_EXPORTS === &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;void drf_clear_errors()&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Descr:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:1--&amp;gt;&lt;br /&gt;
Borra todos los mensajes de error producidos por la librería.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;int drf_get_num_errors()&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Descr:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:2--&amp;gt;&lt;br /&gt;
Obtiene el número de mensajes de error producidos por la librería.&lt;br /&gt;
&lt;br /&gt;
Return:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:3--&amp;gt;&lt;br /&gt;
Número de mensajes almacenados.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;const char* drf_get_error(int idx)&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Descr:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:4--&amp;gt;&lt;br /&gt;
Obtiene el mensaje de error indicado por idx (referenciado a 0).&lt;br /&gt;
&lt;br /&gt;
Params:&lt;br /&gt;
&lt;br /&gt;
idx:&lt;br /&gt;
&amp;lt;!--T:5--&amp;gt;&lt;br /&gt;
Número de mensaje a obtener. Rango entre: 0 y (drf_get_num_errors()-1) ambos incluidos.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:6--&amp;gt;&lt;br /&gt;
Return:&lt;br /&gt;
&lt;br /&gt;
Éxito: Puntero a una cadena de caracteres ASCII terminada por el byte NUL (&#039;\0&#039;)&lt;br /&gt;
&lt;br /&gt;
Error: NULL en caso que el valor de idx esté fuera de rango.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;int drf_to_json(char *path,FILE *json,int options)&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Descr:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:7--&amp;gt;&lt;br /&gt;
Serializa a JSON un archivo en formato DRF.&lt;br /&gt;
&lt;br /&gt;
Params:&lt;br /&gt;
&lt;br /&gt;
path:&lt;br /&gt;
Ruta al fichero DRF a serializar en formato Windows ANSI.&lt;br /&gt;
&lt;br /&gt;
json:&lt;br /&gt;
puntero FILE ya abierto y con la escritura habilitada.&lt;br /&gt;
&lt;br /&gt;
options:&lt;br /&gt;
&amp;lt;!--T:8--&amp;gt;&lt;br /&gt;
Selecciona que información se serializará. Valores possibles:&lt;br /&gt;
&lt;br /&gt;
   DRF_GET_GENERIC_INFO&lt;br /&gt;
   DRF_GET_MACHINE_INFO&lt;br /&gt;
   DRF_GET_DRAFT_INFO&lt;br /&gt;
   DRF_GET_ALL_INFO&lt;br /&gt;
&lt;br /&gt;
o una combinación de los valores anteriores (OR)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:9--&amp;gt;&lt;br /&gt;
Return:&lt;br /&gt;
&lt;br /&gt;
Éxito : retorna valor igual a 0&lt;br /&gt;
&lt;br /&gt;
Error : retorna valor diferente de 0&lt;br /&gt;
&lt;br /&gt;
=== TAGS ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:11--&amp;gt;&lt;br /&gt;
Codificación a JSON de los datos:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:12--&amp;gt;&lt;br /&gt;
Internamente el DRF guarda la información como una lista de tags. Cada tag puede contener uno o varios elementos del mismo tipo.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:13--&amp;gt;&lt;br /&gt;
Al codificar un DRF a JSON se codifica como un objeto donde se usa el nombre del tag como clave y el contenido de éste como valor.&lt;br /&gt;
En caso que el tag pueda contener más de un valor, la librería serializa el contenido como un vector.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:14--&amp;gt;&lt;br /&gt;
Como el formato DRF soporta más tipos que el JSON, la librería los convertirá a un tipo soportado por el JSON. La siguiente tabla muestra a que &lt;br /&gt;
tipo del JSON se convierte cada tipo del DRF &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    DRF  | JSON   &lt;br /&gt;
  -------+--------&lt;br /&gt;
  byte   | &lt;br /&gt;
  int16  | int&lt;br /&gt;
  int32  |&lt;br /&gt;
  -------+-------&lt;br /&gt;
  float  | float&lt;br /&gt;
  -------+-------&lt;br /&gt;
  string | string *&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:16--&amp;gt;&lt;br /&gt;
*) Todos los strings contienen sólo caracteres ASCII (encoding:ASCII-7)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== TAGS GENERIC INFO ==== &amp;lt;!--T:17--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:18--&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:19--&amp;gt;&lt;br /&gt;
*Software string&lt;br /&gt;
Nombre del programa que ha generado el fichero .DRF&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:20--&amp;gt;&lt;br /&gt;
*DrawName string&lt;br /&gt;
Referencia del dibujo (max. 256 carac).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:21--&amp;gt;&lt;br /&gt;
*Company string&lt;br /&gt;
Compañía que ha creado el dibujo (max. 30 carac).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:22--&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== TAGS MACHINE INFO ==== &amp;lt;!--T:23--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:25--&amp;gt;&lt;br /&gt;
*Machine string&lt;br /&gt;
Referencia de la máquina. (max. 30 carac) &lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:26--&amp;gt;&lt;br /&gt;
*MachineType string&lt;br /&gt;
Modelo de la máquina. Sólo es válido un modelo definido en el sistema de diseño. (p.e. LEAVERS)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:27--&amp;gt;&lt;br /&gt;
*Description string&lt;br /&gt;
Descripción o información adicional de la máquina.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:28--&amp;gt;&lt;br /&gt;
*Serial string&lt;br /&gt;
Num. serie de la máquina. (max. 30 carac) . Puede contener carácteres no numéricos.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:29--&amp;gt;&lt;br /&gt;
*Version int32 [RASCHEL SU]&lt;br /&gt;
Versión de la máquina raschel SU (versión 1 .. 4).&lt;br /&gt;
   versión 1 . Sin ahorrador de memoria&lt;br /&gt;
   versión 2 . Con ahorrador de memoria (repeticiones)&lt;br /&gt;
   versión 3 . Sin ahorrador de memoria + información empresa.&lt;br /&gt;
   versión 4 . Con ahorrador de memoria (repeciciones) + información empresa.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:30--&amp;gt;&lt;br /&gt;
*Jacquard int32&lt;br /&gt;
Número de barras de Jacquard independientes. Valores posibles: &lt;br /&gt;
   0 : No jacquard&lt;br /&gt;
   1 : 1 jacquard o fina barra simple&lt;br /&gt;
   2 : 2 jacquard raschel o fina barra doble.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:31--&amp;gt;&lt;br /&gt;
*Fronture int32 [RASCHEL DOUBLE NEEDLE BAR]&lt;br /&gt;
Número de fonturas de la máquina&lt;br /&gt;
   1 : 1 fontura&lt;br /&gt;
   2 : 2 fontures (delante / detrás)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:32--&amp;gt;&lt;br /&gt;
*BarsRepeat int32&lt;br /&gt;
Altura del diseño.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:33--&amp;gt;&lt;br /&gt;
*NumRepeats int32&lt;br /&gt;
Num de repeticiones en el diseño.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:34--&amp;gt;&lt;br /&gt;
*NumBars int32&lt;br /&gt;
Numero de barras que tiene el telar.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:35--&amp;gt;&lt;br /&gt;
*Plate int32&lt;br /&gt;
En máquinas raschel (textronic), indica la posición de la plancha.&lt;br /&gt;
En máquinas leavers indica donde empiezan los brodeurs.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:36--&amp;gt;&lt;br /&gt;
*JacqNeedles int32&lt;br /&gt;
Numero de agujas de Jacquard del telar.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:37--&amp;gt;&lt;br /&gt;
*MachNeedles int32&lt;br /&gt;
Numero total de agujas del telar.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:38--&amp;gt;&lt;br /&gt;
*BarsOffset int32&lt;br /&gt;
Desplazamiento de barras (orillos=zona perdida)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:39--&amp;gt;&lt;br /&gt;
*JacqOffset int32&lt;br /&gt;
Deplazamiento de las agujas de jacquard en el telar.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:40--&amp;gt;&lt;br /&gt;
*MaxDisp int32 [RASCHEL SU]&lt;br /&gt;
Deplazamiento máximo general de las barras para máquinas raschel SU.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:41--&amp;gt;&lt;br /&gt;
*Proximity int32&lt;br /&gt;
Para máquinas raschel, distáncia máxima a la que se pueden acercar dos barras del mismo grupo.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:42--&amp;gt;&lt;br /&gt;
*ProximityCollindant int32&lt;br /&gt;
Para máquinas raschel, distáncia máxima a la que se pueden acercar dos barras del mismo grupo colindantes.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:43--&amp;gt;&lt;br /&gt;
*JacqRt int32&lt;br /&gt;
Deplazamiento Rt del jacquard:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:44--&amp;gt;&lt;br /&gt;
para máquinas raschel:&lt;br /&gt;
   no jacquard: rt = 0&lt;br /&gt;
   jacquard simple o doble: rt = 1&lt;br /&gt;
Indica cuántas agujas se desplaza la lectura del jacaquard en las pasadas alternadas.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:45--&amp;gt;&lt;br /&gt;
para máquinas leavers&lt;br /&gt;
   no fina barra:      0&lt;br /&gt;
   fina barra simple: -1&lt;br /&gt;
   fina barra doble:   0&lt;br /&gt;
Indica cuántas agujas se desplaza la lectura del jacquard (desde la posición derecha de la máquina en las pasadas alternadas).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:46--&amp;gt;&lt;br /&gt;
*JacqRtCourse int32&lt;br /&gt;
Indica que pasadas se aplica el valor JacqRt.&lt;br /&gt;
   0:pasadas pares&lt;br /&gt;
   1: pasadas impares&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:47--&amp;gt;&lt;br /&gt;
*FinalGauge float&lt;br /&gt;
Galga de producto tejido aplicando encongimiento (medida en agujas/pulgada)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:48--&amp;gt;&lt;br /&gt;
*FinalQuality float&lt;br /&gt;
Calidad de producto tejido aplicando elasticidad (medida en pasadas/centímetro).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:49--&amp;gt;&lt;br /&gt;
*RealGauge float&lt;br /&gt;
Galga de máquina (medida en agujas/pulgada)-&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:50--&amp;gt;&lt;br /&gt;
*RealQuality float&lt;br /&gt;
Calidad de máquina (medida en pasadas/centímetro).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:51--&amp;gt;&lt;br /&gt;
*Shrinkage float&lt;br /&gt;
Porcentage de encongimiento en agujas (0-100%)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:52--&amp;gt;&lt;br /&gt;
*Elasticity float&lt;br /&gt;
Porcentage de elasticidad en pasadas (0-100%)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:53--&amp;gt;&lt;br /&gt;
*BarNumBar int32(NumBars)&lt;br /&gt;
Numero de cada una de las barras del telar (valor numérico consecutivo)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:54--&amp;gt;&lt;br /&gt;
*BarName string(NumBars)&lt;br /&gt;
Nombre o identificador de cada una de las barras del telar&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:55--&amp;gt;&lt;br /&gt;
*BarGroup int32(NumBars)&lt;br /&gt;
En máquinas raschel el número de grupo de la barra.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:56--&amp;gt;&lt;br /&gt;
*BarStop int32(NumBars)&lt;br /&gt;
Posición 0 de la barra.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:57--&amp;gt;&lt;br /&gt;
*BarUtil int32(NumBars)&lt;br /&gt;
Visibilidad de la barra en el sistema de diseño.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:58--&amp;gt;&lt;br /&gt;
*BarType int32(NumBars)&lt;br /&gt;
Tipo de hilo por defecto de la barra.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:59--&amp;gt;&lt;br /&gt;
*BarMaxGimp int32&lt;br /&gt;
Guimpada máxima en agujas de la barra.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:60--&amp;gt;&lt;br /&gt;
*BarDrive int32&lt;br /&gt;
En máquinas raschel SU, el número de getribe de la barra.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:61--&amp;gt;&lt;br /&gt;
*BarFactor int32&lt;br /&gt;
En máquinas raschel SU, multiplicador de la barra.&lt;br /&gt;
1: factor de 1 agulla&lt;br /&gt;
2: factor de 2 agulles,&lt;br /&gt;
4: factor de 4 agulles.&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:62--&amp;gt;&lt;br /&gt;
*BarInvert int32&lt;br /&gt;
En máquinas raschel SU, les barres invertides. &lt;br /&gt;
1: barra invertida.&lt;br /&gt;
0: barra no invertida.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:63--&amp;gt;&lt;br /&gt;
*BarWork int32&lt;br /&gt;
Trabajo de la barra en el sistema de diseño.&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;!--T:64--&amp;gt;&lt;br /&gt;
0: Chainette&lt;br /&gt;
   1: Jacquard     [1]&lt;br /&gt;
   2: Brodeur&lt;br /&gt;
   3: Gros&lt;br /&gt;
   4: Fin&lt;br /&gt;
   5: Brillant&lt;br /&gt;
   6: Picot&lt;br /&gt;
   7: Corde&lt;br /&gt;
   8: Lycra&lt;br /&gt;
   9: Fond&lt;br /&gt;
  10: Bloc&lt;br /&gt;
  11: Cord&lt;br /&gt;
  12: Guimp&lt;br /&gt;
  13: Nul&lt;br /&gt;
  14: Jacq 0/2,6/4 [1]&lt;br /&gt;
  15: Jacq 0/2,8/6 [1]&lt;br /&gt;
  16: Fine Bar.  [sup]&lt;br /&gt;
  17: Braquette&amp;quot;&lt;br /&gt;
  18: Jacquard     [2]&lt;br /&gt;
  19: Jacq 0/2,6/4 [2]&lt;br /&gt;
  20: Jacq 0/2,8/6 [2]&lt;br /&gt;
  21: Fine Bar.  [inf]&lt;br /&gt;
  22: Jacquard&lt;br /&gt;
  23: Fine Barre&lt;br /&gt;
  24: Fallplate&lt;br /&gt;
  25: Embrodery&lt;br /&gt;
  26: EFS&lt;br /&gt;
  27: Reservé 1&lt;br /&gt;
  28: Reservé 2&lt;br /&gt;
  29: Jacq 0/2,6/4&lt;br /&gt;
  30: Jacq 0/2,8/6&lt;br /&gt;
  31: Bord&lt;br /&gt;
  32: Lisieres&lt;br /&gt;
  33: Romaines&lt;br /&gt;
  34: Sonnette&lt;br /&gt;
  35: Guimp devant&lt;br /&gt;
  36: Petite Corde&lt;br /&gt;
  37: Fileur&lt;br /&gt;
  38: Separation&lt;br /&gt;
  39: Corde Termo&lt;br /&gt;
  40: Solv rom&lt;br /&gt;
  41: Vis&lt;br /&gt;
  42: Jacquard     [3]&lt;br /&gt;
  43: Jacquard     [4]&lt;br /&gt;
  44: Space Fabric&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:65--&amp;gt;&lt;br /&gt;
*BarKnit&lt;br /&gt;
En máquines raschel textronic tipous de lligada:&lt;br /&gt;
  0 : no planxa&lt;br /&gt;
  1 : lligada 1 (mecanica)&lt;br /&gt;
  2 : lligada 2 (binaria)&lt;br /&gt;
  3 : lligada 3 (mecánica (2))&lt;br /&gt;
  4 : lligada 4 (binària (2))&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:66--&amp;gt;&lt;br /&gt;
*BarTimes&lt;br /&gt;
En máquines raschel textonic temps de la lligada&lt;br /&gt;
  0 : no planxa&lt;br /&gt;
  2 : temps 2 (p.e) 0202 0202 0202&lt;br /&gt;
  4 : temps 4 (p.e) 0220 0220 0220&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:67--&amp;gt;&lt;br /&gt;
*BarMode&lt;br /&gt;
En máquines raschel textronic el mode la la barra:&lt;br /&gt;
  0 : mode A (p.e 0220)&lt;br /&gt;
  1 : mode B (p.e 2002)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:68--&amp;gt;&lt;br /&gt;
*BarModif int32&lt;br /&gt;
En máquines raschel textronic indica que la barra no es pot deslligar&lt;br /&gt;
  0 : no es pot deslligar&lt;br /&gt;
  1 : si es pot deslligar&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:69--&amp;gt;&lt;br /&gt;
*BarTension int32&lt;br /&gt;
Tensió de la barra a les simulacions.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:70--&amp;gt;&lt;br /&gt;
*BarNumFingers int32(NumBars)&lt;br /&gt;
Número de pasadors de la barra&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:71--&amp;gt;&lt;br /&gt;
*BarModeDrop int32(NumBars)&lt;br /&gt;
Ponderación de cada uno de los 7 bits que se usan para indicar el desplazamiento de la barra. Valores:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;!--T:72--&amp;gt;&lt;br /&gt;
Valor | B7 | B6 | B5 | B4 | B3 | B2 | B1&lt;br /&gt;
 ------+----+----+----+----+----+----+----&lt;br /&gt;
    0  |  8 |  8 |  8 |  4 |  2 |  1 |1/2&lt;br /&gt;
 ------+----+----+----+----+----+----+----&lt;br /&gt;
    1  | 16 |  8 |  8 |  4 |  2 |  1 |1/2&lt;br /&gt;
 ------+----+----+----+----+----+----+----&lt;br /&gt;
    2  | 16 | 16 |  8 |  4 |  2 |  1 |1/2&lt;br /&gt;
 ------+----+----+----+----+----+----+----&lt;br /&gt;
    3  | 32 | 16 |  8 |  4 |  2 |  1 |1/2&lt;br /&gt;
 ------+----+----+----+----+----+----+----&lt;br /&gt;
    4  |  8 |  8 |  8 |  8 |  4 |  2 | 1&lt;br /&gt;
 ------+----+----+----+----+----+----+----&lt;br /&gt;
    5  | 16 |  8 |  8 |  8 |  4 |  2 | 1&lt;br /&gt;
 ------+----+----+----+----+----+----+----&lt;br /&gt;
    6  |  4 |  4 |  4 |  4 |  2 |  1 | 1&lt;br /&gt;
 ------+----+----+----+----+----+----+----&lt;br /&gt;
    7  |  0 |  0 |  0 |  1 |  2 |  1 |1/2&lt;br /&gt;
 ------+----+----+----+----+----+----+----&lt;br /&gt;
    8  |  4 |  4 |  4 |  4 |  2 |  1 |1/2&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:73--&amp;gt;&lt;br /&gt;
*BarMaxDesp int32(NumBars)&lt;br /&gt;
Desplazamiento máximo de la barra en agujas&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:74--&amp;gt;&lt;br /&gt;
*BarActive byte(NumBars)&lt;br /&gt;
Sólo para maquinas EL. Indica si la barra esta en uso o no.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:75--&amp;gt;&lt;br /&gt;
*BarHalvesUp byte(NumBars)&lt;br /&gt;
Si en la pasada se incrementa la posición de la barra en BarHalvesUp agujas o más, entonces , se añade media aguja a la posición final.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:76--&amp;gt;&lt;br /&gt;
*BarHalvesDn byte(NumBars)&lt;br /&gt;
Si en la pasada se decrementa la posición de la barra en BarHalvesDwn agujas o más, entonces , se le resta media aguja a la posición final.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:77--&amp;gt;&lt;br /&gt;
*BarString int32(NumBars)&lt;br /&gt;
Valors:&lt;br /&gt;
0:&lt;br /&gt;
1:ple&lt;br /&gt;
2:1f 1x&lt;br /&gt;
3:1x 1f&lt;br /&gt;
4:buit&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:78--&amp;gt;&lt;br /&gt;
*BarFronture int32(NumBars)&lt;br /&gt;
Solo se usa en las máquinas de doble frontura. Da la frontura en la que empieza a trabajar la barra.Valores:&lt;br /&gt;
0: primera forntura&lt;br /&gt;
1: segunda frontura&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:79--&amp;gt;&lt;br /&gt;
*BarDropsUtil int32(7*NumBars)&lt;br /&gt;
indica como se deben perforar los 7 posiciones correspondientes a la barra:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:80--&amp;gt;&lt;br /&gt;
Valor:&lt;br /&gt;
0: Usado. Siempre a 1. Es decir: no perforar nunca&lt;br /&gt;
1: Usado, Se perforara o no en funcion del desplazamiento de la barra&lt;br /&gt;
2: Usado. Siemre a 0. Es decir, se perfora siempre&lt;br /&gt;
3: No usado. No se perfora&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:81--&amp;gt;&lt;br /&gt;
*FingerStop int32(num_fingers) num_fingers=BarNumFingers(0) + ... + BarNumFingers(NumBars-1)&lt;br /&gt;
Stop del pasador relativo al stop de la barra.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:82--&amp;gt;&lt;br /&gt;
*FingerType int32(num_fingers) num_fingers=BarNumFingers(0) + ... + BarNumFingers(NumBars-1)&lt;br /&gt;
Tipo de pasador.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:83--&amp;gt;&lt;br /&gt;
*CGF1Card int32&lt;br /&gt;
ha de estar a 0.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:84--&amp;gt;&lt;br /&gt;
*CGF1Type int32&lt;br /&gt;
Número de columnas útiles en el cartón.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:85--&amp;gt;&lt;br /&gt;
*CGF1Taille int32&lt;br /&gt;
Número de columnas totales que caben del cartón.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:86--&amp;gt;&lt;br /&gt;
*CGF1Numlines int32&lt;br /&gt;
numero de entradas de las que consta la especificación del cartón.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:87--&amp;gt;&lt;br /&gt;
*CGF1Script string(CGF1Numlines)&lt;br /&gt;
Lista de cadenas de caracteres que detallan como se ha de perforar  cada columna del cartón empezando por la columna de mas a la derecha.&lt;br /&gt;
Cada cadena de caracteres tiene el formato: &amp;lt;codigo de tipo&amp;gt; &amp;lt;espacio&amp;gt; &amp;lt;numero de repeticiones&amp;gt;. Ex: &amp;quot;LC 1&amp;quot;.&lt;br /&gt;
Los codigos de tipo validos son:&lt;br /&gt;
   LC: Laçage&lt;br /&gt;
   TC: Trou de centrage&lt;br /&gt;
   TS: Trou de centrage simple&lt;br /&gt;
   EL: Element vide&lt;br /&gt;
   GF: Gros fil&lt;br /&gt;
   VB: Value&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:88--&amp;gt;&lt;br /&gt;
*CGF1Descrip string(CGF1Numlines)&lt;br /&gt;
Descripción de cada entada del cartón.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:89--&amp;gt;&lt;br /&gt;
Ex:&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;!--T:90--&amp;gt;&lt;br /&gt;
CGF1Script | CGF1Descrip&lt;br /&gt;
 ------------+--------------&lt;br /&gt;
   &amp;quot;LC 1&amp;quot;    |  &amp;quot;Laçage&amp;quot;&lt;br /&gt;
   &amp;quot;TC 1&amp;quot;    |  &amp;quot;Trou de centrage&amp;quot;&lt;br /&gt;
   &amp;quot;GF 6&amp;quot;    |  &amp;quot;braquettes&amp;quot;  &lt;br /&gt;
   &amp;quot;GF 4&amp;quot;    |  &amp;quot;stum&amp;quot;                                                                                                      &lt;br /&gt;
   &amp;quot;GF 30&amp;quot;   |  &amp;quot;guimpes&amp;quot;                                                                                                    &lt;br /&gt;
   &amp;quot;TC 1&amp;quot;    |  &amp;quot;Trou de centrage&amp;quot;                                                                                            &lt;br /&gt;
   &amp;quot;LC 1&amp;quot;    |  &amp;quot;Laçage&amp;quot;                                                                                                       &lt;br /&gt;
   &amp;quot;GF 26&amp;quot;   |  &amp;quot;guimpes&amp;quot;                                                                                                &lt;br /&gt;
   &amp;quot;GF 4&amp;quot;    |  &amp;quot;stum&amp;quot;                                                                                                   &lt;br /&gt;
   &amp;quot;GF 6&amp;quot;    |  &amp;quot;braquettes&amp;quot;                                                                                               &lt;br /&gt;
   &amp;quot;GF 3&amp;quot;    |  &amp;quot;brodeus&amp;quot;                                                                                                  &lt;br /&gt;
   &amp;quot;TC 1&amp;quot;    |  &amp;quot;Trou de centrage&amp;quot;                                                                                         &lt;br /&gt;
   &amp;quot;LC 1&amp;quot;    |  &amp;quot;Laçage&amp;quot;                                                                                                      &lt;br /&gt;
   &amp;quot;GF 39&amp;quot;   |  &amp;quot;brodeus&amp;quot;                                                                                                 &lt;br /&gt;
   &amp;quot;TC 1&amp;quot;    |  &amp;quot;Trou de centrage&amp;quot;                                                                                           &lt;br /&gt;
   &amp;quot;LC 1&amp;quot;    |  &amp;quot;Laçage&amp;quot;                                                                                                    &lt;br /&gt;
                                                                                                                           &lt;br /&gt;
&amp;lt;div style=&amp;quot;font-size:7pt;color:blue;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;                                                                                                                          &lt;br /&gt;
  L T                GF39                   L T G   GF6  GF4          GF26            L T               GF30           GF4  GF6  T L&lt;br /&gt;
  C C _____________________________________ C C F  ____  __  ________________________ C C ____________________________  __  ____ C C&lt;br /&gt;
  1 1/                                     \1 1/3\/    \/  \/                        \1 1/                            \/  \/    \1 1&lt;br /&gt;
/------------------------------------------------------------------------------------------------------------------------------------\&lt;br /&gt;
|    OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO.  OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO.  OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO    |&lt;br /&gt;
| O  .O.O.O.OOOOOOO.OOO.OOOOOO.O.O.OOOOOOOOOO  OOOOOOOOOOO..O..OO...O.OO.....O..O..OOOO  OO...O...OOO.OOOOO...O.....O..OO..OOOOOO  O |&lt;br /&gt;
|    OOOOO.OO.O...OOO..O..OO.OO.OOOO.O..OO.O.  OOOOOO...OOOO.O.OOOO..O.OO.OOO..O.O.O...  ..OOO.OO..O.OO....O.O..O.OOOOOOOOOOOO...    |&lt;br /&gt;
|  ().OO.OO...OOOOOOOO.OO...O.OOOO..OO....O..()O..OOOOOOOOOOO.O....OO..O..OOO..OO.O.O..()OO.....OOO...OO..OO.O.OOO.OO.OOOOOOOOOOO()  |&lt;br /&gt;
|    ........................................  ...............OO..OO..O.......O........  ...........O...O...O.O...O...O..........    |&lt;br /&gt;
| O  .O....OO.O.O....O.O.OOO..O.O.OO.O..OOO.O  ..O...........OOO.OOO.OOOOOOO.OOO.OOO.OO  OOOOOOOOOOOOOOOOOOOO.OOOOOOOOO..........  O |&lt;br /&gt;
|    O.OOOOOOO.O.OOOO.O.OOOOOO.O.OOOO.OO.OOO.  OOO..........OOOOOOOOOOOOOOOOOOOOOOOOOO.  OOOOOOOOOOOOOOOOOOOOOOOOOOOOOO..........    |&lt;br /&gt;
\------------------------------------------------------------------------------------------------------------------------------------/    &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:91--&amp;gt;&lt;br /&gt;
*CGF2Card int32&lt;br /&gt;
ha de estar a 0.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:92--&amp;gt;&lt;br /&gt;
*CGF2Type int32&lt;br /&gt;
Número de columnas útiles en el cartón.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:93--&amp;gt;&lt;br /&gt;
*CGF2Taille int32&lt;br /&gt;
Número de columnas totales que caben del cartón.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:94--&amp;gt;&lt;br /&gt;
*CGF2Numlines int32&lt;br /&gt;
numero de entradas de las que consta la especificación del cartón.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:95--&amp;gt;&lt;br /&gt;
*CGF2Script string(CGF2Numlines)&lt;br /&gt;
Especificación del cartón. Formateado igual que CGF1Script.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:96--&amp;gt;&lt;br /&gt;
*CGF2Descrip string(CGF2Numlines)&lt;br /&gt;
Descripción de cada entada del cartón.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:97--&amp;gt;&lt;br /&gt;
*CFBCard int32&lt;br /&gt;
ha de estar a 1.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:98--&amp;gt;&lt;br /&gt;
*CFBType int32&lt;br /&gt;
Número de columnas útiles en el cartón.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:99--&amp;gt;&lt;br /&gt;
*CFBTaille int32&lt;br /&gt;
Número de columnas totales que caben del cartón multiplicadas por 8.Ex:&lt;br /&gt;
si el cartón tiene 75 columnas CFBTaille=75*8=600&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:100--&amp;gt;&lt;br /&gt;
*CFBNumlines int32&lt;br /&gt;
numero de entradas de las que consta la especificación del cartón.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:101--&amp;gt;&lt;br /&gt;
*CFBScript string(CFBNumlines)&lt;br /&gt;
Especificación del cartón. Formateado igual que CGF1Script. Excepto que los tipos aceptados&lt;br /&gt;
son:&lt;br /&gt;
   LC: Laçage&lt;br /&gt;
   TC: Trou de centrage&lt;br /&gt;
   TS: Trou de centrage simple&lt;br /&gt;
   EL: Element vide&lt;br /&gt;
   FB: Fine barre&lt;br /&gt;
   VB: Value&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:102--&amp;gt;&lt;br /&gt;
Es decir el tipo &amp;quot;GF&amp;quot; no existe para este tag y en su lugar hay el tipo &amp;quot;FB&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:103--&amp;gt;&lt;br /&gt;
*CFBDescrip string(CFBNumlines)&lt;br /&gt;
Descripción de cada entada del cartón.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:104--&amp;gt;&lt;br /&gt;
*CFBNGaits int32&lt;br /&gt;
Número de entradas para mapear las repeticiones de agujas de Fine Barre a los cartones en función de la repetición.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:105--&amp;gt;&lt;br /&gt;
*CFBGaitNRepeat int32(CFBNGaits)&lt;br /&gt;
Número de repetición a mapear&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:106--&amp;gt;&lt;br /&gt;
*CFBGaitNBar int32(CFBNGaits)&lt;br /&gt;
Número de aguja a mapear&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:107--&amp;gt;&lt;br /&gt;
*CFBGaitNGait int32(CFBNGaits)&lt;br /&gt;
Indice de agujero en el cartón&lt;br /&gt;
&lt;br /&gt;
==== TAGS DRAFT DATA ==== &amp;lt;!--T:109--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:110--&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:111--&amp;gt;&lt;br /&gt;
*NumCourses int32&lt;br /&gt;
Numero de pasadas del dibujo sin tener en cuenta las repeticiones.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:112--&amp;gt;&lt;br /&gt;
*BarNeedle int16(NumCourses*NumBars)&lt;br /&gt;
Despazamientos medidos en agujas de las barras en cada pasada. Ordenados de la siguiente manera:&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;!--T:113--&amp;gt;&lt;br /&gt;
BarNeedle(0)              Desplazamiento barra 1 en la primera pasada.&lt;br /&gt;
   BarNeedle(1)              Desplazamiento barra 1 en la segunda pasada.&lt;br /&gt;
   .&lt;br /&gt;
   .&lt;br /&gt;
   BarNeedle(NumCourses-1)   Desplazamiento barra 1 en la última pasada.&lt;br /&gt;
   BarNeedle(NumCourses)     Desplazamiento barra 2 en la primera pasada.&lt;br /&gt;
   .&lt;br /&gt;
   .&lt;br /&gt;
   BarNeedel(NumCourses*2-1) Desplazamiento barra 2 en la última pasada.&lt;br /&gt;
   BarNeedle(NumCourses)     Desplazamiento barra 3 en la primera pasada.&lt;br /&gt;
   .&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:114--&amp;gt;&lt;br /&gt;
*BarNeedleB int16(NumCourses*NumBars)&lt;br /&gt;
Solo se utiliza en maquinas de doble frontura. Es equivalente a BarNeedle pero contiene la información&lt;br /&gt;
para la segunda frontura.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:115--&amp;gt;&lt;br /&gt;
*BarHalves byte(NumCourses*NumBars)&lt;br /&gt;
Incremento de 1/2 aguja en el movimiento de la barra introducido manualmente por el diseñador desde el menú de Bareme&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:116--&amp;gt;&lt;br /&gt;
*BarKnitting byte(NumCourses*NumBars)&lt;br /&gt;
Indica en las maquinas que hacen 2 movimientos por pasada que movimiento se realiza&lt;br /&gt;
Valores:&lt;br /&gt;
 0 : Movimiento 0 0 . No liga&lt;br /&gt;
 1 : Movimeinto 0 1 . Liga&lt;br /&gt;
 2 : Movimeinto 1 0 . Liga&lt;br /&gt;
 3 : Movimeinto 1 1 . No liga&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:117--&amp;gt;&lt;br /&gt;
*BarKnittingB byte(NumCourses*NumBars)&lt;br /&gt;
Solo se utiliza en maquinas de doble frontura. Es equivalente a BarKnitting pero contiene la información&lt;br /&gt;
para la segunda frontura.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:118--&amp;gt;&lt;br /&gt;
*Layout_JacqData byte(NumCourses*JacqNeedles*Jacquard)&lt;br /&gt;
Cada byte guarda un bit de Jacquard. Valores:&lt;br /&gt;
0: T&lt;br /&gt;
1: H&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:119--&amp;gt;&lt;br /&gt;
*Layout_FrontureData byte(NumCourses*JacqNeedles*Jacquard)&lt;br /&gt;
Solo se utiliza en maquinas de doble frontura. Es equivalente a Layout_JacqData pero contiene la información&lt;br /&gt;
para la segunda frontura.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:120--&amp;gt;&lt;br /&gt;
*Layout_WBData byte(NumCourses*JacqNeedles*Jacquard)&lt;br /&gt;
Solo se utiliza en maquinas CLIPTRONIC . Contiene los datos para la barra de Embrodery(WB) en el mismo formato que&lt;br /&gt;
Layout_JacqData.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:121--&amp;gt;&lt;br /&gt;
*LayoutCourNRepeats int32&lt;br /&gt;
Numero de repeticiones de pasadas. Las repeticiones de pasadas afectan por igual las barras de dibujo y el jacquard.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:122--&amp;gt;&lt;br /&gt;
*LayoutCourNLayouts int32&lt;br /&gt;
Numero de bloques de pasadas a repetir&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:123--&amp;gt;&lt;br /&gt;
*LayoutCourRepeat int32(LayoutCourNLayouts)&lt;br /&gt;
Numero de pasadas que contiene cada bloque a repetir&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:124--&amp;gt;&lt;br /&gt;
*LayoutCourWhich int32(LayoutCourNRepeats)&lt;br /&gt;
indice del bloque que a repetir&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:125--&amp;gt;&lt;br /&gt;
*LayoutCourTimes int32(LayoutCourNRepeats)&lt;br /&gt;
numero de veces que se ha de repetir el bloque. Ejemplo:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:126--&amp;gt;&lt;br /&gt;
Normalmente como los dibujos suelen ser bastante repetitivos, para ahorrar trabajo y memoria no se guardan todas las pasadas&lt;br /&gt;
del dibujo. En un dibujo como el siguiente :&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;!--T:127--&amp;gt;&lt;br /&gt;
+------------------------------------------------------------------------------------------+&lt;br /&gt;
    |  ,~.~._,~.~._,~.~._,~.~._,~.~._,~.~._,~.~.    ,~.~._,~.~._,~.~._,~.~._,~.~._,~.~._,~.~.  | &lt;br /&gt;
    | / O.O   O.O   O.O   O.O   O.O   O.O   O.O \  / O.O   O.O   O.O   O.O   O.O   O.O   O.O \ | &lt;br /&gt;
    |( O:@:O O:@:O O:@:O O:@:O O:@:O O:@:O O:@:O )( O:@:O O:@:O O:@:O O:@:O O:@:O O:@:O O:@:O )| &lt;br /&gt;
    | \ O&#039;O   O&#039;O   O&#039;O   O&#039;O   O&#039;O   O&#039;O   O&#039;O /  \ O&#039;O   O&#039;O   O&#039;O   O&#039;O   O&#039;O   O&#039;O   O&#039;O / | &lt;br /&gt;
    |  )   . ,   . ,   . ,   . ,   . ,   . ,   (    )   . ,   . ,   . ,   . ,   . ,   . ,   (  | &lt;br /&gt;
/\  | (  * -@- * -@- * -@- * -@- * -@- * -@- *  )  (  * -@- * -@- * -@- * -@- * -@- * -@- *  ) | &lt;br /&gt;
 A  |  )   &#039; `   &#039; `   &#039; `   &#039; `   &#039; `   &#039; `   (    )   &#039; `   &#039; `   &#039; `   &#039; `   &#039; `   &#039; `   (  | &lt;br /&gt;
 g  | / O.O   O.O   O.O   O.O   O.O   O.O   O.O \  / O.O   O.O   O.O   O.O   O.O   O.O   O.O \ | &lt;br /&gt;
 u  |( O:@:O O:@:O O:@:O O:@:O O:@:O O:@:O O:@:O )( O:@:O O:@:O O:@:O O:@:O O:@:O O:@:O O:@:O )| &lt;br /&gt;
 j  | \ O&#039;O   O&#039;O   O&#039;O   O&#039;O   O&#039;O   O&#039;O   O&#039;O /  \ O&#039;O   O&#039;O   O&#039;O   O&#039;O   O&#039;O   O&#039;O   O&#039;O / | &lt;br /&gt;
 a  |  ·~·~·^·~·~·^·~·~·^·~·~·^·~·~·^·~·~·^·~·~·    ·~·~·^·~·~·^·~·~·^·~·~·^·~·~·^·~·~·^·~·~·  | &lt;br /&gt;
 s  +------------------------------------------------------------------------------------------+&lt;br /&gt;
     Pasadas &amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:128--&amp;gt;&lt;br /&gt;
Si se mira lo que hay guardado en el archivo se encontraría algo similar a :&lt;br /&gt;
                     &lt;br /&gt;
    +---------------+&lt;br /&gt;
    |  ,~.~._,~.~.  |&lt;br /&gt;
    | / O.O   O.O \ |&lt;br /&gt;
    |( O:@:O O:@:O )|&lt;br /&gt;
    | \ O&#039;O   O&#039;O / |&lt;br /&gt;
    |  )   . ,   (  |&lt;br /&gt;
/\  | (  * -@- *  ) | &lt;br /&gt;
 A  |  )   &#039; `   (  |&lt;br /&gt;
 g  | / O.O   O.O \ |&lt;br /&gt;
 u  |( O:@:O O:@:O )|&lt;br /&gt;
 j  | \ O&#039;O   O&#039;O / |&lt;br /&gt;
 a  |  ·~·~·^·~·~·  |&lt;br /&gt;
 s  +---------------+&lt;br /&gt;
     Pasadas &amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:129--&amp;gt;&lt;br /&gt;
Esto pasa por que se ha guardado solo una vez cada bloque que se repite. En este caso los bloques que se han usado:&lt;br /&gt;
&lt;br /&gt;
     &amp;lt;!--T:130--&amp;gt;&lt;br /&gt;
A      B        C&lt;br /&gt;
  +----+ +------+ +-----+&lt;br /&gt;
  |  ,~| |.~._,~| |.~.  | &lt;br /&gt;
  | / O| |.O   O| |.O \ | &lt;br /&gt;
  |( O:| |@:O O:| |@:O )| &lt;br /&gt;
  | \ O| |&#039;O   O| |&#039;O / | &lt;br /&gt;
  |  ) | |  . , | |  (  | &lt;br /&gt;
  | (  | |* -@- | |*  ) |&lt;br /&gt;
  |  ) | |  &#039; ` | |  (  | &lt;br /&gt;
  | / O| |.O   O| |.O \ | &lt;br /&gt;
  |( O:| |@:O O:| |@:O )|&lt;br /&gt;
  | \ O| |&#039;O   O| |&#039;O / |  &lt;br /&gt;
  |  ·~| |·~·^·~| |·~·  | &lt;br /&gt;
  +----+ +------+ +-----+&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:131--&amp;gt;&lt;br /&gt;
Se puede ver con facilidad que la sequencia de bloques para obtener el dibujo es: A B B B B B B C A B B B B B B C&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:132--&amp;gt;&lt;br /&gt;
LayoutCourNLayouts=3 pues hay tres bloques distintos ( A , B , C )&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:133--&amp;gt;&lt;br /&gt;
LayoutCourRepeat=Array(&lt;br /&gt;
   numero de pasadas de A,&lt;br /&gt;
   numero de pasadas de B,&lt;br /&gt;
   numero de pasadas de C&lt;br /&gt;
)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:134--&amp;gt;&lt;br /&gt;
NOTA: El número total de pasadas ha de ser igual a la suma de pasadas de los bloques de repeticiones. Es decir:&lt;br /&gt;
NumCourses=LayoutCourRepeat(0)+...+LayoutCourRepeat(LayoutCourNLayouts-1)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:135--&amp;gt;&lt;br /&gt;
Luego para codificar que se desea 1 repetición de A, 6 repeticiones de B y una repeticion de C se haria de la siguiente manera:&lt;br /&gt;
&lt;br /&gt;
                         &amp;lt;!--T:136--&amp;gt;&lt;br /&gt;
idx  |  LayoutCourWhich | LayoutCourTimes | Significado&lt;br /&gt;
                      --------+------------------+-----------------+------------------&lt;br /&gt;
                        _     |                  |                 |&lt;br /&gt;
                       /  0   |         1        |       1         | Bloque 1 (A) repetir una vez&lt;br /&gt;
                       |      |                  |                 |&lt;br /&gt;
                       |  1   |         2        |       6         | Bloque 2 (B) repetir 6 veces&lt;br /&gt;
                       |      |                  |                 |&lt;br /&gt;
                       |  2   |         3        |       1         | Bloque 3 (C) repetir una vez&lt;br /&gt;
LayoutCourNRepeats=6  &amp;lt;       |                  |                 |&lt;br /&gt;
                       |  3   |         1        |       1         | Bloque 1 (A) repetir una vez&lt;br /&gt;
                       |      |                  |                 |&lt;br /&gt;
                       |  4   |         2        |       6         | Bloque 2 (B) repetir 6 veces&lt;br /&gt;
                       |      |                  |                 |&lt;br /&gt;
                       \_ 5   |         3        |       1         | Bloque 3 (C) repetir una vez&lt;br /&gt;
                              |                  |                 |&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:137--&amp;gt;&lt;br /&gt;
*LayoutJacqNRepeats int32&lt;br /&gt;
Numero de repeticiones de agujas. Solo afecta el jacquard. Sigue el mismo sistema que las repeticiones de pasadas.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:138--&amp;gt;&lt;br /&gt;
*LayoutJacqNLayouts int32&lt;br /&gt;
Numero de bloques de agujas a repetir&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:139--&amp;gt;&lt;br /&gt;
*LayoutJacqRepeat int32(LayoutJacqNLayouts)&lt;br /&gt;
Numero de agujas que contiene cada bloque a repetir&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:140--&amp;gt;&lt;br /&gt;
*LayoutJacqWhich int32(LayoutJacqNRepeats)&lt;br /&gt;
indice del bloque que a repetir&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:141--&amp;gt;&lt;br /&gt;
*LayoutJacqTimes int32(LayoutJacqNRepeats)&lt;br /&gt;
numero de veces que se ha de repetir el bloque.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:142--&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;/div&gt;</summary>
		<author><name>Pascual</name></author>
	</entry>
	<entry>
		<id>https://wiki.cadt.com/index.php?title=Drf-reader&amp;diff=3160</id>
		<title>Drf-reader</title>
		<link rel="alternate" type="text/html" href="https://wiki.cadt.com/index.php?title=Drf-reader&amp;diff=3160"/>
		<updated>2016-10-05T17:20:37Z</updated>

		<summary type="html">&lt;p&gt;Pascual: /* TAGS */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;languages/&amp;gt;&lt;br /&gt;
[[Category:SAPO]]&lt;br /&gt;
[[Category:Devel]]&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== DLL_EXPORTS === &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;void drf_clear_errors()&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Descr:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:1--&amp;gt;&lt;br /&gt;
Borra todos los mensajes de error producidos por la librería.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;int drf_get_num_errors()&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Descr:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:2--&amp;gt;&lt;br /&gt;
Obtiene el número de mensajes de error producidos por la librería.&lt;br /&gt;
&lt;br /&gt;
Return:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:3--&amp;gt;&lt;br /&gt;
Número de mensajes almacenados.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;const char* drf_get_error(int idx)&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Descr:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:4--&amp;gt;&lt;br /&gt;
Obtiene el mensaje de error indicado por idx (referenciado a 0).&lt;br /&gt;
&lt;br /&gt;
Params:&lt;br /&gt;
&lt;br /&gt;
idx:&lt;br /&gt;
&amp;lt;!--T:5--&amp;gt;&lt;br /&gt;
Número de mensaje a obtener. Rango entre: 0 y (drf_get_num_errors()-1) ambos incluidos.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:6--&amp;gt;&lt;br /&gt;
Return:&lt;br /&gt;
&lt;br /&gt;
Éxito: Puntero a una cadena de caracteres ASCII terminada por el byte NUL (&#039;\0&#039;)&lt;br /&gt;
&lt;br /&gt;
Error: NULL en caso que el valor de idx esté fuera de rango.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;int drf_to_json(char *path,FILE *json,int options)&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Descr:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:7--&amp;gt;&lt;br /&gt;
Serializa a JSON un archivo en formato DRF.&lt;br /&gt;
&lt;br /&gt;
Params:&lt;br /&gt;
&lt;br /&gt;
path:&lt;br /&gt;
Ruta al fichero DRF a serializar en formato Windows ANSI.&lt;br /&gt;
&lt;br /&gt;
json:&lt;br /&gt;
puntero FILE ya abierto y con la escritura habilitada.&lt;br /&gt;
&lt;br /&gt;
options:&lt;br /&gt;
&amp;lt;!--T:8--&amp;gt;&lt;br /&gt;
Selecciona que información se serializará. Valores possibles:&lt;br /&gt;
&lt;br /&gt;
   DRF_GET_GENERIC_INFO&lt;br /&gt;
   DRF_GET_MACHINE_INFO&lt;br /&gt;
   DRF_GET_DRAFT_INFO&lt;br /&gt;
   DRF_GET_ALL_INFO&lt;br /&gt;
&lt;br /&gt;
o una combinación de los valores anteriores (OR)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:9--&amp;gt;&lt;br /&gt;
Return:&lt;br /&gt;
&lt;br /&gt;
Éxito : retorna valor igual a 0&lt;br /&gt;
&lt;br /&gt;
Error : retorna valor diferente de 0&lt;br /&gt;
&lt;br /&gt;
=== TAGS ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:11--&amp;gt;&lt;br /&gt;
Codificación a JSON de los datos:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:12--&amp;gt;&lt;br /&gt;
Internamente el DRF guarda la información como una lista de tags. Cada tag puede contener uno o varios elementos del mismo tipo.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:13--&amp;gt;&lt;br /&gt;
Al codificar un DRF a JSON se codifica como un objeto donde se usa el nombre del tag como clave y el contenido de éste como valor.&lt;br /&gt;
En caso que el tag pueda contener más de un valor, la librería serializa el contenido como un vector.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:14--&amp;gt;&lt;br /&gt;
Como el formato DRF soporta más tipos que el JSON, la librería los convertirá a un tipo soportado por el JSON. La siguiente tabla muestra a que &lt;br /&gt;
tipo del JSON se convierte cada tipo del DRF &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    DRF  | JSON   &lt;br /&gt;
  -------+--------&lt;br /&gt;
  byte   | &lt;br /&gt;
  int16  | int&lt;br /&gt;
  int32  |&lt;br /&gt;
  -------+-------&lt;br /&gt;
  float  | float&lt;br /&gt;
  -------+-------&lt;br /&gt;
  string | string *&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:16--&amp;gt;&lt;br /&gt;
*) Todos los strings contienen sólo caracteres ASCII (encoding:ASCII-7)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== TAGS GENERIC INFO ==== &amp;lt;!--T:17--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:18--&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:19--&amp;gt;&lt;br /&gt;
*Software string&lt;br /&gt;
Nombre del programa que ha generado el fichero .DRF&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:20--&amp;gt;&lt;br /&gt;
*DrawName string&lt;br /&gt;
Referencia del dibujo (max. 256 carac).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:21--&amp;gt;&lt;br /&gt;
*Company string&lt;br /&gt;
Compañía que ha creado el dibujo (max. 30 carac).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:22--&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== TAGS MACHINE INFO ==== &amp;lt;!--T:23--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:25--&amp;gt;&lt;br /&gt;
*Machine string&lt;br /&gt;
Referencia de la máquina. (max. 30 carac) &lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:26--&amp;gt;&lt;br /&gt;
*MachineType string&lt;br /&gt;
Modelo de la máquina. Sólo es válido un modelo definido en el sistema de diseño. (p.e. LEAVERS)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:27--&amp;gt;&lt;br /&gt;
*Description string&lt;br /&gt;
Descripción o información adicional de la máquina.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:28--&amp;gt;&lt;br /&gt;
*Serial string&lt;br /&gt;
Num. serie de la máquina. (max. 30 carac) . Puede contener carácteres no numéricos.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:29--&amp;gt;&lt;br /&gt;
*Version int32 [RASCHEL SU]&lt;br /&gt;
Versión de la máquina raschel SU (versión 1 .. 4).&lt;br /&gt;
   versión 1 . Sin ahorrador de memoria&lt;br /&gt;
   versión 2 . Con ahorrador de memoria (repeticiones)&lt;br /&gt;
   versión 3 . Sin ahorrador de memoria + información empresa.&lt;br /&gt;
   versión 4 . Con ahorrador de memoria (repeciciones) + información empresa.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:30--&amp;gt;&lt;br /&gt;
*Jacquard int32&lt;br /&gt;
Número de barras de Jacquard independientes. Valores posibles: &lt;br /&gt;
   0 : No jacquard&lt;br /&gt;
   1 : 1 jacquard o fina barra simple&lt;br /&gt;
   2 : 2 jacquard raschel o fina barra doble.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:31--&amp;gt;&lt;br /&gt;
*Fronture int32 [RASCHEL DOUBLE NEEDLE BAR]&lt;br /&gt;
Número de fonturas de la máquina&lt;br /&gt;
   1 : 1 fontura&lt;br /&gt;
   2 : 2 fontures (delante / detrás)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:32--&amp;gt;&lt;br /&gt;
*BarsRepeat int32&lt;br /&gt;
Altura del diseño.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:33--&amp;gt;&lt;br /&gt;
*NumRepeats int32&lt;br /&gt;
Num de repeticiones en el diseño.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:34--&amp;gt;&lt;br /&gt;
*NumBars int32&lt;br /&gt;
Numero de barras que tiene el telar.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:35--&amp;gt;&lt;br /&gt;
*Plate int32&lt;br /&gt;
En máquinas raschel (textronic), indica la posición de la plancha.&lt;br /&gt;
En máquinas leavers indica donde empiezan los brodeurs.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:36--&amp;gt;&lt;br /&gt;
*JacqNeedles int32&lt;br /&gt;
Numero de agujas de Jacquard del telar.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:37--&amp;gt;&lt;br /&gt;
*MachNeedles int32&lt;br /&gt;
Numero total de agujas del telar.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:38--&amp;gt;&lt;br /&gt;
*BarsOffset int32&lt;br /&gt;
Desplazamiento de barras (orillos=zona perdida)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:39--&amp;gt;&lt;br /&gt;
*JacqOffset int32&lt;br /&gt;
Deplazamiento de las agujas de jacquard en el telar.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:40--&amp;gt;&lt;br /&gt;
*MaxDisp int32 [RASCHEL SU]&lt;br /&gt;
Deplazamiento máximo general de las barras para máquinas raschel SU.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:41--&amp;gt;&lt;br /&gt;
*Proximity int32&lt;br /&gt;
Para máquinas raschel, distáncia máxima a la que se pueden acercar dos barras del mismo grupo.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:42--&amp;gt;&lt;br /&gt;
*ProximityCollindant int32&lt;br /&gt;
Para máquinas raschel, distáncia máxima a la que se pueden acercar dos barras del mismo grupo colindantes.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:43--&amp;gt;&lt;br /&gt;
*JacqRt int32&lt;br /&gt;
Deplazamiento Rt del jacquard:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:44--&amp;gt;&lt;br /&gt;
para máquinas raschel:&lt;br /&gt;
   no jacquard: rt = 0&lt;br /&gt;
   jacquard simple o doble: rt = 1&lt;br /&gt;
Indica cuántas agujas se desplaza la lectura del jacaquard en las pasadas alternadas.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:45--&amp;gt;&lt;br /&gt;
para máquinas leavers&lt;br /&gt;
   no fina barra:      0&lt;br /&gt;
   fina barra simple: -1&lt;br /&gt;
   fina barra doble:   0&lt;br /&gt;
Indica cuántas agujas se desplaza la lectura del jacquard (desde la posición derecha de la máquina en las pasadas alternadas).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:46--&amp;gt;&lt;br /&gt;
*JacqRtCourse int32&lt;br /&gt;
Indica que pasadas se aplica el valor JacqRt.&lt;br /&gt;
   0:pasadas pares&lt;br /&gt;
   1: pasadas impares&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:47--&amp;gt;&lt;br /&gt;
*FinalGauge float&lt;br /&gt;
Galga de producto tejido aplicando encongimiento (medida en agujas/pulgada)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:48--&amp;gt;&lt;br /&gt;
*FinalQuality float&lt;br /&gt;
Calidad de producto tejido aplicando elasticidad (medida en pasadas/centímetro).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:49--&amp;gt;&lt;br /&gt;
*RealGauge float&lt;br /&gt;
Galga de máquina (medida en agujas/pulgada)-&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:50--&amp;gt;&lt;br /&gt;
*RealQuality float&lt;br /&gt;
Calidad de máquina (medida en pasadas/centímetro).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:51--&amp;gt;&lt;br /&gt;
*Shrinkage float&lt;br /&gt;
Porcentage de encongimiento en agujas (0-100%)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:52--&amp;gt;&lt;br /&gt;
*Elasticity float&lt;br /&gt;
Porcentage de elasticidad en pasadas (0-100%)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:53--&amp;gt;&lt;br /&gt;
*BarNumBar int32(NumBars)&lt;br /&gt;
Numero de cada una de las barras del telar (valor numérico consecutivo)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:54--&amp;gt;&lt;br /&gt;
*BarName string(NumBars)&lt;br /&gt;
Nombre o identificador de cada una de las barras del telar&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:55--&amp;gt;&lt;br /&gt;
*BarGroup int32(NumBars)&lt;br /&gt;
En máquinas raschel el número de grupo de la barra.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:56--&amp;gt;&lt;br /&gt;
*BarStop int32(NumBars)&lt;br /&gt;
Posición 0 de la barra.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:57--&amp;gt;&lt;br /&gt;
*BarUtil int32(NumBars)&lt;br /&gt;
Visibilidad de la barra en el sistema de diseño.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:58--&amp;gt;&lt;br /&gt;
*BarType int32(NumBars)&lt;br /&gt;
Tipo de hilo por defecto de la barra.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:59--&amp;gt;&lt;br /&gt;
*BarMaxGimp int32&lt;br /&gt;
Guimpada máxima en agujas de la barra.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:60--&amp;gt;&lt;br /&gt;
*BarDrive int32&lt;br /&gt;
En máquinas raschel SU, el número de getribe de la barra.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:61--&amp;gt;&lt;br /&gt;
*BarFactor int32&lt;br /&gt;
En máquinas raschel SU, multiplicador de la barra.&lt;br /&gt;
1: factor de 1 agulla&lt;br /&gt;
2: factor de 2 agulles,&lt;br /&gt;
4: factor de 4 agulles.&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:62--&amp;gt;&lt;br /&gt;
*BarInvert int32&lt;br /&gt;
En máquinas raschel SU, les barres invertides. &lt;br /&gt;
1: barra invertida.&lt;br /&gt;
0: barra no invertida.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:63--&amp;gt;&lt;br /&gt;
*BarWork int32&lt;br /&gt;
Trabajo de la barra en el sistema de diseño.&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;!--T:64--&amp;gt;&lt;br /&gt;
0: Chainette&lt;br /&gt;
   1: Jacquard     [1]&lt;br /&gt;
   2: Brodeur&lt;br /&gt;
   3: Gros&lt;br /&gt;
   4: Fin&lt;br /&gt;
   5: Brillant&lt;br /&gt;
   6: Picot&lt;br /&gt;
   7: Corde&lt;br /&gt;
   8: Lycra&lt;br /&gt;
   9: Fond&lt;br /&gt;
  10: Bloc&lt;br /&gt;
  11: Cord&lt;br /&gt;
  12: Guimp&lt;br /&gt;
  13: Nul&lt;br /&gt;
  14: Jacq 0/2,6/4 [1]&lt;br /&gt;
  15: Jacq 0/2,8/6 [1]&lt;br /&gt;
  16: Fine Bar.  [sup]&lt;br /&gt;
  17: Braquette&amp;quot;&lt;br /&gt;
  18: Jacquard     [2]&lt;br /&gt;
  19: Jacq 0/2,6/4 [2]&lt;br /&gt;
  20: Jacq 0/2,8/6 [2]&lt;br /&gt;
  21: Fine Bar.  [inf]&lt;br /&gt;
  22: Jacquard&lt;br /&gt;
  23: Fine Barre&lt;br /&gt;
  24: Fallplate&lt;br /&gt;
  25: Embrodery&lt;br /&gt;
  26: EFS&lt;br /&gt;
  27: Reservé 1&lt;br /&gt;
  28: Reservé 2&lt;br /&gt;
  29: Jacq 0/2,6/4&lt;br /&gt;
  30: Jacq 0/2,8/6&lt;br /&gt;
  31: Bord&lt;br /&gt;
  32: Lisieres&lt;br /&gt;
  33: Romaines&lt;br /&gt;
  34: Sonnette&lt;br /&gt;
  35: Guimp devant&lt;br /&gt;
  36: Petite Corde&lt;br /&gt;
  37: Fileur&lt;br /&gt;
  38: Separation&lt;br /&gt;
  39: Corde Termo&lt;br /&gt;
  40: Solv rom&lt;br /&gt;
  41: Vis&lt;br /&gt;
  42: Jacquard     [3]&lt;br /&gt;
  43: Jacquard     [4]&lt;br /&gt;
  44: Space Fabric&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:65--&amp;gt;&lt;br /&gt;
*BarKnit&lt;br /&gt;
En máquines raschel textronic tipous de lligada:&lt;br /&gt;
  0 : no planxa&lt;br /&gt;
  1 : lligada 1 (mecanica)&lt;br /&gt;
  2 : lligada 2 (binaria)&lt;br /&gt;
  3 : lligada 3 (mecánica (2))&lt;br /&gt;
  4 : lligada 4 (binària (2))&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:66--&amp;gt;&lt;br /&gt;
*BarTimes&lt;br /&gt;
En máquines raschel textonic temps de la lligada&lt;br /&gt;
  0 : no planxa&lt;br /&gt;
  2 : temps 2 (p.e) 0202 0202 0202&lt;br /&gt;
  4 : temps 4 (p.e) 0220 0220 0220&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:67--&amp;gt;&lt;br /&gt;
*BarMode&lt;br /&gt;
En máquines raschel textronic el mode la la barra:&lt;br /&gt;
  0 : mode A (p.e 0220)&lt;br /&gt;
  1 : mode B (p.e 2002)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:68--&amp;gt;&lt;br /&gt;
*BarModif int32&lt;br /&gt;
En máquines raschel textronic indica que la barra no es pot deslligar&lt;br /&gt;
  0 : no es pot deslligar&lt;br /&gt;
  1 : si es pot deslligar&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:69--&amp;gt;&lt;br /&gt;
*BarTension int32&lt;br /&gt;
Tensió de la barra a les simulacions.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:70--&amp;gt;&lt;br /&gt;
*BarNumFingers int32(NumBars)&lt;br /&gt;
Número de pasadors de la barra&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:71--&amp;gt;&lt;br /&gt;
*BarModeDrop int32(NumBars)&lt;br /&gt;
Ponderación de cada uno de los 7 bits que se usan para indicar el desplazamiento de la barra. Valores:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;!--T:72--&amp;gt;&lt;br /&gt;
Valor | B7 | B6 | B5 | B4 | B3 | B2 | B1&lt;br /&gt;
 ------+----+----+----+----+----+----+----&lt;br /&gt;
    0  |  8 |  8 |  8 |  4 |  2 |  1 |1/2&lt;br /&gt;
 ------+----+----+----+----+----+----+----&lt;br /&gt;
    1  | 16 |  8 |  8 |  4 |  2 |  1 |1/2&lt;br /&gt;
 ------+----+----+----+----+----+----+----&lt;br /&gt;
    2  | 16 | 16 |  8 |  4 |  2 |  1 |1/2&lt;br /&gt;
 ------+----+----+----+----+----+----+----&lt;br /&gt;
    3  | 32 | 16 |  8 |  4 |  2 |  1 |1/2&lt;br /&gt;
 ------+----+----+----+----+----+----+----&lt;br /&gt;
    4  |  8 |  8 |  8 |  8 |  4 |  2 | 1&lt;br /&gt;
 ------+----+----+----+----+----+----+----&lt;br /&gt;
    5  | 16 |  8 |  8 |  8 |  4 |  2 | 1&lt;br /&gt;
 ------+----+----+----+----+----+----+----&lt;br /&gt;
    6  |  4 |  4 |  4 |  4 |  2 |  1 | 1&lt;br /&gt;
 ------+----+----+----+----+----+----+----&lt;br /&gt;
    7  |  0 |  0 |  0 |  1 |  2 |  1 |1/2&lt;br /&gt;
 ------+----+----+----+----+----+----+----&lt;br /&gt;
    8  |  4 |  4 |  4 |  4 |  2 |  1 |1/2&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:73--&amp;gt;&lt;br /&gt;
*BarMaxDesp int32(NumBars)&lt;br /&gt;
Desplazamiento máximo de la barra en agujas&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:74--&amp;gt;&lt;br /&gt;
*BarActive byte(NumBars)&lt;br /&gt;
Sólo para maquinas EL. Indica si la barra esta en uso o no.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:75--&amp;gt;&lt;br /&gt;
*BarHalvesUp byte(NumBars)&lt;br /&gt;
Si en la pasada se incrementa la posición de la barra en BarHalvesUp agujas o más, entonces , se añade media aguja a la posición final.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:76--&amp;gt;&lt;br /&gt;
*BarHalvesDn byte(NumBars)&lt;br /&gt;
Si en la pasada se decrementa la posición de la barra en BarHalvesDwn agujas o más, entonces , se le resta media aguja a la posición final.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:77--&amp;gt;&lt;br /&gt;
*BarString int32(NumBars)&lt;br /&gt;
Valors:&lt;br /&gt;
0:&lt;br /&gt;
1:ple&lt;br /&gt;
2:1f 1x&lt;br /&gt;
3:1x 1f&lt;br /&gt;
4:buit&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:78--&amp;gt;&lt;br /&gt;
*BarFronture int32(NumBars)&lt;br /&gt;
Solo se usa en las máquinas de doble frontura. Da la frontura en la que empieza a trabajar la barra.Valores:&lt;br /&gt;
0: primera forntura&lt;br /&gt;
1: segunda frontura&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:79--&amp;gt;&lt;br /&gt;
*BarDropsUtil int32(7*NumBars)&lt;br /&gt;
indica como se deben perforar los 7 posiciones correspondientes a la barra:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:80--&amp;gt;&lt;br /&gt;
Valor:&lt;br /&gt;
0: Usado. Siempre a 1. Es decir: no perforar nunca&lt;br /&gt;
1: Usado, Se perforara o no en funcion del desplazamiento de la barra&lt;br /&gt;
2: Usado. Siemre a 0. Es decir, se perfora siempre&lt;br /&gt;
3: No usado. No se perfora&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:81--&amp;gt;&lt;br /&gt;
*FingerStop int32(num_fingers) num_fingers=BarNumFingers(0) + ... + BarNumFingers(NumBars-1)&lt;br /&gt;
Stop del pasador relativo al stop de la barra.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:82--&amp;gt;&lt;br /&gt;
*FingerType int32(num_fingers) num_fingers=BarNumFingers(0) + ... + BarNumFingers(NumBars-1)&lt;br /&gt;
Tipo de pasador.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:83--&amp;gt;&lt;br /&gt;
*CGF1Card int32&lt;br /&gt;
ha de estar a 0.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:84--&amp;gt;&lt;br /&gt;
*CGF1Type int32&lt;br /&gt;
Número de columnas útiles en el cartón.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:85--&amp;gt;&lt;br /&gt;
*CGF1Taille int32&lt;br /&gt;
Número de columnas totales que caben del cartón.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:86--&amp;gt;&lt;br /&gt;
*CGF1Numlines int32&lt;br /&gt;
numero de entradas de las que consta la especificación del cartón.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:87--&amp;gt;&lt;br /&gt;
*CGF1Script string(CGF1Numlines)&lt;br /&gt;
Lista de cadenas de caracteres que detallan como se ha de perforar  cada columna del cartón empezando por la columna de mas a la derecha.&lt;br /&gt;
Cada cadena de caracteres tiene el formato: &amp;lt;codigo de tipo&amp;gt; &amp;lt;espacio&amp;gt; &amp;lt;numero de repeticiones&amp;gt;. Ex: &amp;quot;LC 1&amp;quot;.&lt;br /&gt;
Los codigos de tipo validos son:&lt;br /&gt;
   LC: Laçage&lt;br /&gt;
   TC: Trou de centrage&lt;br /&gt;
   TS: Trou de centrage simple&lt;br /&gt;
   EL: Element vide&lt;br /&gt;
   GF: Gros fil&lt;br /&gt;
   VB: Value&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:88--&amp;gt;&lt;br /&gt;
*CGF1Descrip string(CGF1Numlines)&lt;br /&gt;
Descripción de cada entada del cartón.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:89--&amp;gt;&lt;br /&gt;
Ex:&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;!--T:90--&amp;gt;&lt;br /&gt;
CGF1Script | CGF1Descrip&lt;br /&gt;
 ------------+--------------&lt;br /&gt;
   &amp;quot;LC 1&amp;quot;    |  &amp;quot;Laçage&amp;quot;&lt;br /&gt;
   &amp;quot;TC 1&amp;quot;    |  &amp;quot;Trou de centrage&amp;quot;&lt;br /&gt;
   &amp;quot;GF 6&amp;quot;    |  &amp;quot;braquettes&amp;quot;  &lt;br /&gt;
   &amp;quot;GF 4&amp;quot;    |  &amp;quot;stum&amp;quot;                                                                                                      &lt;br /&gt;
   &amp;quot;GF 30&amp;quot;   |  &amp;quot;guimpes&amp;quot;                                                                                                    &lt;br /&gt;
   &amp;quot;TC 1&amp;quot;    |  &amp;quot;Trou de centrage&amp;quot;                                                                                            &lt;br /&gt;
   &amp;quot;LC 1&amp;quot;    |  &amp;quot;Laçage&amp;quot;                                                                                                       &lt;br /&gt;
   &amp;quot;GF 26&amp;quot;   |  &amp;quot;guimpes&amp;quot;                                                                                                &lt;br /&gt;
   &amp;quot;GF 4&amp;quot;    |  &amp;quot;stum&amp;quot;                                                                                                   &lt;br /&gt;
   &amp;quot;GF 6&amp;quot;    |  &amp;quot;braquettes&amp;quot;                                                                                               &lt;br /&gt;
   &amp;quot;GF 3&amp;quot;    |  &amp;quot;brodeus&amp;quot;                                                                                                  &lt;br /&gt;
   &amp;quot;TC 1&amp;quot;    |  &amp;quot;Trou de centrage&amp;quot;                                                                                         &lt;br /&gt;
   &amp;quot;LC 1&amp;quot;    |  &amp;quot;Laçage&amp;quot;                                                                                                      &lt;br /&gt;
   &amp;quot;GF 39&amp;quot;   |  &amp;quot;brodeus&amp;quot;                                                                                                 &lt;br /&gt;
   &amp;quot;TC 1&amp;quot;    |  &amp;quot;Trou de centrage&amp;quot;                                                                                           &lt;br /&gt;
   &amp;quot;LC 1&amp;quot;    |  &amp;quot;Laçage&amp;quot;                                                                                                    &lt;br /&gt;
                                                                                                                           &lt;br /&gt;
&amp;lt;div style=&amp;quot;font-size:7pt;color:blue;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;                                                                                                                          &lt;br /&gt;
  L T                GF39                   L T G   GF6  GF4          GF26            L T               GF30           GF4  GF6  T L&lt;br /&gt;
  C C _____________________________________ C C F  ____  __  ________________________ C C ____________________________  __  ____ C C&lt;br /&gt;
  1 1/                                     \1 1/3\/    \/  \/                        \1 1/                            \/  \/    \1 1&lt;br /&gt;
/------------------------------------------------------------------------------------------------------------------------------------\&lt;br /&gt;
|    OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO.  OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO.  OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO    |&lt;br /&gt;
| O  .O.O.O.OOOOOOO.OOO.OOOOOO.O.O.OOOOOOOOOO  OOOOOOOOOOO..O..OO...O.OO.....O..O..OOOO  OO...O...OOO.OOOOO...O.....O..OO..OOOOOO  O |&lt;br /&gt;
|    OOOOO.OO.O...OOO..O..OO.OO.OOOO.O..OO.O.  OOOOOO...OOOO.O.OOOO..O.OO.OOO..O.O.O...  ..OOO.OO..O.OO....O.O..O.OOOOOOOOOOOO...    |&lt;br /&gt;
|  ().OO.OO...OOOOOOOO.OO...O.OOOO..OO....O..()O..OOOOOOOOOOO.O....OO..O..OOO..OO.O.O..()OO.....OOO...OO..OO.O.OOO.OO.OOOOOOOOOOO()  |&lt;br /&gt;
|    ........................................  ...............OO..OO..O.......O........  ...........O...O...O.O...O...O..........    |&lt;br /&gt;
| O  .O....OO.O.O....O.O.OOO..O.O.OO.O..OOO.O  ..O...........OOO.OOO.OOOOOOO.OOO.OOO.OO  OOOOOOOOOOOOOOOOOOOO.OOOOOOOOO..........  O |&lt;br /&gt;
|    O.OOOOOOO.O.OOOO.O.OOOOOO.O.OOOO.OO.OOO.  OOO..........OOOOOOOOOOOOOOOOOOOOOOOOOO.  OOOOOOOOOOOOOOOOOOOOOOOOOOOOOO..........    |&lt;br /&gt;
\------------------------------------------------------------------------------------------------------------------------------------/    &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:91--&amp;gt;&lt;br /&gt;
*CGF2Card int32&lt;br /&gt;
ha de estar a 0.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:92--&amp;gt;&lt;br /&gt;
*CGF2Type int32&lt;br /&gt;
Número de columnas útiles en el cartón.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:93--&amp;gt;&lt;br /&gt;
*CGF2Taille int32&lt;br /&gt;
Número de columnas totales que caben del cartón.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:94--&amp;gt;&lt;br /&gt;
*CGF2Numlines int32&lt;br /&gt;
numero de entradas de las que consta la especificación del cartón.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:95--&amp;gt;&lt;br /&gt;
*CGF2Script string(CGF2Numlines)&lt;br /&gt;
Especificación del cartón. Formateado igual que CGF1Script.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:96--&amp;gt;&lt;br /&gt;
*CGF2Descrip string(CGF2Numlines)&lt;br /&gt;
Descripción de cada entada del cartón.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:97--&amp;gt;&lt;br /&gt;
*CFBCard int32&lt;br /&gt;
ha de estar a 1.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:98--&amp;gt;&lt;br /&gt;
*CFBType int32&lt;br /&gt;
Número de columnas útiles en el cartón.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:99--&amp;gt;&lt;br /&gt;
*CFBTaille int32&lt;br /&gt;
Número de columnas totales que caben del cartón multiplicadas por 8.Ex:&lt;br /&gt;
si el cartón tiene 75 columnas CFBTaille=75*8=600&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:100--&amp;gt;&lt;br /&gt;
*CFBNumlines int32&lt;br /&gt;
numero de entradas de las que consta la especificación del cartón.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:101--&amp;gt;&lt;br /&gt;
*CFBScript string(CFBNumlines)&lt;br /&gt;
Especificación del cartón. Formateado igual que CGF1Script. Excepto que los tipos aceptados&lt;br /&gt;
son:&lt;br /&gt;
   LC: Laçage&lt;br /&gt;
   TC: Trou de centrage&lt;br /&gt;
   TS: Trou de centrage simple&lt;br /&gt;
   EL: Element vide&lt;br /&gt;
   FB: Fine barre&lt;br /&gt;
   VB: Value&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:102--&amp;gt;&lt;br /&gt;
Es decir el tipo &amp;quot;GF&amp;quot; no existe para este tag y en su lugar hay el tipo &amp;quot;FB&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:103--&amp;gt;&lt;br /&gt;
*CFBDescrip string(CFBNumlines)&lt;br /&gt;
Descripción de cada entada del cartón.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:104--&amp;gt;&lt;br /&gt;
*CFBNGaits int32&lt;br /&gt;
Número de entradas para mapear las repeticiones de agujas de Fine Barre a los cartones en función de la repetición.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:105--&amp;gt;&lt;br /&gt;
*CFBGaitNRepeat int32(CFBNGaits)&lt;br /&gt;
Número de repetición a mapear&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:106--&amp;gt;&lt;br /&gt;
*CFBGaitNBar int32(CFBNGaits)&lt;br /&gt;
Número de aguja a mapear&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:107--&amp;gt;&lt;br /&gt;
*CFBGaitNGait int32(CFBNGaits)&lt;br /&gt;
Indice de agujero en el cartón&lt;br /&gt;
&lt;br /&gt;
==== TAGS DRAFT DATA ==== &amp;lt;!--T:109--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:110--&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:111--&amp;gt;&lt;br /&gt;
*NumCourses int32&lt;br /&gt;
Numero de pasadas del dibujo sin tener en cuenta las repeticiones.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:112--&amp;gt;&lt;br /&gt;
*BarNeedle int16(NumCourses*NumBars)&lt;br /&gt;
Despazamientos medidos en agujas de las barras en cada pasada. Ordenados de la siguiente manera:&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;!--T:113--&amp;gt;&lt;br /&gt;
BarNeedle(0)              Desplazamiento barra 1 en la primera pasada.&lt;br /&gt;
   BarNeedle(1)              Desplazamiento barra 1 en la segunda pasada.&lt;br /&gt;
   .&lt;br /&gt;
   .&lt;br /&gt;
   BarNeedle(NumCourses-1)   Desplazamiento barra 1 en la última pasada.&lt;br /&gt;
   BarNeedle(NumCourses)     Desplazamiento barra 2 en la primera pasada.&lt;br /&gt;
   .&lt;br /&gt;
   .&lt;br /&gt;
   BarNeedel(NumCourses*2-1) Desplazamiento barra 2 en la última pasada.&lt;br /&gt;
   BarNeedle(NumCourses)     Desplazamiento barra 3 en la primera pasada.&lt;br /&gt;
   .&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:114--&amp;gt;&lt;br /&gt;
*BarNeedleB int16(NumCourses*NumBars)&lt;br /&gt;
Solo se utiliza en maquinas de doble frontura. Es equivalente a BarNeedle pero contiene la información&lt;br /&gt;
para la segunda frontura.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:115--&amp;gt;&lt;br /&gt;
*BarHalves byte(NumCourses*NumBars)&lt;br /&gt;
Incremento de 1/2 aguja en el movimiento de la barra introducido manualmente por el diseñador desde el menú de Bareme&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:116--&amp;gt;&lt;br /&gt;
*BarKnitting byte(NumCourses*NumBars)&lt;br /&gt;
Indica en las maquinas que hacen 2 movimientos por pasada que movimiento se realiza&lt;br /&gt;
Valores:&lt;br /&gt;
 0 : Movimiento 0 0 . No liga&lt;br /&gt;
 1 : Movimeinto 0 1 . Liga&lt;br /&gt;
 2 : Movimeinto 1 0 . Liga&lt;br /&gt;
 3 : Movimeinto 1 1 . No liga&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:117--&amp;gt;&lt;br /&gt;
*BarKnittingB byte(NumCourses*NumBars)&lt;br /&gt;
Solo se utiliza en maquinas de doble frontura. Es equivalente a BarKnitting pero contiene la información&lt;br /&gt;
para la segunda frontura.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:118--&amp;gt;&lt;br /&gt;
*Layout_JacqData byte(NumCourses*JacqNeedles*Jacquard)&lt;br /&gt;
Cada byte guarda un bit de Jacquard. Valores:&lt;br /&gt;
0: T&lt;br /&gt;
1: H&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:119--&amp;gt;&lt;br /&gt;
*Layout_FrontureData byte(NumCourses*JacqNeedles*Jacquard)&lt;br /&gt;
Solo se utiliza en maquinas de doble frontura. Es equivalente a Layout_JacqData pero contiene la información&lt;br /&gt;
para la segunda frontura.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:120--&amp;gt;&lt;br /&gt;
*Layout_WBData byte(NumCourses*JacqNeedles*Jacquard)&lt;br /&gt;
Solo se utiliza en maquinas CLIPTRONIC . Contiene los datos para la barra de Embrodery(WB) en el mismo formato que&lt;br /&gt;
Layout_JacqData.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:121--&amp;gt;&lt;br /&gt;
*LayoutCourNRepeats int32&lt;br /&gt;
Numero de repeticiones de pasadas. Las repeticiones de pasadas afectan por igual las barras de dibujo y el jacquard.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:122--&amp;gt;&lt;br /&gt;
*LayoutCourNLayouts int32&lt;br /&gt;
Numero de bloques de pasadas a repetir&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:123--&amp;gt;&lt;br /&gt;
*LayoutCourRepeat int32(LayoutCourNLayouts)&lt;br /&gt;
Numero de pasadas que contiene cada bloque a repetir&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:124--&amp;gt;&lt;br /&gt;
*LayoutCourWhich int32(LayoutCourNRepeats)&lt;br /&gt;
indice del bloque que a repetir&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:125--&amp;gt;&lt;br /&gt;
*LayoutCourTimes int32(LayoutCourNRepeats)&lt;br /&gt;
numero de veces que se ha de repetir el bloque. Ejemplo:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:126--&amp;gt;&lt;br /&gt;
Normalmente como los dibujos suelen ser bastante repetitivos, para ahorrar trabajo y memoria no se guardan todas las pasadas&lt;br /&gt;
del dibujo. En un dibujo como el siguiente :&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;!--T:127--&amp;gt;&lt;br /&gt;
+------------------------------------------------------------------------------------------+&lt;br /&gt;
    |  ,~.~._,~.~._,~.~._,~.~._,~.~._,~.~._,~.~.    ,~.~._,~.~._,~.~._,~.~._,~.~._,~.~._,~.~.  | &lt;br /&gt;
    | / O.O   O.O   O.O   O.O   O.O   O.O   O.O \  / O.O   O.O   O.O   O.O   O.O   O.O   O.O \ | &lt;br /&gt;
    |( O:@:O O:@:O O:@:O O:@:O O:@:O O:@:O O:@:O )( O:@:O O:@:O O:@:O O:@:O O:@:O O:@:O O:@:O )| &lt;br /&gt;
    | \ O&#039;O   O&#039;O   O&#039;O   O&#039;O   O&#039;O   O&#039;O   O&#039;O /  \ O&#039;O   O&#039;O   O&#039;O   O&#039;O   O&#039;O   O&#039;O   O&#039;O / | &lt;br /&gt;
    |  )   . ,   . ,   . ,   . ,   . ,   . ,   (    )   . ,   . ,   . ,   . ,   . ,   . ,   (  | &lt;br /&gt;
/\  | (  * -@- * -@- * -@- * -@- * -@- * -@- *  )  (  * -@- * -@- * -@- * -@- * -@- * -@- *  ) | &lt;br /&gt;
 A  |  )   &#039; `   &#039; `   &#039; `   &#039; `   &#039; `   &#039; `   (    )   &#039; `   &#039; `   &#039; `   &#039; `   &#039; `   &#039; `   (  | &lt;br /&gt;
 g  | / O.O   O.O   O.O   O.O   O.O   O.O   O.O \  / O.O   O.O   O.O   O.O   O.O   O.O   O.O \ | &lt;br /&gt;
 u  |( O:@:O O:@:O O:@:O O:@:O O:@:O O:@:O O:@:O )( O:@:O O:@:O O:@:O O:@:O O:@:O O:@:O O:@:O )| &lt;br /&gt;
 j  | \ O&#039;O   O&#039;O   O&#039;O   O&#039;O   O&#039;O   O&#039;O   O&#039;O /  \ O&#039;O   O&#039;O   O&#039;O   O&#039;O   O&#039;O   O&#039;O   O&#039;O / | &lt;br /&gt;
 a  |  ·~·~·^·~·~·^·~·~·^·~·~·^·~·~·^·~·~·^·~·~·    ·~·~·^·~·~·^·~·~·^·~·~·^·~·~·^·~·~·^·~·~·  | &lt;br /&gt;
 s  +------------------------------------------------------------------------------------------+&lt;br /&gt;
     Pasadas &amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:128--&amp;gt;&lt;br /&gt;
Si se mira lo que hay guardado en el archivo se encontraría algo similar a :&lt;br /&gt;
                     &lt;br /&gt;
    +---------------+&lt;br /&gt;
    |  ,~.~._,~.~.  |&lt;br /&gt;
    | / O.O   O.O \ |&lt;br /&gt;
    |( O:@:O O:@:O )|&lt;br /&gt;
    | \ O&#039;O   O&#039;O / |&lt;br /&gt;
    |  )   . ,   (  |&lt;br /&gt;
/\  | (  * -@- *  ) | &lt;br /&gt;
 A  |  )   &#039; `   (  |&lt;br /&gt;
 g  | / O.O   O.O \ |&lt;br /&gt;
 u  |( O:@:O O:@:O )|&lt;br /&gt;
 j  | \ O&#039;O   O&#039;O / |&lt;br /&gt;
 a  |  ·~·~·^·~·~·  |&lt;br /&gt;
 s  +---------------+&lt;br /&gt;
     Pasadas &amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:129--&amp;gt;&lt;br /&gt;
Esto pasa por que se ha guardado solo una vez cada bloque que se repite. En este caso los bloques que se han usado:&lt;br /&gt;
&lt;br /&gt;
     &amp;lt;!--T:130--&amp;gt;&lt;br /&gt;
A      B        C&lt;br /&gt;
  +----+ +------+ +-----+&lt;br /&gt;
  |  ,~| |.~._,~| |.~.  | &lt;br /&gt;
  | / O| |.O   O| |.O \ | &lt;br /&gt;
  |( O:| |@:O O:| |@:O )| &lt;br /&gt;
  | \ O| |&#039;O   O| |&#039;O / | &lt;br /&gt;
  |  ) | |  . , | |  (  | &lt;br /&gt;
  | (  | |* -@- | |*  ) |&lt;br /&gt;
  |  ) | |  &#039; ` | |  (  | &lt;br /&gt;
  | / O| |.O   O| |.O \ | &lt;br /&gt;
  |( O:| |@:O O:| |@:O )|&lt;br /&gt;
  | \ O| |&#039;O   O| |&#039;O / |  &lt;br /&gt;
  |  ·~| |·~·^·~| |·~·  | &lt;br /&gt;
  +----+ +------+ +-----+&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:131--&amp;gt;&lt;br /&gt;
Se puede ver con facilidad que la sequencia de bloques para obtener el dibujo es: A B B B B B B C A B B B B B B C&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:132--&amp;gt;&lt;br /&gt;
LayoutCourNLayouts=3 pues hay tres bloques distintos ( A , B , C )&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:133--&amp;gt;&lt;br /&gt;
LayoutCourRepeat=Array(&lt;br /&gt;
   numero de pasadas de A,&lt;br /&gt;
   numero de pasadas de B,&lt;br /&gt;
   numero de pasadas de C&lt;br /&gt;
)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:134--&amp;gt;&lt;br /&gt;
NOTA: El número total de pasadas ha de ser igual a la suma de pasadas de los bloques de repeticiones. Es decir:&lt;br /&gt;
NumCourses=LayoutCourRepeat(0)+...+LayoutCourRepeat(LayoutCourNLayouts-1)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:135--&amp;gt;&lt;br /&gt;
Luego para codificar que se desea 1 repetición de A, 6 repeticiones de B y una repeticion de C se haria de la siguiente manera:&lt;br /&gt;
&lt;br /&gt;
                         &amp;lt;!--T:136--&amp;gt;&lt;br /&gt;
idx  |  LayoutCourWhich | LayoutCourTimes | Significado&lt;br /&gt;
                      --------+------------------+-----------------+------------------&lt;br /&gt;
                        _     |                  |                 |&lt;br /&gt;
                       /  0   |         1        |       1         | Bloque 1 (A) repetir una vez&lt;br /&gt;
                       |      |                  |                 |&lt;br /&gt;
                       |  1   |         2        |       6         | Bloque 2 (B) repetir 6 veces&lt;br /&gt;
                       |      |                  |                 |&lt;br /&gt;
                       |  2   |         3        |       1         | Bloque 3 (C) repetir una vez&lt;br /&gt;
LayoutCourNRepeats=6  &amp;lt;       |                  |                 |&lt;br /&gt;
                       |  3   |         1        |       1         | Bloque 1 (A) repetir una vez&lt;br /&gt;
                       |      |                  |                 |&lt;br /&gt;
                       |  4   |         2        |       6         | Bloque 2 (B) repetir 6 veces&lt;br /&gt;
                       |      |                  |                 |&lt;br /&gt;
                       \_ 5   |         3        |       1         | Bloque 3 (C) repetir una vez&lt;br /&gt;
                              |                  |                 |&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:137--&amp;gt;&lt;br /&gt;
*LayoutJacqNRepeats int32&lt;br /&gt;
Numero de repeticiones de agujas. Solo afecta el jacquard. Sigue el mismo sistema que las repeticiones de pasadas.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:138--&amp;gt;&lt;br /&gt;
*LayoutJacqNLayouts int32&lt;br /&gt;
Numero de bloques de agujas a repetir&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:139--&amp;gt;&lt;br /&gt;
*LayoutJacqRepeat int32(LayoutJacqNLayouts)&lt;br /&gt;
Numero de agujas que contiene cada bloque a repetir&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:140--&amp;gt;&lt;br /&gt;
*LayoutJacqWhich int32(LayoutJacqNRepeats)&lt;br /&gt;
indice del bloque que a repetir&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:141--&amp;gt;&lt;br /&gt;
*LayoutJacqTimes int32(LayoutJacqNRepeats)&lt;br /&gt;
numero de veces que se ha de repetir el bloque.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:142--&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;/div&gt;</summary>
		<author><name>Pascual</name></author>
	</entry>
	<entry>
		<id>https://wiki.cadt.com/index.php?title=Drf-reader&amp;diff=3159</id>
		<title>Drf-reader</title>
		<link rel="alternate" type="text/html" href="https://wiki.cadt.com/index.php?title=Drf-reader&amp;diff=3159"/>
		<updated>2016-10-05T17:20:16Z</updated>

		<summary type="html">&lt;p&gt;Pascual: /* TAGS */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;languages/&amp;gt;&lt;br /&gt;
[[Category:SAPO]]&lt;br /&gt;
[[Category:Devel]]&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== DLL_EXPORTS === &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;void drf_clear_errors()&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Descr:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:1--&amp;gt;&lt;br /&gt;
Borra todos los mensajes de error producidos por la librería.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;int drf_get_num_errors()&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Descr:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:2--&amp;gt;&lt;br /&gt;
Obtiene el número de mensajes de error producidos por la librería.&lt;br /&gt;
&lt;br /&gt;
Return:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:3--&amp;gt;&lt;br /&gt;
Número de mensajes almacenados.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;const char* drf_get_error(int idx)&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Descr:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:4--&amp;gt;&lt;br /&gt;
Obtiene el mensaje de error indicado por idx (referenciado a 0).&lt;br /&gt;
&lt;br /&gt;
Params:&lt;br /&gt;
&lt;br /&gt;
idx:&lt;br /&gt;
&amp;lt;!--T:5--&amp;gt;&lt;br /&gt;
Número de mensaje a obtener. Rango entre: 0 y (drf_get_num_errors()-1) ambos incluidos.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:6--&amp;gt;&lt;br /&gt;
Return:&lt;br /&gt;
&lt;br /&gt;
Éxito: Puntero a una cadena de caracteres ASCII terminada por el byte NUL (&#039;\0&#039;)&lt;br /&gt;
&lt;br /&gt;
Error: NULL en caso que el valor de idx esté fuera de rango.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;int drf_to_json(char *path,FILE *json,int options)&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Descr:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:7--&amp;gt;&lt;br /&gt;
Serializa a JSON un archivo en formato DRF.&lt;br /&gt;
&lt;br /&gt;
Params:&lt;br /&gt;
&lt;br /&gt;
path:&lt;br /&gt;
Ruta al fichero DRF a serializar en formato Windows ANSI.&lt;br /&gt;
&lt;br /&gt;
json:&lt;br /&gt;
puntero FILE ya abierto y con la escritura habilitada.&lt;br /&gt;
&lt;br /&gt;
options:&lt;br /&gt;
&amp;lt;!--T:8--&amp;gt;&lt;br /&gt;
Selecciona que información se serializará. Valores possibles:&lt;br /&gt;
&lt;br /&gt;
   DRF_GET_GENERIC_INFO&lt;br /&gt;
   DRF_GET_MACHINE_INFO&lt;br /&gt;
   DRF_GET_DRAFT_INFO&lt;br /&gt;
   DRF_GET_ALL_INFO&lt;br /&gt;
&lt;br /&gt;
o una combinación de los valores anteriores (OR)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:9--&amp;gt;&lt;br /&gt;
Return:&lt;br /&gt;
&lt;br /&gt;
Éxito : retorna valor igual a 0&lt;br /&gt;
&lt;br /&gt;
Error : retorna valor diferente de 0&lt;br /&gt;
&lt;br /&gt;
=== TAGS ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:11--&amp;gt;&lt;br /&gt;
Codificación a JSON de los datos:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:12--&amp;gt;&lt;br /&gt;
Internamente el DRF guarda la información como una lista de tags. Cada tag puede contener uno o varios elementos del mismo tipo.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:13--&amp;gt;&lt;br /&gt;
Al codificar un DRF a JSON se codifica como un objeto donde se usa el nombre del tag como clave y el contenido de éste como valor.&lt;br /&gt;
En caso que el tag pueda contener más de un valor, la librería serializa el contenido como un vector.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:14--&amp;gt;&lt;br /&gt;
Como el formato DRF soporta más tipos que el JSON, la librería los convertirá a un tipo soportado por el JSON. La siguiente tabla muestra a que &lt;br /&gt;
tipo del JSON se convierte cada tipo del DRF &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    DRF  | JSON   &lt;br /&gt;
  -------+--------&lt;br /&gt;
  byte   | &lt;br /&gt;
  int16  | int&lt;br /&gt;
  int32  |&lt;br /&gt;
  -------+-------&lt;br /&gt;
  float  | float&lt;br /&gt;
  -------+-------&lt;br /&gt;
  string | string*&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:16--&amp;gt;&lt;br /&gt;
*) Todos los strings contienen sólo caracteres ASCII (encoding:ASCII-7)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== TAGS GENERIC INFO ==== &amp;lt;!--T:17--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:18--&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:19--&amp;gt;&lt;br /&gt;
*Software string&lt;br /&gt;
Nombre del programa que ha generado el fichero .DRF&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:20--&amp;gt;&lt;br /&gt;
*DrawName string&lt;br /&gt;
Referencia del dibujo (max. 256 carac).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:21--&amp;gt;&lt;br /&gt;
*Company string&lt;br /&gt;
Compañía que ha creado el dibujo (max. 30 carac).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:22--&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== TAGS MACHINE INFO ==== &amp;lt;!--T:23--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:25--&amp;gt;&lt;br /&gt;
*Machine string&lt;br /&gt;
Referencia de la máquina. (max. 30 carac) &lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:26--&amp;gt;&lt;br /&gt;
*MachineType string&lt;br /&gt;
Modelo de la máquina. Sólo es válido un modelo definido en el sistema de diseño. (p.e. LEAVERS)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:27--&amp;gt;&lt;br /&gt;
*Description string&lt;br /&gt;
Descripción o información adicional de la máquina.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:28--&amp;gt;&lt;br /&gt;
*Serial string&lt;br /&gt;
Num. serie de la máquina. (max. 30 carac) . Puede contener carácteres no numéricos.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:29--&amp;gt;&lt;br /&gt;
*Version int32 [RASCHEL SU]&lt;br /&gt;
Versión de la máquina raschel SU (versión 1 .. 4).&lt;br /&gt;
   versión 1 . Sin ahorrador de memoria&lt;br /&gt;
   versión 2 . Con ahorrador de memoria (repeticiones)&lt;br /&gt;
   versión 3 . Sin ahorrador de memoria + información empresa.&lt;br /&gt;
   versión 4 . Con ahorrador de memoria (repeciciones) + información empresa.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:30--&amp;gt;&lt;br /&gt;
*Jacquard int32&lt;br /&gt;
Número de barras de Jacquard independientes. Valores posibles: &lt;br /&gt;
   0 : No jacquard&lt;br /&gt;
   1 : 1 jacquard o fina barra simple&lt;br /&gt;
   2 : 2 jacquard raschel o fina barra doble.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:31--&amp;gt;&lt;br /&gt;
*Fronture int32 [RASCHEL DOUBLE NEEDLE BAR]&lt;br /&gt;
Número de fonturas de la máquina&lt;br /&gt;
   1 : 1 fontura&lt;br /&gt;
   2 : 2 fontures (delante / detrás)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:32--&amp;gt;&lt;br /&gt;
*BarsRepeat int32&lt;br /&gt;
Altura del diseño.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:33--&amp;gt;&lt;br /&gt;
*NumRepeats int32&lt;br /&gt;
Num de repeticiones en el diseño.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:34--&amp;gt;&lt;br /&gt;
*NumBars int32&lt;br /&gt;
Numero de barras que tiene el telar.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:35--&amp;gt;&lt;br /&gt;
*Plate int32&lt;br /&gt;
En máquinas raschel (textronic), indica la posición de la plancha.&lt;br /&gt;
En máquinas leavers indica donde empiezan los brodeurs.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:36--&amp;gt;&lt;br /&gt;
*JacqNeedles int32&lt;br /&gt;
Numero de agujas de Jacquard del telar.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:37--&amp;gt;&lt;br /&gt;
*MachNeedles int32&lt;br /&gt;
Numero total de agujas del telar.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:38--&amp;gt;&lt;br /&gt;
*BarsOffset int32&lt;br /&gt;
Desplazamiento de barras (orillos=zona perdida)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:39--&amp;gt;&lt;br /&gt;
*JacqOffset int32&lt;br /&gt;
Deplazamiento de las agujas de jacquard en el telar.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:40--&amp;gt;&lt;br /&gt;
*MaxDisp int32 [RASCHEL SU]&lt;br /&gt;
Deplazamiento máximo general de las barras para máquinas raschel SU.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:41--&amp;gt;&lt;br /&gt;
*Proximity int32&lt;br /&gt;
Para máquinas raschel, distáncia máxima a la que se pueden acercar dos barras del mismo grupo.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:42--&amp;gt;&lt;br /&gt;
*ProximityCollindant int32&lt;br /&gt;
Para máquinas raschel, distáncia máxima a la que se pueden acercar dos barras del mismo grupo colindantes.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:43--&amp;gt;&lt;br /&gt;
*JacqRt int32&lt;br /&gt;
Deplazamiento Rt del jacquard:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:44--&amp;gt;&lt;br /&gt;
para máquinas raschel:&lt;br /&gt;
   no jacquard: rt = 0&lt;br /&gt;
   jacquard simple o doble: rt = 1&lt;br /&gt;
Indica cuántas agujas se desplaza la lectura del jacaquard en las pasadas alternadas.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:45--&amp;gt;&lt;br /&gt;
para máquinas leavers&lt;br /&gt;
   no fina barra:      0&lt;br /&gt;
   fina barra simple: -1&lt;br /&gt;
   fina barra doble:   0&lt;br /&gt;
Indica cuántas agujas se desplaza la lectura del jacquard (desde la posición derecha de la máquina en las pasadas alternadas).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:46--&amp;gt;&lt;br /&gt;
*JacqRtCourse int32&lt;br /&gt;
Indica que pasadas se aplica el valor JacqRt.&lt;br /&gt;
   0:pasadas pares&lt;br /&gt;
   1: pasadas impares&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:47--&amp;gt;&lt;br /&gt;
*FinalGauge float&lt;br /&gt;
Galga de producto tejido aplicando encongimiento (medida en agujas/pulgada)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:48--&amp;gt;&lt;br /&gt;
*FinalQuality float&lt;br /&gt;
Calidad de producto tejido aplicando elasticidad (medida en pasadas/centímetro).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:49--&amp;gt;&lt;br /&gt;
*RealGauge float&lt;br /&gt;
Galga de máquina (medida en agujas/pulgada)-&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:50--&amp;gt;&lt;br /&gt;
*RealQuality float&lt;br /&gt;
Calidad de máquina (medida en pasadas/centímetro).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:51--&amp;gt;&lt;br /&gt;
*Shrinkage float&lt;br /&gt;
Porcentage de encongimiento en agujas (0-100%)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:52--&amp;gt;&lt;br /&gt;
*Elasticity float&lt;br /&gt;
Porcentage de elasticidad en pasadas (0-100%)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:53--&amp;gt;&lt;br /&gt;
*BarNumBar int32(NumBars)&lt;br /&gt;
Numero de cada una de las barras del telar (valor numérico consecutivo)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:54--&amp;gt;&lt;br /&gt;
*BarName string(NumBars)&lt;br /&gt;
Nombre o identificador de cada una de las barras del telar&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:55--&amp;gt;&lt;br /&gt;
*BarGroup int32(NumBars)&lt;br /&gt;
En máquinas raschel el número de grupo de la barra.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:56--&amp;gt;&lt;br /&gt;
*BarStop int32(NumBars)&lt;br /&gt;
Posición 0 de la barra.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:57--&amp;gt;&lt;br /&gt;
*BarUtil int32(NumBars)&lt;br /&gt;
Visibilidad de la barra en el sistema de diseño.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:58--&amp;gt;&lt;br /&gt;
*BarType int32(NumBars)&lt;br /&gt;
Tipo de hilo por defecto de la barra.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:59--&amp;gt;&lt;br /&gt;
*BarMaxGimp int32&lt;br /&gt;
Guimpada máxima en agujas de la barra.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:60--&amp;gt;&lt;br /&gt;
*BarDrive int32&lt;br /&gt;
En máquinas raschel SU, el número de getribe de la barra.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:61--&amp;gt;&lt;br /&gt;
*BarFactor int32&lt;br /&gt;
En máquinas raschel SU, multiplicador de la barra.&lt;br /&gt;
1: factor de 1 agulla&lt;br /&gt;
2: factor de 2 agulles,&lt;br /&gt;
4: factor de 4 agulles.&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:62--&amp;gt;&lt;br /&gt;
*BarInvert int32&lt;br /&gt;
En máquinas raschel SU, les barres invertides. &lt;br /&gt;
1: barra invertida.&lt;br /&gt;
0: barra no invertida.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:63--&amp;gt;&lt;br /&gt;
*BarWork int32&lt;br /&gt;
Trabajo de la barra en el sistema de diseño.&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;!--T:64--&amp;gt;&lt;br /&gt;
0: Chainette&lt;br /&gt;
   1: Jacquard     [1]&lt;br /&gt;
   2: Brodeur&lt;br /&gt;
   3: Gros&lt;br /&gt;
   4: Fin&lt;br /&gt;
   5: Brillant&lt;br /&gt;
   6: Picot&lt;br /&gt;
   7: Corde&lt;br /&gt;
   8: Lycra&lt;br /&gt;
   9: Fond&lt;br /&gt;
  10: Bloc&lt;br /&gt;
  11: Cord&lt;br /&gt;
  12: Guimp&lt;br /&gt;
  13: Nul&lt;br /&gt;
  14: Jacq 0/2,6/4 [1]&lt;br /&gt;
  15: Jacq 0/2,8/6 [1]&lt;br /&gt;
  16: Fine Bar.  [sup]&lt;br /&gt;
  17: Braquette&amp;quot;&lt;br /&gt;
  18: Jacquard     [2]&lt;br /&gt;
  19: Jacq 0/2,6/4 [2]&lt;br /&gt;
  20: Jacq 0/2,8/6 [2]&lt;br /&gt;
  21: Fine Bar.  [inf]&lt;br /&gt;
  22: Jacquard&lt;br /&gt;
  23: Fine Barre&lt;br /&gt;
  24: Fallplate&lt;br /&gt;
  25: Embrodery&lt;br /&gt;
  26: EFS&lt;br /&gt;
  27: Reservé 1&lt;br /&gt;
  28: Reservé 2&lt;br /&gt;
  29: Jacq 0/2,6/4&lt;br /&gt;
  30: Jacq 0/2,8/6&lt;br /&gt;
  31: Bord&lt;br /&gt;
  32: Lisieres&lt;br /&gt;
  33: Romaines&lt;br /&gt;
  34: Sonnette&lt;br /&gt;
  35: Guimp devant&lt;br /&gt;
  36: Petite Corde&lt;br /&gt;
  37: Fileur&lt;br /&gt;
  38: Separation&lt;br /&gt;
  39: Corde Termo&lt;br /&gt;
  40: Solv rom&lt;br /&gt;
  41: Vis&lt;br /&gt;
  42: Jacquard     [3]&lt;br /&gt;
  43: Jacquard     [4]&lt;br /&gt;
  44: Space Fabric&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:65--&amp;gt;&lt;br /&gt;
*BarKnit&lt;br /&gt;
En máquines raschel textronic tipous de lligada:&lt;br /&gt;
  0 : no planxa&lt;br /&gt;
  1 : lligada 1 (mecanica)&lt;br /&gt;
  2 : lligada 2 (binaria)&lt;br /&gt;
  3 : lligada 3 (mecánica (2))&lt;br /&gt;
  4 : lligada 4 (binària (2))&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:66--&amp;gt;&lt;br /&gt;
*BarTimes&lt;br /&gt;
En máquines raschel textonic temps de la lligada&lt;br /&gt;
  0 : no planxa&lt;br /&gt;
  2 : temps 2 (p.e) 0202 0202 0202&lt;br /&gt;
  4 : temps 4 (p.e) 0220 0220 0220&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:67--&amp;gt;&lt;br /&gt;
*BarMode&lt;br /&gt;
En máquines raschel textronic el mode la la barra:&lt;br /&gt;
  0 : mode A (p.e 0220)&lt;br /&gt;
  1 : mode B (p.e 2002)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:68--&amp;gt;&lt;br /&gt;
*BarModif int32&lt;br /&gt;
En máquines raschel textronic indica que la barra no es pot deslligar&lt;br /&gt;
  0 : no es pot deslligar&lt;br /&gt;
  1 : si es pot deslligar&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:69--&amp;gt;&lt;br /&gt;
*BarTension int32&lt;br /&gt;
Tensió de la barra a les simulacions.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:70--&amp;gt;&lt;br /&gt;
*BarNumFingers int32(NumBars)&lt;br /&gt;
Número de pasadors de la barra&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:71--&amp;gt;&lt;br /&gt;
*BarModeDrop int32(NumBars)&lt;br /&gt;
Ponderación de cada uno de los 7 bits que se usan para indicar el desplazamiento de la barra. Valores:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;!--T:72--&amp;gt;&lt;br /&gt;
Valor | B7 | B6 | B5 | B4 | B3 | B2 | B1&lt;br /&gt;
 ------+----+----+----+----+----+----+----&lt;br /&gt;
    0  |  8 |  8 |  8 |  4 |  2 |  1 |1/2&lt;br /&gt;
 ------+----+----+----+----+----+----+----&lt;br /&gt;
    1  | 16 |  8 |  8 |  4 |  2 |  1 |1/2&lt;br /&gt;
 ------+----+----+----+----+----+----+----&lt;br /&gt;
    2  | 16 | 16 |  8 |  4 |  2 |  1 |1/2&lt;br /&gt;
 ------+----+----+----+----+----+----+----&lt;br /&gt;
    3  | 32 | 16 |  8 |  4 |  2 |  1 |1/2&lt;br /&gt;
 ------+----+----+----+----+----+----+----&lt;br /&gt;
    4  |  8 |  8 |  8 |  8 |  4 |  2 | 1&lt;br /&gt;
 ------+----+----+----+----+----+----+----&lt;br /&gt;
    5  | 16 |  8 |  8 |  8 |  4 |  2 | 1&lt;br /&gt;
 ------+----+----+----+----+----+----+----&lt;br /&gt;
    6  |  4 |  4 |  4 |  4 |  2 |  1 | 1&lt;br /&gt;
 ------+----+----+----+----+----+----+----&lt;br /&gt;
    7  |  0 |  0 |  0 |  1 |  2 |  1 |1/2&lt;br /&gt;
 ------+----+----+----+----+----+----+----&lt;br /&gt;
    8  |  4 |  4 |  4 |  4 |  2 |  1 |1/2&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:73--&amp;gt;&lt;br /&gt;
*BarMaxDesp int32(NumBars)&lt;br /&gt;
Desplazamiento máximo de la barra en agujas&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:74--&amp;gt;&lt;br /&gt;
*BarActive byte(NumBars)&lt;br /&gt;
Sólo para maquinas EL. Indica si la barra esta en uso o no.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:75--&amp;gt;&lt;br /&gt;
*BarHalvesUp byte(NumBars)&lt;br /&gt;
Si en la pasada se incrementa la posición de la barra en BarHalvesUp agujas o más, entonces , se añade media aguja a la posición final.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:76--&amp;gt;&lt;br /&gt;
*BarHalvesDn byte(NumBars)&lt;br /&gt;
Si en la pasada se decrementa la posición de la barra en BarHalvesDwn agujas o más, entonces , se le resta media aguja a la posición final.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:77--&amp;gt;&lt;br /&gt;
*BarString int32(NumBars)&lt;br /&gt;
Valors:&lt;br /&gt;
0:&lt;br /&gt;
1:ple&lt;br /&gt;
2:1f 1x&lt;br /&gt;
3:1x 1f&lt;br /&gt;
4:buit&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:78--&amp;gt;&lt;br /&gt;
*BarFronture int32(NumBars)&lt;br /&gt;
Solo se usa en las máquinas de doble frontura. Da la frontura en la que empieza a trabajar la barra.Valores:&lt;br /&gt;
0: primera forntura&lt;br /&gt;
1: segunda frontura&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:79--&amp;gt;&lt;br /&gt;
*BarDropsUtil int32(7*NumBars)&lt;br /&gt;
indica como se deben perforar los 7 posiciones correspondientes a la barra:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:80--&amp;gt;&lt;br /&gt;
Valor:&lt;br /&gt;
0: Usado. Siempre a 1. Es decir: no perforar nunca&lt;br /&gt;
1: Usado, Se perforara o no en funcion del desplazamiento de la barra&lt;br /&gt;
2: Usado. Siemre a 0. Es decir, se perfora siempre&lt;br /&gt;
3: No usado. No se perfora&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:81--&amp;gt;&lt;br /&gt;
*FingerStop int32(num_fingers) num_fingers=BarNumFingers(0) + ... + BarNumFingers(NumBars-1)&lt;br /&gt;
Stop del pasador relativo al stop de la barra.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:82--&amp;gt;&lt;br /&gt;
*FingerType int32(num_fingers) num_fingers=BarNumFingers(0) + ... + BarNumFingers(NumBars-1)&lt;br /&gt;
Tipo de pasador.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:83--&amp;gt;&lt;br /&gt;
*CGF1Card int32&lt;br /&gt;
ha de estar a 0.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:84--&amp;gt;&lt;br /&gt;
*CGF1Type int32&lt;br /&gt;
Número de columnas útiles en el cartón.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:85--&amp;gt;&lt;br /&gt;
*CGF1Taille int32&lt;br /&gt;
Número de columnas totales que caben del cartón.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:86--&amp;gt;&lt;br /&gt;
*CGF1Numlines int32&lt;br /&gt;
numero de entradas de las que consta la especificación del cartón.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:87--&amp;gt;&lt;br /&gt;
*CGF1Script string(CGF1Numlines)&lt;br /&gt;
Lista de cadenas de caracteres que detallan como se ha de perforar  cada columna del cartón empezando por la columna de mas a la derecha.&lt;br /&gt;
Cada cadena de caracteres tiene el formato: &amp;lt;codigo de tipo&amp;gt; &amp;lt;espacio&amp;gt; &amp;lt;numero de repeticiones&amp;gt;. Ex: &amp;quot;LC 1&amp;quot;.&lt;br /&gt;
Los codigos de tipo validos son:&lt;br /&gt;
   LC: Laçage&lt;br /&gt;
   TC: Trou de centrage&lt;br /&gt;
   TS: Trou de centrage simple&lt;br /&gt;
   EL: Element vide&lt;br /&gt;
   GF: Gros fil&lt;br /&gt;
   VB: Value&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:88--&amp;gt;&lt;br /&gt;
*CGF1Descrip string(CGF1Numlines)&lt;br /&gt;
Descripción de cada entada del cartón.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:89--&amp;gt;&lt;br /&gt;
Ex:&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;!--T:90--&amp;gt;&lt;br /&gt;
CGF1Script | CGF1Descrip&lt;br /&gt;
 ------------+--------------&lt;br /&gt;
   &amp;quot;LC 1&amp;quot;    |  &amp;quot;Laçage&amp;quot;&lt;br /&gt;
   &amp;quot;TC 1&amp;quot;    |  &amp;quot;Trou de centrage&amp;quot;&lt;br /&gt;
   &amp;quot;GF 6&amp;quot;    |  &amp;quot;braquettes&amp;quot;  &lt;br /&gt;
   &amp;quot;GF 4&amp;quot;    |  &amp;quot;stum&amp;quot;                                                                                                      &lt;br /&gt;
   &amp;quot;GF 30&amp;quot;   |  &amp;quot;guimpes&amp;quot;                                                                                                    &lt;br /&gt;
   &amp;quot;TC 1&amp;quot;    |  &amp;quot;Trou de centrage&amp;quot;                                                                                            &lt;br /&gt;
   &amp;quot;LC 1&amp;quot;    |  &amp;quot;Laçage&amp;quot;                                                                                                       &lt;br /&gt;
   &amp;quot;GF 26&amp;quot;   |  &amp;quot;guimpes&amp;quot;                                                                                                &lt;br /&gt;
   &amp;quot;GF 4&amp;quot;    |  &amp;quot;stum&amp;quot;                                                                                                   &lt;br /&gt;
   &amp;quot;GF 6&amp;quot;    |  &amp;quot;braquettes&amp;quot;                                                                                               &lt;br /&gt;
   &amp;quot;GF 3&amp;quot;    |  &amp;quot;brodeus&amp;quot;                                                                                                  &lt;br /&gt;
   &amp;quot;TC 1&amp;quot;    |  &amp;quot;Trou de centrage&amp;quot;                                                                                         &lt;br /&gt;
   &amp;quot;LC 1&amp;quot;    |  &amp;quot;Laçage&amp;quot;                                                                                                      &lt;br /&gt;
   &amp;quot;GF 39&amp;quot;   |  &amp;quot;brodeus&amp;quot;                                                                                                 &lt;br /&gt;
   &amp;quot;TC 1&amp;quot;    |  &amp;quot;Trou de centrage&amp;quot;                                                                                           &lt;br /&gt;
   &amp;quot;LC 1&amp;quot;    |  &amp;quot;Laçage&amp;quot;                                                                                                    &lt;br /&gt;
                                                                                                                           &lt;br /&gt;
&amp;lt;div style=&amp;quot;font-size:7pt;color:blue;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;                                                                                                                          &lt;br /&gt;
  L T                GF39                   L T G   GF6  GF4          GF26            L T               GF30           GF4  GF6  T L&lt;br /&gt;
  C C _____________________________________ C C F  ____  __  ________________________ C C ____________________________  __  ____ C C&lt;br /&gt;
  1 1/                                     \1 1/3\/    \/  \/                        \1 1/                            \/  \/    \1 1&lt;br /&gt;
/------------------------------------------------------------------------------------------------------------------------------------\&lt;br /&gt;
|    OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO.  OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO.  OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO    |&lt;br /&gt;
| O  .O.O.O.OOOOOOO.OOO.OOOOOO.O.O.OOOOOOOOOO  OOOOOOOOOOO..O..OO...O.OO.....O..O..OOOO  OO...O...OOO.OOOOO...O.....O..OO..OOOOOO  O |&lt;br /&gt;
|    OOOOO.OO.O...OOO..O..OO.OO.OOOO.O..OO.O.  OOOOOO...OOOO.O.OOOO..O.OO.OOO..O.O.O...  ..OOO.OO..O.OO....O.O..O.OOOOOOOOOOOO...    |&lt;br /&gt;
|  ().OO.OO...OOOOOOOO.OO...O.OOOO..OO....O..()O..OOOOOOOOOOO.O....OO..O..OOO..OO.O.O..()OO.....OOO...OO..OO.O.OOO.OO.OOOOOOOOOOO()  |&lt;br /&gt;
|    ........................................  ...............OO..OO..O.......O........  ...........O...O...O.O...O...O..........    |&lt;br /&gt;
| O  .O....OO.O.O....O.O.OOO..O.O.OO.O..OOO.O  ..O...........OOO.OOO.OOOOOOO.OOO.OOO.OO  OOOOOOOOOOOOOOOOOOOO.OOOOOOOOO..........  O |&lt;br /&gt;
|    O.OOOOOOO.O.OOOO.O.OOOOOO.O.OOOO.OO.OOO.  OOO..........OOOOOOOOOOOOOOOOOOOOOOOOOO.  OOOOOOOOOOOOOOOOOOOOOOOOOOOOOO..........    |&lt;br /&gt;
\------------------------------------------------------------------------------------------------------------------------------------/    &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:91--&amp;gt;&lt;br /&gt;
*CGF2Card int32&lt;br /&gt;
ha de estar a 0.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:92--&amp;gt;&lt;br /&gt;
*CGF2Type int32&lt;br /&gt;
Número de columnas útiles en el cartón.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:93--&amp;gt;&lt;br /&gt;
*CGF2Taille int32&lt;br /&gt;
Número de columnas totales que caben del cartón.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:94--&amp;gt;&lt;br /&gt;
*CGF2Numlines int32&lt;br /&gt;
numero de entradas de las que consta la especificación del cartón.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:95--&amp;gt;&lt;br /&gt;
*CGF2Script string(CGF2Numlines)&lt;br /&gt;
Especificación del cartón. Formateado igual que CGF1Script.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:96--&amp;gt;&lt;br /&gt;
*CGF2Descrip string(CGF2Numlines)&lt;br /&gt;
Descripción de cada entada del cartón.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:97--&amp;gt;&lt;br /&gt;
*CFBCard int32&lt;br /&gt;
ha de estar a 1.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:98--&amp;gt;&lt;br /&gt;
*CFBType int32&lt;br /&gt;
Número de columnas útiles en el cartón.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:99--&amp;gt;&lt;br /&gt;
*CFBTaille int32&lt;br /&gt;
Número de columnas totales que caben del cartón multiplicadas por 8.Ex:&lt;br /&gt;
si el cartón tiene 75 columnas CFBTaille=75*8=600&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:100--&amp;gt;&lt;br /&gt;
*CFBNumlines int32&lt;br /&gt;
numero de entradas de las que consta la especificación del cartón.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:101--&amp;gt;&lt;br /&gt;
*CFBScript string(CFBNumlines)&lt;br /&gt;
Especificación del cartón. Formateado igual que CGF1Script. Excepto que los tipos aceptados&lt;br /&gt;
son:&lt;br /&gt;
   LC: Laçage&lt;br /&gt;
   TC: Trou de centrage&lt;br /&gt;
   TS: Trou de centrage simple&lt;br /&gt;
   EL: Element vide&lt;br /&gt;
   FB: Fine barre&lt;br /&gt;
   VB: Value&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:102--&amp;gt;&lt;br /&gt;
Es decir el tipo &amp;quot;GF&amp;quot; no existe para este tag y en su lugar hay el tipo &amp;quot;FB&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:103--&amp;gt;&lt;br /&gt;
*CFBDescrip string(CFBNumlines)&lt;br /&gt;
Descripción de cada entada del cartón.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:104--&amp;gt;&lt;br /&gt;
*CFBNGaits int32&lt;br /&gt;
Número de entradas para mapear las repeticiones de agujas de Fine Barre a los cartones en función de la repetición.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:105--&amp;gt;&lt;br /&gt;
*CFBGaitNRepeat int32(CFBNGaits)&lt;br /&gt;
Número de repetición a mapear&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:106--&amp;gt;&lt;br /&gt;
*CFBGaitNBar int32(CFBNGaits)&lt;br /&gt;
Número de aguja a mapear&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:107--&amp;gt;&lt;br /&gt;
*CFBGaitNGait int32(CFBNGaits)&lt;br /&gt;
Indice de agujero en el cartón&lt;br /&gt;
&lt;br /&gt;
==== TAGS DRAFT DATA ==== &amp;lt;!--T:109--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:110--&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:111--&amp;gt;&lt;br /&gt;
*NumCourses int32&lt;br /&gt;
Numero de pasadas del dibujo sin tener en cuenta las repeticiones.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:112--&amp;gt;&lt;br /&gt;
*BarNeedle int16(NumCourses*NumBars)&lt;br /&gt;
Despazamientos medidos en agujas de las barras en cada pasada. Ordenados de la siguiente manera:&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;!--T:113--&amp;gt;&lt;br /&gt;
BarNeedle(0)              Desplazamiento barra 1 en la primera pasada.&lt;br /&gt;
   BarNeedle(1)              Desplazamiento barra 1 en la segunda pasada.&lt;br /&gt;
   .&lt;br /&gt;
   .&lt;br /&gt;
   BarNeedle(NumCourses-1)   Desplazamiento barra 1 en la última pasada.&lt;br /&gt;
   BarNeedle(NumCourses)     Desplazamiento barra 2 en la primera pasada.&lt;br /&gt;
   .&lt;br /&gt;
   .&lt;br /&gt;
   BarNeedel(NumCourses*2-1) Desplazamiento barra 2 en la última pasada.&lt;br /&gt;
   BarNeedle(NumCourses)     Desplazamiento barra 3 en la primera pasada.&lt;br /&gt;
   .&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:114--&amp;gt;&lt;br /&gt;
*BarNeedleB int16(NumCourses*NumBars)&lt;br /&gt;
Solo se utiliza en maquinas de doble frontura. Es equivalente a BarNeedle pero contiene la información&lt;br /&gt;
para la segunda frontura.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:115--&amp;gt;&lt;br /&gt;
*BarHalves byte(NumCourses*NumBars)&lt;br /&gt;
Incremento de 1/2 aguja en el movimiento de la barra introducido manualmente por el diseñador desde el menú de Bareme&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:116--&amp;gt;&lt;br /&gt;
*BarKnitting byte(NumCourses*NumBars)&lt;br /&gt;
Indica en las maquinas que hacen 2 movimientos por pasada que movimiento se realiza&lt;br /&gt;
Valores:&lt;br /&gt;
 0 : Movimiento 0 0 . No liga&lt;br /&gt;
 1 : Movimeinto 0 1 . Liga&lt;br /&gt;
 2 : Movimeinto 1 0 . Liga&lt;br /&gt;
 3 : Movimeinto 1 1 . No liga&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:117--&amp;gt;&lt;br /&gt;
*BarKnittingB byte(NumCourses*NumBars)&lt;br /&gt;
Solo se utiliza en maquinas de doble frontura. Es equivalente a BarKnitting pero contiene la información&lt;br /&gt;
para la segunda frontura.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:118--&amp;gt;&lt;br /&gt;
*Layout_JacqData byte(NumCourses*JacqNeedles*Jacquard)&lt;br /&gt;
Cada byte guarda un bit de Jacquard. Valores:&lt;br /&gt;
0: T&lt;br /&gt;
1: H&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:119--&amp;gt;&lt;br /&gt;
*Layout_FrontureData byte(NumCourses*JacqNeedles*Jacquard)&lt;br /&gt;
Solo se utiliza en maquinas de doble frontura. Es equivalente a Layout_JacqData pero contiene la información&lt;br /&gt;
para la segunda frontura.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:120--&amp;gt;&lt;br /&gt;
*Layout_WBData byte(NumCourses*JacqNeedles*Jacquard)&lt;br /&gt;
Solo se utiliza en maquinas CLIPTRONIC . Contiene los datos para la barra de Embrodery(WB) en el mismo formato que&lt;br /&gt;
Layout_JacqData.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:121--&amp;gt;&lt;br /&gt;
*LayoutCourNRepeats int32&lt;br /&gt;
Numero de repeticiones de pasadas. Las repeticiones de pasadas afectan por igual las barras de dibujo y el jacquard.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:122--&amp;gt;&lt;br /&gt;
*LayoutCourNLayouts int32&lt;br /&gt;
Numero de bloques de pasadas a repetir&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:123--&amp;gt;&lt;br /&gt;
*LayoutCourRepeat int32(LayoutCourNLayouts)&lt;br /&gt;
Numero de pasadas que contiene cada bloque a repetir&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:124--&amp;gt;&lt;br /&gt;
*LayoutCourWhich int32(LayoutCourNRepeats)&lt;br /&gt;
indice del bloque que a repetir&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:125--&amp;gt;&lt;br /&gt;
*LayoutCourTimes int32(LayoutCourNRepeats)&lt;br /&gt;
numero de veces que se ha de repetir el bloque. Ejemplo:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:126--&amp;gt;&lt;br /&gt;
Normalmente como los dibujos suelen ser bastante repetitivos, para ahorrar trabajo y memoria no se guardan todas las pasadas&lt;br /&gt;
del dibujo. En un dibujo como el siguiente :&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;!--T:127--&amp;gt;&lt;br /&gt;
+------------------------------------------------------------------------------------------+&lt;br /&gt;
    |  ,~.~._,~.~._,~.~._,~.~._,~.~._,~.~._,~.~.    ,~.~._,~.~._,~.~._,~.~._,~.~._,~.~._,~.~.  | &lt;br /&gt;
    | / O.O   O.O   O.O   O.O   O.O   O.O   O.O \  / O.O   O.O   O.O   O.O   O.O   O.O   O.O \ | &lt;br /&gt;
    |( O:@:O O:@:O O:@:O O:@:O O:@:O O:@:O O:@:O )( O:@:O O:@:O O:@:O O:@:O O:@:O O:@:O O:@:O )| &lt;br /&gt;
    | \ O&#039;O   O&#039;O   O&#039;O   O&#039;O   O&#039;O   O&#039;O   O&#039;O /  \ O&#039;O   O&#039;O   O&#039;O   O&#039;O   O&#039;O   O&#039;O   O&#039;O / | &lt;br /&gt;
    |  )   . ,   . ,   . ,   . ,   . ,   . ,   (    )   . ,   . ,   . ,   . ,   . ,   . ,   (  | &lt;br /&gt;
/\  | (  * -@- * -@- * -@- * -@- * -@- * -@- *  )  (  * -@- * -@- * -@- * -@- * -@- * -@- *  ) | &lt;br /&gt;
 A  |  )   &#039; `   &#039; `   &#039; `   &#039; `   &#039; `   &#039; `   (    )   &#039; `   &#039; `   &#039; `   &#039; `   &#039; `   &#039; `   (  | &lt;br /&gt;
 g  | / O.O   O.O   O.O   O.O   O.O   O.O   O.O \  / O.O   O.O   O.O   O.O   O.O   O.O   O.O \ | &lt;br /&gt;
 u  |( O:@:O O:@:O O:@:O O:@:O O:@:O O:@:O O:@:O )( O:@:O O:@:O O:@:O O:@:O O:@:O O:@:O O:@:O )| &lt;br /&gt;
 j  | \ O&#039;O   O&#039;O   O&#039;O   O&#039;O   O&#039;O   O&#039;O   O&#039;O /  \ O&#039;O   O&#039;O   O&#039;O   O&#039;O   O&#039;O   O&#039;O   O&#039;O / | &lt;br /&gt;
 a  |  ·~·~·^·~·~·^·~·~·^·~·~·^·~·~·^·~·~·^·~·~·    ·~·~·^·~·~·^·~·~·^·~·~·^·~·~·^·~·~·^·~·~·  | &lt;br /&gt;
 s  +------------------------------------------------------------------------------------------+&lt;br /&gt;
     Pasadas &amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:128--&amp;gt;&lt;br /&gt;
Si se mira lo que hay guardado en el archivo se encontraría algo similar a :&lt;br /&gt;
                     &lt;br /&gt;
    +---------------+&lt;br /&gt;
    |  ,~.~._,~.~.  |&lt;br /&gt;
    | / O.O   O.O \ |&lt;br /&gt;
    |( O:@:O O:@:O )|&lt;br /&gt;
    | \ O&#039;O   O&#039;O / |&lt;br /&gt;
    |  )   . ,   (  |&lt;br /&gt;
/\  | (  * -@- *  ) | &lt;br /&gt;
 A  |  )   &#039; `   (  |&lt;br /&gt;
 g  | / O.O   O.O \ |&lt;br /&gt;
 u  |( O:@:O O:@:O )|&lt;br /&gt;
 j  | \ O&#039;O   O&#039;O / |&lt;br /&gt;
 a  |  ·~·~·^·~·~·  |&lt;br /&gt;
 s  +---------------+&lt;br /&gt;
     Pasadas &amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:129--&amp;gt;&lt;br /&gt;
Esto pasa por que se ha guardado solo una vez cada bloque que se repite. En este caso los bloques que se han usado:&lt;br /&gt;
&lt;br /&gt;
     &amp;lt;!--T:130--&amp;gt;&lt;br /&gt;
A      B        C&lt;br /&gt;
  +----+ +------+ +-----+&lt;br /&gt;
  |  ,~| |.~._,~| |.~.  | &lt;br /&gt;
  | / O| |.O   O| |.O \ | &lt;br /&gt;
  |( O:| |@:O O:| |@:O )| &lt;br /&gt;
  | \ O| |&#039;O   O| |&#039;O / | &lt;br /&gt;
  |  ) | |  . , | |  (  | &lt;br /&gt;
  | (  | |* -@- | |*  ) |&lt;br /&gt;
  |  ) | |  &#039; ` | |  (  | &lt;br /&gt;
  | / O| |.O   O| |.O \ | &lt;br /&gt;
  |( O:| |@:O O:| |@:O )|&lt;br /&gt;
  | \ O| |&#039;O   O| |&#039;O / |  &lt;br /&gt;
  |  ·~| |·~·^·~| |·~·  | &lt;br /&gt;
  +----+ +------+ +-----+&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:131--&amp;gt;&lt;br /&gt;
Se puede ver con facilidad que la sequencia de bloques para obtener el dibujo es: A B B B B B B C A B B B B B B C&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:132--&amp;gt;&lt;br /&gt;
LayoutCourNLayouts=3 pues hay tres bloques distintos ( A , B , C )&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:133--&amp;gt;&lt;br /&gt;
LayoutCourRepeat=Array(&lt;br /&gt;
   numero de pasadas de A,&lt;br /&gt;
   numero de pasadas de B,&lt;br /&gt;
   numero de pasadas de C&lt;br /&gt;
)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:134--&amp;gt;&lt;br /&gt;
NOTA: El número total de pasadas ha de ser igual a la suma de pasadas de los bloques de repeticiones. Es decir:&lt;br /&gt;
NumCourses=LayoutCourRepeat(0)+...+LayoutCourRepeat(LayoutCourNLayouts-1)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:135--&amp;gt;&lt;br /&gt;
Luego para codificar que se desea 1 repetición de A, 6 repeticiones de B y una repeticion de C se haria de la siguiente manera:&lt;br /&gt;
&lt;br /&gt;
                         &amp;lt;!--T:136--&amp;gt;&lt;br /&gt;
idx  |  LayoutCourWhich | LayoutCourTimes | Significado&lt;br /&gt;
                      --------+------------------+-----------------+------------------&lt;br /&gt;
                        _     |                  |                 |&lt;br /&gt;
                       /  0   |         1        |       1         | Bloque 1 (A) repetir una vez&lt;br /&gt;
                       |      |                  |                 |&lt;br /&gt;
                       |  1   |         2        |       6         | Bloque 2 (B) repetir 6 veces&lt;br /&gt;
                       |      |                  |                 |&lt;br /&gt;
                       |  2   |         3        |       1         | Bloque 3 (C) repetir una vez&lt;br /&gt;
LayoutCourNRepeats=6  &amp;lt;       |                  |                 |&lt;br /&gt;
                       |  3   |         1        |       1         | Bloque 1 (A) repetir una vez&lt;br /&gt;
                       |      |                  |                 |&lt;br /&gt;
                       |  4   |         2        |       6         | Bloque 2 (B) repetir 6 veces&lt;br /&gt;
                       |      |                  |                 |&lt;br /&gt;
                       \_ 5   |         3        |       1         | Bloque 3 (C) repetir una vez&lt;br /&gt;
                              |                  |                 |&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:137--&amp;gt;&lt;br /&gt;
*LayoutJacqNRepeats int32&lt;br /&gt;
Numero de repeticiones de agujas. Solo afecta el jacquard. Sigue el mismo sistema que las repeticiones de pasadas.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:138--&amp;gt;&lt;br /&gt;
*LayoutJacqNLayouts int32&lt;br /&gt;
Numero de bloques de agujas a repetir&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:139--&amp;gt;&lt;br /&gt;
*LayoutJacqRepeat int32(LayoutJacqNLayouts)&lt;br /&gt;
Numero de agujas que contiene cada bloque a repetir&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:140--&amp;gt;&lt;br /&gt;
*LayoutJacqWhich int32(LayoutJacqNRepeats)&lt;br /&gt;
indice del bloque que a repetir&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:141--&amp;gt;&lt;br /&gt;
*LayoutJacqTimes int32(LayoutJacqNRepeats)&lt;br /&gt;
numero de veces que se ha de repetir el bloque.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:142--&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;/div&gt;</summary>
		<author><name>Pascual</name></author>
	</entry>
	<entry>
		<id>https://wiki.cadt.com/index.php?title=Drf-reader&amp;diff=3158</id>
		<title>Drf-reader</title>
		<link rel="alternate" type="text/html" href="https://wiki.cadt.com/index.php?title=Drf-reader&amp;diff=3158"/>
		<updated>2016-10-05T17:19:25Z</updated>

		<summary type="html">&lt;p&gt;Pascual: /* DLL_EXPORTS */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;languages/&amp;gt;&lt;br /&gt;
[[Category:SAPO]]&lt;br /&gt;
[[Category:Devel]]&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== DLL_EXPORTS === &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;void drf_clear_errors()&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Descr:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:1--&amp;gt;&lt;br /&gt;
Borra todos los mensajes de error producidos por la librería.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;int drf_get_num_errors()&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Descr:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:2--&amp;gt;&lt;br /&gt;
Obtiene el número de mensajes de error producidos por la librería.&lt;br /&gt;
&lt;br /&gt;
Return:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:3--&amp;gt;&lt;br /&gt;
Número de mensajes almacenados.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;const char* drf_get_error(int idx)&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Descr:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:4--&amp;gt;&lt;br /&gt;
Obtiene el mensaje de error indicado por idx (referenciado a 0).&lt;br /&gt;
&lt;br /&gt;
Params:&lt;br /&gt;
&lt;br /&gt;
idx:&lt;br /&gt;
&amp;lt;!--T:5--&amp;gt;&lt;br /&gt;
Número de mensaje a obtener. Rango entre: 0 y (drf_get_num_errors()-1) ambos incluidos.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:6--&amp;gt;&lt;br /&gt;
Return:&lt;br /&gt;
&lt;br /&gt;
Éxito: Puntero a una cadena de caracteres ASCII terminada por el byte NUL (&#039;\0&#039;)&lt;br /&gt;
&lt;br /&gt;
Error: NULL en caso que el valor de idx esté fuera de rango.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;int drf_to_json(char *path,FILE *json,int options)&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Descr:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:7--&amp;gt;&lt;br /&gt;
Serializa a JSON un archivo en formato DRF.&lt;br /&gt;
&lt;br /&gt;
Params:&lt;br /&gt;
&lt;br /&gt;
path:&lt;br /&gt;
Ruta al fichero DRF a serializar en formato Windows ANSI.&lt;br /&gt;
&lt;br /&gt;
json:&lt;br /&gt;
puntero FILE ya abierto y con la escritura habilitada.&lt;br /&gt;
&lt;br /&gt;
options:&lt;br /&gt;
&amp;lt;!--T:8--&amp;gt;&lt;br /&gt;
Selecciona que información se serializará. Valores possibles:&lt;br /&gt;
&lt;br /&gt;
   DRF_GET_GENERIC_INFO&lt;br /&gt;
   DRF_GET_MACHINE_INFO&lt;br /&gt;
   DRF_GET_DRAFT_INFO&lt;br /&gt;
   DRF_GET_ALL_INFO&lt;br /&gt;
&lt;br /&gt;
o una combinación de los valores anteriores (OR)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:9--&amp;gt;&lt;br /&gt;
Return:&lt;br /&gt;
&lt;br /&gt;
Éxito : retorna valor igual a 0&lt;br /&gt;
&lt;br /&gt;
Error : retorna valor diferente de 0&lt;br /&gt;
&lt;br /&gt;
=== TAGS ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:11--&amp;gt;&lt;br /&gt;
Codificación a JSON de los datos:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:12--&amp;gt;&lt;br /&gt;
Internamente el DRF guarda la información como una lista de tags. Cada tag puede contener uno o varios elementos del mismo tipo.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:13--&amp;gt;&lt;br /&gt;
Al codificar un DRF a JSON se codifica como un objeto donde se usa el nombre del tag como clave y el contenido de éste como valor.&lt;br /&gt;
En caso que el tag pueda contener más de un valor, la librería serializa el contenido como un vector.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:14--&amp;gt;&lt;br /&gt;
Como el formato DRF soporta más tipos que el JSON, la librería los convertirá a un tipo soportado por el JSON. La siguiente tabla muestra a que &lt;br /&gt;
tipo del JSON se convierte cada tipo del DRF &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    DRF  | JSON   &lt;br /&gt;
  -------+--------&lt;br /&gt;
  byte   | &lt;br /&gt;
  int16  | int&lt;br /&gt;
  int32  |&lt;br /&gt;
  -------+-------&lt;br /&gt;
  float  | float&lt;br /&gt;
  -------+-------&lt;br /&gt;
  string | string*&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:16--&amp;gt;&lt;br /&gt;
*) Todos los strings contienen solo caracteres ASCII (encoding:ASCII-7)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== TAGS GENERIC INFO ==== &amp;lt;!--T:17--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:18--&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:19--&amp;gt;&lt;br /&gt;
*Software string&lt;br /&gt;
Nombre del programa que ha generado el fichero .DRF&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:20--&amp;gt;&lt;br /&gt;
*DrawName string&lt;br /&gt;
Referencia del dibujo (max. 256 carac).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:21--&amp;gt;&lt;br /&gt;
*Company string&lt;br /&gt;
Compañía que ha creado el dibujo (max. 30 carac).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:22--&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== TAGS MACHINE INFO ==== &amp;lt;!--T:23--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:25--&amp;gt;&lt;br /&gt;
*Machine string&lt;br /&gt;
Referencia de la máquina. (max. 30 carac) &lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:26--&amp;gt;&lt;br /&gt;
*MachineType string&lt;br /&gt;
Modelo de la máquina. Sólo es válido un modelo definido en el sistema de diseño. (p.e. LEAVERS)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:27--&amp;gt;&lt;br /&gt;
*Description string&lt;br /&gt;
Descripción o información adicional de la máquina.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:28--&amp;gt;&lt;br /&gt;
*Serial string&lt;br /&gt;
Num. serie de la máquina. (max. 30 carac) . Puede contener carácteres no numéricos.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:29--&amp;gt;&lt;br /&gt;
*Version int32 [RASCHEL SU]&lt;br /&gt;
Versión de la máquina raschel SU (versión 1 .. 4).&lt;br /&gt;
   versión 1 . Sin ahorrador de memoria&lt;br /&gt;
   versión 2 . Con ahorrador de memoria (repeticiones)&lt;br /&gt;
   versión 3 . Sin ahorrador de memoria + información empresa.&lt;br /&gt;
   versión 4 . Con ahorrador de memoria (repeciciones) + información empresa.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:30--&amp;gt;&lt;br /&gt;
*Jacquard int32&lt;br /&gt;
Número de barras de Jacquard independientes. Valores posibles: &lt;br /&gt;
   0 : No jacquard&lt;br /&gt;
   1 : 1 jacquard o fina barra simple&lt;br /&gt;
   2 : 2 jacquard raschel o fina barra doble.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:31--&amp;gt;&lt;br /&gt;
*Fronture int32 [RASCHEL DOUBLE NEEDLE BAR]&lt;br /&gt;
Número de fonturas de la máquina&lt;br /&gt;
   1 : 1 fontura&lt;br /&gt;
   2 : 2 fontures (delante / detrás)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:32--&amp;gt;&lt;br /&gt;
*BarsRepeat int32&lt;br /&gt;
Altura del diseño.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:33--&amp;gt;&lt;br /&gt;
*NumRepeats int32&lt;br /&gt;
Num de repeticiones en el diseño.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:34--&amp;gt;&lt;br /&gt;
*NumBars int32&lt;br /&gt;
Numero de barras que tiene el telar.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:35--&amp;gt;&lt;br /&gt;
*Plate int32&lt;br /&gt;
En máquinas raschel (textronic), indica la posición de la plancha.&lt;br /&gt;
En máquinas leavers indica donde empiezan los brodeurs.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:36--&amp;gt;&lt;br /&gt;
*JacqNeedles int32&lt;br /&gt;
Numero de agujas de Jacquard del telar.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:37--&amp;gt;&lt;br /&gt;
*MachNeedles int32&lt;br /&gt;
Numero total de agujas del telar.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:38--&amp;gt;&lt;br /&gt;
*BarsOffset int32&lt;br /&gt;
Desplazamiento de barras (orillos=zona perdida)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:39--&amp;gt;&lt;br /&gt;
*JacqOffset int32&lt;br /&gt;
Deplazamiento de las agujas de jacquard en el telar.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:40--&amp;gt;&lt;br /&gt;
*MaxDisp int32 [RASCHEL SU]&lt;br /&gt;
Deplazamiento máximo general de las barras para máquinas raschel SU.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:41--&amp;gt;&lt;br /&gt;
*Proximity int32&lt;br /&gt;
Para máquinas raschel, distáncia máxima a la que se pueden acercar dos barras del mismo grupo.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:42--&amp;gt;&lt;br /&gt;
*ProximityCollindant int32&lt;br /&gt;
Para máquinas raschel, distáncia máxima a la que se pueden acercar dos barras del mismo grupo colindantes.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:43--&amp;gt;&lt;br /&gt;
*JacqRt int32&lt;br /&gt;
Deplazamiento Rt del jacquard:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:44--&amp;gt;&lt;br /&gt;
para máquinas raschel:&lt;br /&gt;
   no jacquard: rt = 0&lt;br /&gt;
   jacquard simple o doble: rt = 1&lt;br /&gt;
Indica cuántas agujas se desplaza la lectura del jacaquard en las pasadas alternadas.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:45--&amp;gt;&lt;br /&gt;
para máquinas leavers&lt;br /&gt;
   no fina barra:      0&lt;br /&gt;
   fina barra simple: -1&lt;br /&gt;
   fina barra doble:   0&lt;br /&gt;
Indica cuántas agujas se desplaza la lectura del jacquard (desde la posición derecha de la máquina en las pasadas alternadas).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:46--&amp;gt;&lt;br /&gt;
*JacqRtCourse int32&lt;br /&gt;
Indica que pasadas se aplica el valor JacqRt.&lt;br /&gt;
   0:pasadas pares&lt;br /&gt;
   1: pasadas impares&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:47--&amp;gt;&lt;br /&gt;
*FinalGauge float&lt;br /&gt;
Galga de producto tejido aplicando encongimiento (medida en agujas/pulgada)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:48--&amp;gt;&lt;br /&gt;
*FinalQuality float&lt;br /&gt;
Calidad de producto tejido aplicando elasticidad (medida en pasadas/centímetro).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:49--&amp;gt;&lt;br /&gt;
*RealGauge float&lt;br /&gt;
Galga de máquina (medida en agujas/pulgada)-&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:50--&amp;gt;&lt;br /&gt;
*RealQuality float&lt;br /&gt;
Calidad de máquina (medida en pasadas/centímetro).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:51--&amp;gt;&lt;br /&gt;
*Shrinkage float&lt;br /&gt;
Porcentage de encongimiento en agujas (0-100%)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:52--&amp;gt;&lt;br /&gt;
*Elasticity float&lt;br /&gt;
Porcentage de elasticidad en pasadas (0-100%)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:53--&amp;gt;&lt;br /&gt;
*BarNumBar int32(NumBars)&lt;br /&gt;
Numero de cada una de las barras del telar (valor numérico consecutivo)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:54--&amp;gt;&lt;br /&gt;
*BarName string(NumBars)&lt;br /&gt;
Nombre o identificador de cada una de las barras del telar&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:55--&amp;gt;&lt;br /&gt;
*BarGroup int32(NumBars)&lt;br /&gt;
En máquinas raschel el número de grupo de la barra.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:56--&amp;gt;&lt;br /&gt;
*BarStop int32(NumBars)&lt;br /&gt;
Posición 0 de la barra.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:57--&amp;gt;&lt;br /&gt;
*BarUtil int32(NumBars)&lt;br /&gt;
Visibilidad de la barra en el sistema de diseño.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:58--&amp;gt;&lt;br /&gt;
*BarType int32(NumBars)&lt;br /&gt;
Tipo de hilo por defecto de la barra.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:59--&amp;gt;&lt;br /&gt;
*BarMaxGimp int32&lt;br /&gt;
Guimpada máxima en agujas de la barra.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:60--&amp;gt;&lt;br /&gt;
*BarDrive int32&lt;br /&gt;
En máquinas raschel SU, el número de getribe de la barra.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:61--&amp;gt;&lt;br /&gt;
*BarFactor int32&lt;br /&gt;
En máquinas raschel SU, multiplicador de la barra.&lt;br /&gt;
1: factor de 1 agulla&lt;br /&gt;
2: factor de 2 agulles,&lt;br /&gt;
4: factor de 4 agulles.&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:62--&amp;gt;&lt;br /&gt;
*BarInvert int32&lt;br /&gt;
En máquinas raschel SU, les barres invertides. &lt;br /&gt;
1: barra invertida.&lt;br /&gt;
0: barra no invertida.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:63--&amp;gt;&lt;br /&gt;
*BarWork int32&lt;br /&gt;
Trabajo de la barra en el sistema de diseño.&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;!--T:64--&amp;gt;&lt;br /&gt;
0: Chainette&lt;br /&gt;
   1: Jacquard     [1]&lt;br /&gt;
   2: Brodeur&lt;br /&gt;
   3: Gros&lt;br /&gt;
   4: Fin&lt;br /&gt;
   5: Brillant&lt;br /&gt;
   6: Picot&lt;br /&gt;
   7: Corde&lt;br /&gt;
   8: Lycra&lt;br /&gt;
   9: Fond&lt;br /&gt;
  10: Bloc&lt;br /&gt;
  11: Cord&lt;br /&gt;
  12: Guimp&lt;br /&gt;
  13: Nul&lt;br /&gt;
  14: Jacq 0/2,6/4 [1]&lt;br /&gt;
  15: Jacq 0/2,8/6 [1]&lt;br /&gt;
  16: Fine Bar.  [sup]&lt;br /&gt;
  17: Braquette&amp;quot;&lt;br /&gt;
  18: Jacquard     [2]&lt;br /&gt;
  19: Jacq 0/2,6/4 [2]&lt;br /&gt;
  20: Jacq 0/2,8/6 [2]&lt;br /&gt;
  21: Fine Bar.  [inf]&lt;br /&gt;
  22: Jacquard&lt;br /&gt;
  23: Fine Barre&lt;br /&gt;
  24: Fallplate&lt;br /&gt;
  25: Embrodery&lt;br /&gt;
  26: EFS&lt;br /&gt;
  27: Reservé 1&lt;br /&gt;
  28: Reservé 2&lt;br /&gt;
  29: Jacq 0/2,6/4&lt;br /&gt;
  30: Jacq 0/2,8/6&lt;br /&gt;
  31: Bord&lt;br /&gt;
  32: Lisieres&lt;br /&gt;
  33: Romaines&lt;br /&gt;
  34: Sonnette&lt;br /&gt;
  35: Guimp devant&lt;br /&gt;
  36: Petite Corde&lt;br /&gt;
  37: Fileur&lt;br /&gt;
  38: Separation&lt;br /&gt;
  39: Corde Termo&lt;br /&gt;
  40: Solv rom&lt;br /&gt;
  41: Vis&lt;br /&gt;
  42: Jacquard     [3]&lt;br /&gt;
  43: Jacquard     [4]&lt;br /&gt;
  44: Space Fabric&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:65--&amp;gt;&lt;br /&gt;
*BarKnit&lt;br /&gt;
En máquines raschel textronic tipous de lligada:&lt;br /&gt;
  0 : no planxa&lt;br /&gt;
  1 : lligada 1 (mecanica)&lt;br /&gt;
  2 : lligada 2 (binaria)&lt;br /&gt;
  3 : lligada 3 (mecánica (2))&lt;br /&gt;
  4 : lligada 4 (binària (2))&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:66--&amp;gt;&lt;br /&gt;
*BarTimes&lt;br /&gt;
En máquines raschel textonic temps de la lligada&lt;br /&gt;
  0 : no planxa&lt;br /&gt;
  2 : temps 2 (p.e) 0202 0202 0202&lt;br /&gt;
  4 : temps 4 (p.e) 0220 0220 0220&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:67--&amp;gt;&lt;br /&gt;
*BarMode&lt;br /&gt;
En máquines raschel textronic el mode la la barra:&lt;br /&gt;
  0 : mode A (p.e 0220)&lt;br /&gt;
  1 : mode B (p.e 2002)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:68--&amp;gt;&lt;br /&gt;
*BarModif int32&lt;br /&gt;
En máquines raschel textronic indica que la barra no es pot deslligar&lt;br /&gt;
  0 : no es pot deslligar&lt;br /&gt;
  1 : si es pot deslligar&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:69--&amp;gt;&lt;br /&gt;
*BarTension int32&lt;br /&gt;
Tensió de la barra a les simulacions.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:70--&amp;gt;&lt;br /&gt;
*BarNumFingers int32(NumBars)&lt;br /&gt;
Número de pasadors de la barra&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:71--&amp;gt;&lt;br /&gt;
*BarModeDrop int32(NumBars)&lt;br /&gt;
Ponderación de cada uno de los 7 bits que se usan para indicar el desplazamiento de la barra. Valores:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;!--T:72--&amp;gt;&lt;br /&gt;
Valor | B7 | B6 | B5 | B4 | B3 | B2 | B1&lt;br /&gt;
 ------+----+----+----+----+----+----+----&lt;br /&gt;
    0  |  8 |  8 |  8 |  4 |  2 |  1 |1/2&lt;br /&gt;
 ------+----+----+----+----+----+----+----&lt;br /&gt;
    1  | 16 |  8 |  8 |  4 |  2 |  1 |1/2&lt;br /&gt;
 ------+----+----+----+----+----+----+----&lt;br /&gt;
    2  | 16 | 16 |  8 |  4 |  2 |  1 |1/2&lt;br /&gt;
 ------+----+----+----+----+----+----+----&lt;br /&gt;
    3  | 32 | 16 |  8 |  4 |  2 |  1 |1/2&lt;br /&gt;
 ------+----+----+----+----+----+----+----&lt;br /&gt;
    4  |  8 |  8 |  8 |  8 |  4 |  2 | 1&lt;br /&gt;
 ------+----+----+----+----+----+----+----&lt;br /&gt;
    5  | 16 |  8 |  8 |  8 |  4 |  2 | 1&lt;br /&gt;
 ------+----+----+----+----+----+----+----&lt;br /&gt;
    6  |  4 |  4 |  4 |  4 |  2 |  1 | 1&lt;br /&gt;
 ------+----+----+----+----+----+----+----&lt;br /&gt;
    7  |  0 |  0 |  0 |  1 |  2 |  1 |1/2&lt;br /&gt;
 ------+----+----+----+----+----+----+----&lt;br /&gt;
    8  |  4 |  4 |  4 |  4 |  2 |  1 |1/2&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:73--&amp;gt;&lt;br /&gt;
*BarMaxDesp int32(NumBars)&lt;br /&gt;
Desplazamiento máximo de la barra en agujas&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:74--&amp;gt;&lt;br /&gt;
*BarActive byte(NumBars)&lt;br /&gt;
Sólo para maquinas EL. Indica si la barra esta en uso o no.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:75--&amp;gt;&lt;br /&gt;
*BarHalvesUp byte(NumBars)&lt;br /&gt;
Si en la pasada se incrementa la posición de la barra en BarHalvesUp agujas o más, entonces , se añade media aguja a la posición final.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:76--&amp;gt;&lt;br /&gt;
*BarHalvesDn byte(NumBars)&lt;br /&gt;
Si en la pasada se decrementa la posición de la barra en BarHalvesDwn agujas o más, entonces , se le resta media aguja a la posición final.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:77--&amp;gt;&lt;br /&gt;
*BarString int32(NumBars)&lt;br /&gt;
Valors:&lt;br /&gt;
0:&lt;br /&gt;
1:ple&lt;br /&gt;
2:1f 1x&lt;br /&gt;
3:1x 1f&lt;br /&gt;
4:buit&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:78--&amp;gt;&lt;br /&gt;
*BarFronture int32(NumBars)&lt;br /&gt;
Solo se usa en las máquinas de doble frontura. Da la frontura en la que empieza a trabajar la barra.Valores:&lt;br /&gt;
0: primera forntura&lt;br /&gt;
1: segunda frontura&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:79--&amp;gt;&lt;br /&gt;
*BarDropsUtil int32(7*NumBars)&lt;br /&gt;
indica como se deben perforar los 7 posiciones correspondientes a la barra:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:80--&amp;gt;&lt;br /&gt;
Valor:&lt;br /&gt;
0: Usado. Siempre a 1. Es decir: no perforar nunca&lt;br /&gt;
1: Usado, Se perforara o no en funcion del desplazamiento de la barra&lt;br /&gt;
2: Usado. Siemre a 0. Es decir, se perfora siempre&lt;br /&gt;
3: No usado. No se perfora&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:81--&amp;gt;&lt;br /&gt;
*FingerStop int32(num_fingers) num_fingers=BarNumFingers(0) + ... + BarNumFingers(NumBars-1)&lt;br /&gt;
Stop del pasador relativo al stop de la barra.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:82--&amp;gt;&lt;br /&gt;
*FingerType int32(num_fingers) num_fingers=BarNumFingers(0) + ... + BarNumFingers(NumBars-1)&lt;br /&gt;
Tipo de pasador.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:83--&amp;gt;&lt;br /&gt;
*CGF1Card int32&lt;br /&gt;
ha de estar a 0.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:84--&amp;gt;&lt;br /&gt;
*CGF1Type int32&lt;br /&gt;
Número de columnas útiles en el cartón.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:85--&amp;gt;&lt;br /&gt;
*CGF1Taille int32&lt;br /&gt;
Número de columnas totales que caben del cartón.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:86--&amp;gt;&lt;br /&gt;
*CGF1Numlines int32&lt;br /&gt;
numero de entradas de las que consta la especificación del cartón.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:87--&amp;gt;&lt;br /&gt;
*CGF1Script string(CGF1Numlines)&lt;br /&gt;
Lista de cadenas de caracteres que detallan como se ha de perforar  cada columna del cartón empezando por la columna de mas a la derecha.&lt;br /&gt;
Cada cadena de caracteres tiene el formato: &amp;lt;codigo de tipo&amp;gt; &amp;lt;espacio&amp;gt; &amp;lt;numero de repeticiones&amp;gt;. Ex: &amp;quot;LC 1&amp;quot;.&lt;br /&gt;
Los codigos de tipo validos son:&lt;br /&gt;
   LC: Laçage&lt;br /&gt;
   TC: Trou de centrage&lt;br /&gt;
   TS: Trou de centrage simple&lt;br /&gt;
   EL: Element vide&lt;br /&gt;
   GF: Gros fil&lt;br /&gt;
   VB: Value&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:88--&amp;gt;&lt;br /&gt;
*CGF1Descrip string(CGF1Numlines)&lt;br /&gt;
Descripción de cada entada del cartón.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:89--&amp;gt;&lt;br /&gt;
Ex:&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;!--T:90--&amp;gt;&lt;br /&gt;
CGF1Script | CGF1Descrip&lt;br /&gt;
 ------------+--------------&lt;br /&gt;
   &amp;quot;LC 1&amp;quot;    |  &amp;quot;Laçage&amp;quot;&lt;br /&gt;
   &amp;quot;TC 1&amp;quot;    |  &amp;quot;Trou de centrage&amp;quot;&lt;br /&gt;
   &amp;quot;GF 6&amp;quot;    |  &amp;quot;braquettes&amp;quot;  &lt;br /&gt;
   &amp;quot;GF 4&amp;quot;    |  &amp;quot;stum&amp;quot;                                                                                                      &lt;br /&gt;
   &amp;quot;GF 30&amp;quot;   |  &amp;quot;guimpes&amp;quot;                                                                                                    &lt;br /&gt;
   &amp;quot;TC 1&amp;quot;    |  &amp;quot;Trou de centrage&amp;quot;                                                                                            &lt;br /&gt;
   &amp;quot;LC 1&amp;quot;    |  &amp;quot;Laçage&amp;quot;                                                                                                       &lt;br /&gt;
   &amp;quot;GF 26&amp;quot;   |  &amp;quot;guimpes&amp;quot;                                                                                                &lt;br /&gt;
   &amp;quot;GF 4&amp;quot;    |  &amp;quot;stum&amp;quot;                                                                                                   &lt;br /&gt;
   &amp;quot;GF 6&amp;quot;    |  &amp;quot;braquettes&amp;quot;                                                                                               &lt;br /&gt;
   &amp;quot;GF 3&amp;quot;    |  &amp;quot;brodeus&amp;quot;                                                                                                  &lt;br /&gt;
   &amp;quot;TC 1&amp;quot;    |  &amp;quot;Trou de centrage&amp;quot;                                                                                         &lt;br /&gt;
   &amp;quot;LC 1&amp;quot;    |  &amp;quot;Laçage&amp;quot;                                                                                                      &lt;br /&gt;
   &amp;quot;GF 39&amp;quot;   |  &amp;quot;brodeus&amp;quot;                                                                                                 &lt;br /&gt;
   &amp;quot;TC 1&amp;quot;    |  &amp;quot;Trou de centrage&amp;quot;                                                                                           &lt;br /&gt;
   &amp;quot;LC 1&amp;quot;    |  &amp;quot;Laçage&amp;quot;                                                                                                    &lt;br /&gt;
                                                                                                                           &lt;br /&gt;
&amp;lt;div style=&amp;quot;font-size:7pt;color:blue;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;                                                                                                                          &lt;br /&gt;
  L T                GF39                   L T G   GF6  GF4          GF26            L T               GF30           GF4  GF6  T L&lt;br /&gt;
  C C _____________________________________ C C F  ____  __  ________________________ C C ____________________________  __  ____ C C&lt;br /&gt;
  1 1/                                     \1 1/3\/    \/  \/                        \1 1/                            \/  \/    \1 1&lt;br /&gt;
/------------------------------------------------------------------------------------------------------------------------------------\&lt;br /&gt;
|    OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO.  OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO.  OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO    |&lt;br /&gt;
| O  .O.O.O.OOOOOOO.OOO.OOOOOO.O.O.OOOOOOOOOO  OOOOOOOOOOO..O..OO...O.OO.....O..O..OOOO  OO...O...OOO.OOOOO...O.....O..OO..OOOOOO  O |&lt;br /&gt;
|    OOOOO.OO.O...OOO..O..OO.OO.OOOO.O..OO.O.  OOOOOO...OOOO.O.OOOO..O.OO.OOO..O.O.O...  ..OOO.OO..O.OO....O.O..O.OOOOOOOOOOOO...    |&lt;br /&gt;
|  ().OO.OO...OOOOOOOO.OO...O.OOOO..OO....O..()O..OOOOOOOOOOO.O....OO..O..OOO..OO.O.O..()OO.....OOO...OO..OO.O.OOO.OO.OOOOOOOOOOO()  |&lt;br /&gt;
|    ........................................  ...............OO..OO..O.......O........  ...........O...O...O.O...O...O..........    |&lt;br /&gt;
| O  .O....OO.O.O....O.O.OOO..O.O.OO.O..OOO.O  ..O...........OOO.OOO.OOOOOOO.OOO.OOO.OO  OOOOOOOOOOOOOOOOOOOO.OOOOOOOOO..........  O |&lt;br /&gt;
|    O.OOOOOOO.O.OOOO.O.OOOOOO.O.OOOO.OO.OOO.  OOO..........OOOOOOOOOOOOOOOOOOOOOOOOOO.  OOOOOOOOOOOOOOOOOOOOOOOOOOOOOO..........    |&lt;br /&gt;
\------------------------------------------------------------------------------------------------------------------------------------/    &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:91--&amp;gt;&lt;br /&gt;
*CGF2Card int32&lt;br /&gt;
ha de estar a 0.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:92--&amp;gt;&lt;br /&gt;
*CGF2Type int32&lt;br /&gt;
Número de columnas útiles en el cartón.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:93--&amp;gt;&lt;br /&gt;
*CGF2Taille int32&lt;br /&gt;
Número de columnas totales que caben del cartón.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:94--&amp;gt;&lt;br /&gt;
*CGF2Numlines int32&lt;br /&gt;
numero de entradas de las que consta la especificación del cartón.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:95--&amp;gt;&lt;br /&gt;
*CGF2Script string(CGF2Numlines)&lt;br /&gt;
Especificación del cartón. Formateado igual que CGF1Script.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:96--&amp;gt;&lt;br /&gt;
*CGF2Descrip string(CGF2Numlines)&lt;br /&gt;
Descripción de cada entada del cartón.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:97--&amp;gt;&lt;br /&gt;
*CFBCard int32&lt;br /&gt;
ha de estar a 1.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:98--&amp;gt;&lt;br /&gt;
*CFBType int32&lt;br /&gt;
Número de columnas útiles en el cartón.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:99--&amp;gt;&lt;br /&gt;
*CFBTaille int32&lt;br /&gt;
Número de columnas totales que caben del cartón multiplicadas por 8.Ex:&lt;br /&gt;
si el cartón tiene 75 columnas CFBTaille=75*8=600&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:100--&amp;gt;&lt;br /&gt;
*CFBNumlines int32&lt;br /&gt;
numero de entradas de las que consta la especificación del cartón.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:101--&amp;gt;&lt;br /&gt;
*CFBScript string(CFBNumlines)&lt;br /&gt;
Especificación del cartón. Formateado igual que CGF1Script. Excepto que los tipos aceptados&lt;br /&gt;
son:&lt;br /&gt;
   LC: Laçage&lt;br /&gt;
   TC: Trou de centrage&lt;br /&gt;
   TS: Trou de centrage simple&lt;br /&gt;
   EL: Element vide&lt;br /&gt;
   FB: Fine barre&lt;br /&gt;
   VB: Value&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:102--&amp;gt;&lt;br /&gt;
Es decir el tipo &amp;quot;GF&amp;quot; no existe para este tag y en su lugar hay el tipo &amp;quot;FB&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:103--&amp;gt;&lt;br /&gt;
*CFBDescrip string(CFBNumlines)&lt;br /&gt;
Descripción de cada entada del cartón.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:104--&amp;gt;&lt;br /&gt;
*CFBNGaits int32&lt;br /&gt;
Número de entradas para mapear las repeticiones de agujas de Fine Barre a los cartones en función de la repetición.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:105--&amp;gt;&lt;br /&gt;
*CFBGaitNRepeat int32(CFBNGaits)&lt;br /&gt;
Número de repetición a mapear&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:106--&amp;gt;&lt;br /&gt;
*CFBGaitNBar int32(CFBNGaits)&lt;br /&gt;
Número de aguja a mapear&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:107--&amp;gt;&lt;br /&gt;
*CFBGaitNGait int32(CFBNGaits)&lt;br /&gt;
Indice de agujero en el cartón&lt;br /&gt;
&lt;br /&gt;
==== TAGS DRAFT DATA ==== &amp;lt;!--T:109--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:110--&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:111--&amp;gt;&lt;br /&gt;
*NumCourses int32&lt;br /&gt;
Numero de pasadas del dibujo sin tener en cuenta las repeticiones.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:112--&amp;gt;&lt;br /&gt;
*BarNeedle int16(NumCourses*NumBars)&lt;br /&gt;
Despazamientos medidos en agujas de las barras en cada pasada. Ordenados de la siguiente manera:&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;!--T:113--&amp;gt;&lt;br /&gt;
BarNeedle(0)              Desplazamiento barra 1 en la primera pasada.&lt;br /&gt;
   BarNeedle(1)              Desplazamiento barra 1 en la segunda pasada.&lt;br /&gt;
   .&lt;br /&gt;
   .&lt;br /&gt;
   BarNeedle(NumCourses-1)   Desplazamiento barra 1 en la última pasada.&lt;br /&gt;
   BarNeedle(NumCourses)     Desplazamiento barra 2 en la primera pasada.&lt;br /&gt;
   .&lt;br /&gt;
   .&lt;br /&gt;
   BarNeedel(NumCourses*2-1) Desplazamiento barra 2 en la última pasada.&lt;br /&gt;
   BarNeedle(NumCourses)     Desplazamiento barra 3 en la primera pasada.&lt;br /&gt;
   .&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:114--&amp;gt;&lt;br /&gt;
*BarNeedleB int16(NumCourses*NumBars)&lt;br /&gt;
Solo se utiliza en maquinas de doble frontura. Es equivalente a BarNeedle pero contiene la información&lt;br /&gt;
para la segunda frontura.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:115--&amp;gt;&lt;br /&gt;
*BarHalves byte(NumCourses*NumBars)&lt;br /&gt;
Incremento de 1/2 aguja en el movimiento de la barra introducido manualmente por el diseñador desde el menú de Bareme&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:116--&amp;gt;&lt;br /&gt;
*BarKnitting byte(NumCourses*NumBars)&lt;br /&gt;
Indica en las maquinas que hacen 2 movimientos por pasada que movimiento se realiza&lt;br /&gt;
Valores:&lt;br /&gt;
 0 : Movimiento 0 0 . No liga&lt;br /&gt;
 1 : Movimeinto 0 1 . Liga&lt;br /&gt;
 2 : Movimeinto 1 0 . Liga&lt;br /&gt;
 3 : Movimeinto 1 1 . No liga&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:117--&amp;gt;&lt;br /&gt;
*BarKnittingB byte(NumCourses*NumBars)&lt;br /&gt;
Solo se utiliza en maquinas de doble frontura. Es equivalente a BarKnitting pero contiene la información&lt;br /&gt;
para la segunda frontura.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:118--&amp;gt;&lt;br /&gt;
*Layout_JacqData byte(NumCourses*JacqNeedles*Jacquard)&lt;br /&gt;
Cada byte guarda un bit de Jacquard. Valores:&lt;br /&gt;
0: T&lt;br /&gt;
1: H&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:119--&amp;gt;&lt;br /&gt;
*Layout_FrontureData byte(NumCourses*JacqNeedles*Jacquard)&lt;br /&gt;
Solo se utiliza en maquinas de doble frontura. Es equivalente a Layout_JacqData pero contiene la información&lt;br /&gt;
para la segunda frontura.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:120--&amp;gt;&lt;br /&gt;
*Layout_WBData byte(NumCourses*JacqNeedles*Jacquard)&lt;br /&gt;
Solo se utiliza en maquinas CLIPTRONIC . Contiene los datos para la barra de Embrodery(WB) en el mismo formato que&lt;br /&gt;
Layout_JacqData.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:121--&amp;gt;&lt;br /&gt;
*LayoutCourNRepeats int32&lt;br /&gt;
Numero de repeticiones de pasadas. Las repeticiones de pasadas afectan por igual las barras de dibujo y el jacquard.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:122--&amp;gt;&lt;br /&gt;
*LayoutCourNLayouts int32&lt;br /&gt;
Numero de bloques de pasadas a repetir&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:123--&amp;gt;&lt;br /&gt;
*LayoutCourRepeat int32(LayoutCourNLayouts)&lt;br /&gt;
Numero de pasadas que contiene cada bloque a repetir&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:124--&amp;gt;&lt;br /&gt;
*LayoutCourWhich int32(LayoutCourNRepeats)&lt;br /&gt;
indice del bloque que a repetir&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:125--&amp;gt;&lt;br /&gt;
*LayoutCourTimes int32(LayoutCourNRepeats)&lt;br /&gt;
numero de veces que se ha de repetir el bloque. Ejemplo:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:126--&amp;gt;&lt;br /&gt;
Normalmente como los dibujos suelen ser bastante repetitivos, para ahorrar trabajo y memoria no se guardan todas las pasadas&lt;br /&gt;
del dibujo. En un dibujo como el siguiente :&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;!--T:127--&amp;gt;&lt;br /&gt;
+------------------------------------------------------------------------------------------+&lt;br /&gt;
    |  ,~.~._,~.~._,~.~._,~.~._,~.~._,~.~._,~.~.    ,~.~._,~.~._,~.~._,~.~._,~.~._,~.~._,~.~.  | &lt;br /&gt;
    | / O.O   O.O   O.O   O.O   O.O   O.O   O.O \  / O.O   O.O   O.O   O.O   O.O   O.O   O.O \ | &lt;br /&gt;
    |( O:@:O O:@:O O:@:O O:@:O O:@:O O:@:O O:@:O )( O:@:O O:@:O O:@:O O:@:O O:@:O O:@:O O:@:O )| &lt;br /&gt;
    | \ O&#039;O   O&#039;O   O&#039;O   O&#039;O   O&#039;O   O&#039;O   O&#039;O /  \ O&#039;O   O&#039;O   O&#039;O   O&#039;O   O&#039;O   O&#039;O   O&#039;O / | &lt;br /&gt;
    |  )   . ,   . ,   . ,   . ,   . ,   . ,   (    )   . ,   . ,   . ,   . ,   . ,   . ,   (  | &lt;br /&gt;
/\  | (  * -@- * -@- * -@- * -@- * -@- * -@- *  )  (  * -@- * -@- * -@- * -@- * -@- * -@- *  ) | &lt;br /&gt;
 A  |  )   &#039; `   &#039; `   &#039; `   &#039; `   &#039; `   &#039; `   (    )   &#039; `   &#039; `   &#039; `   &#039; `   &#039; `   &#039; `   (  | &lt;br /&gt;
 g  | / O.O   O.O   O.O   O.O   O.O   O.O   O.O \  / O.O   O.O   O.O   O.O   O.O   O.O   O.O \ | &lt;br /&gt;
 u  |( O:@:O O:@:O O:@:O O:@:O O:@:O O:@:O O:@:O )( O:@:O O:@:O O:@:O O:@:O O:@:O O:@:O O:@:O )| &lt;br /&gt;
 j  | \ O&#039;O   O&#039;O   O&#039;O   O&#039;O   O&#039;O   O&#039;O   O&#039;O /  \ O&#039;O   O&#039;O   O&#039;O   O&#039;O   O&#039;O   O&#039;O   O&#039;O / | &lt;br /&gt;
 a  |  ·~·~·^·~·~·^·~·~·^·~·~·^·~·~·^·~·~·^·~·~·    ·~·~·^·~·~·^·~·~·^·~·~·^·~·~·^·~·~·^·~·~·  | &lt;br /&gt;
 s  +------------------------------------------------------------------------------------------+&lt;br /&gt;
     Pasadas &amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:128--&amp;gt;&lt;br /&gt;
Si se mira lo que hay guardado en el archivo se encontraría algo similar a :&lt;br /&gt;
                     &lt;br /&gt;
    +---------------+&lt;br /&gt;
    |  ,~.~._,~.~.  |&lt;br /&gt;
    | / O.O   O.O \ |&lt;br /&gt;
    |( O:@:O O:@:O )|&lt;br /&gt;
    | \ O&#039;O   O&#039;O / |&lt;br /&gt;
    |  )   . ,   (  |&lt;br /&gt;
/\  | (  * -@- *  ) | &lt;br /&gt;
 A  |  )   &#039; `   (  |&lt;br /&gt;
 g  | / O.O   O.O \ |&lt;br /&gt;
 u  |( O:@:O O:@:O )|&lt;br /&gt;
 j  | \ O&#039;O   O&#039;O / |&lt;br /&gt;
 a  |  ·~·~·^·~·~·  |&lt;br /&gt;
 s  +---------------+&lt;br /&gt;
     Pasadas &amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:129--&amp;gt;&lt;br /&gt;
Esto pasa por que se ha guardado solo una vez cada bloque que se repite. En este caso los bloques que se han usado:&lt;br /&gt;
&lt;br /&gt;
     &amp;lt;!--T:130--&amp;gt;&lt;br /&gt;
A      B        C&lt;br /&gt;
  +----+ +------+ +-----+&lt;br /&gt;
  |  ,~| |.~._,~| |.~.  | &lt;br /&gt;
  | / O| |.O   O| |.O \ | &lt;br /&gt;
  |( O:| |@:O O:| |@:O )| &lt;br /&gt;
  | \ O| |&#039;O   O| |&#039;O / | &lt;br /&gt;
  |  ) | |  . , | |  (  | &lt;br /&gt;
  | (  | |* -@- | |*  ) |&lt;br /&gt;
  |  ) | |  &#039; ` | |  (  | &lt;br /&gt;
  | / O| |.O   O| |.O \ | &lt;br /&gt;
  |( O:| |@:O O:| |@:O )|&lt;br /&gt;
  | \ O| |&#039;O   O| |&#039;O / |  &lt;br /&gt;
  |  ·~| |·~·^·~| |·~·  | &lt;br /&gt;
  +----+ +------+ +-----+&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:131--&amp;gt;&lt;br /&gt;
Se puede ver con facilidad que la sequencia de bloques para obtener el dibujo es: A B B B B B B C A B B B B B B C&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:132--&amp;gt;&lt;br /&gt;
LayoutCourNLayouts=3 pues hay tres bloques distintos ( A , B , C )&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:133--&amp;gt;&lt;br /&gt;
LayoutCourRepeat=Array(&lt;br /&gt;
   numero de pasadas de A,&lt;br /&gt;
   numero de pasadas de B,&lt;br /&gt;
   numero de pasadas de C&lt;br /&gt;
)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:134--&amp;gt;&lt;br /&gt;
NOTA: El número total de pasadas ha de ser igual a la suma de pasadas de los bloques de repeticiones. Es decir:&lt;br /&gt;
NumCourses=LayoutCourRepeat(0)+...+LayoutCourRepeat(LayoutCourNLayouts-1)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:135--&amp;gt;&lt;br /&gt;
Luego para codificar que se desea 1 repetición de A, 6 repeticiones de B y una repeticion de C se haria de la siguiente manera:&lt;br /&gt;
&lt;br /&gt;
                         &amp;lt;!--T:136--&amp;gt;&lt;br /&gt;
idx  |  LayoutCourWhich | LayoutCourTimes | Significado&lt;br /&gt;
                      --------+------------------+-----------------+------------------&lt;br /&gt;
                        _     |                  |                 |&lt;br /&gt;
                       /  0   |         1        |       1         | Bloque 1 (A) repetir una vez&lt;br /&gt;
                       |      |                  |                 |&lt;br /&gt;
                       |  1   |         2        |       6         | Bloque 2 (B) repetir 6 veces&lt;br /&gt;
                       |      |                  |                 |&lt;br /&gt;
                       |  2   |         3        |       1         | Bloque 3 (C) repetir una vez&lt;br /&gt;
LayoutCourNRepeats=6  &amp;lt;       |                  |                 |&lt;br /&gt;
                       |  3   |         1        |       1         | Bloque 1 (A) repetir una vez&lt;br /&gt;
                       |      |                  |                 |&lt;br /&gt;
                       |  4   |         2        |       6         | Bloque 2 (B) repetir 6 veces&lt;br /&gt;
                       |      |                  |                 |&lt;br /&gt;
                       \_ 5   |         3        |       1         | Bloque 3 (C) repetir una vez&lt;br /&gt;
                              |                  |                 |&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:137--&amp;gt;&lt;br /&gt;
*LayoutJacqNRepeats int32&lt;br /&gt;
Numero de repeticiones de agujas. Solo afecta el jacquard. Sigue el mismo sistema que las repeticiones de pasadas.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:138--&amp;gt;&lt;br /&gt;
*LayoutJacqNLayouts int32&lt;br /&gt;
Numero de bloques de agujas a repetir&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:139--&amp;gt;&lt;br /&gt;
*LayoutJacqRepeat int32(LayoutJacqNLayouts)&lt;br /&gt;
Numero de agujas que contiene cada bloque a repetir&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:140--&amp;gt;&lt;br /&gt;
*LayoutJacqWhich int32(LayoutJacqNRepeats)&lt;br /&gt;
indice del bloque que a repetir&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:141--&amp;gt;&lt;br /&gt;
*LayoutJacqTimes int32(LayoutJacqNRepeats)&lt;br /&gt;
numero de veces que se ha de repetir el bloque.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:142--&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;/div&gt;</summary>
		<author><name>Pascual</name></author>
	</entry>
	<entry>
		<id>https://wiki.cadt.com/index.php?title=Drf-reader&amp;diff=3157</id>
		<title>Drf-reader</title>
		<link rel="alternate" type="text/html" href="https://wiki.cadt.com/index.php?title=Drf-reader&amp;diff=3157"/>
		<updated>2016-10-05T17:18:12Z</updated>

		<summary type="html">&lt;p&gt;Pascual: /* DLL_EXPORTS */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;languages/&amp;gt;&lt;br /&gt;
[[Category:SAPO]]&lt;br /&gt;
[[Category:Devel]]&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== DLL_EXPORTS === &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;void drf_clear_errors()&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Descr:&lt;br /&gt;
&amp;lt;!--T:1--&amp;gt;&lt;br /&gt;
Borra todos los mensajes de error producidos por la librería.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;int drf_get_num_errors()&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Descr:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:2--&amp;gt;&lt;br /&gt;
Obtiene el número de mensajes de error producidos por la librería.&lt;br /&gt;
&lt;br /&gt;
Return:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:3--&amp;gt;&lt;br /&gt;
Número de mensajes almacenados.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;const char* drf_get_error(int idx)&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Descr:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:4--&amp;gt;&lt;br /&gt;
Obtiene el mensaje de error indicado por idx (referenciado a 0).&lt;br /&gt;
&lt;br /&gt;
Params:&lt;br /&gt;
&lt;br /&gt;
idx:&lt;br /&gt;
&amp;lt;!--T:5--&amp;gt;&lt;br /&gt;
Número de mensaje a obtener. Rango entre: 0 y (drf_get_num_errors()-1) ambos incluidos.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:6--&amp;gt;&lt;br /&gt;
Return:&lt;br /&gt;
&lt;br /&gt;
Éxito: Puntero a una cadena de caracteres ASCII terminada por el byte NUL (&#039;\0&#039;)&lt;br /&gt;
Error: NULL en caso que el valor de idx esté fuera de rango.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;int drf_to_json(char *path,FILE *json,int options)&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Descr:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:7--&amp;gt;&lt;br /&gt;
Serializa a JSON un archivo en formato DRF.&lt;br /&gt;
&lt;br /&gt;
Params:&lt;br /&gt;
&lt;br /&gt;
path:&lt;br /&gt;
Ruta al fichero DRF a serializar en formato Windows ANSI.&lt;br /&gt;
&lt;br /&gt;
json:&lt;br /&gt;
puntero FILE ya abierto y con la escritura habilitada.&lt;br /&gt;
&lt;br /&gt;
options:&lt;br /&gt;
&amp;lt;!--T:8--&amp;gt;&lt;br /&gt;
Selecciona que información se serializará. Valores possibles:&lt;br /&gt;
&lt;br /&gt;
   DRF_GET_GENERIC_INFO&lt;br /&gt;
   DRF_GET_MACHINE_INFO&lt;br /&gt;
   DRF_GET_DRAFT_INFO&lt;br /&gt;
   DRF_GET_ALL_INFO&lt;br /&gt;
&lt;br /&gt;
o una combinación de los valores anteriores (OR)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:9--&amp;gt;&lt;br /&gt;
Return:&lt;br /&gt;
&lt;br /&gt;
Éxito : retorna valor igual a 0&lt;br /&gt;
Error : retorna valor diferente de 0&lt;br /&gt;
&lt;br /&gt;
=== TAGS ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:11--&amp;gt;&lt;br /&gt;
Codificación a JSON de los datos:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:12--&amp;gt;&lt;br /&gt;
Internamente el DRF guarda la información como una lista de tags. Cada tag puede contener uno o varios elementos del mismo tipo.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:13--&amp;gt;&lt;br /&gt;
Al codificar un DRF a JSON se codifica como un objeto donde se usa el nombre del tag como clave y el contenido de éste como valor.&lt;br /&gt;
En caso que el tag pueda contener más de un valor, la librería serializa el contenido como un vector.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:14--&amp;gt;&lt;br /&gt;
Como el formato DRF soporta más tipos que el JSON, la librería los convertirá a un tipo soportado por el JSON. La siguiente tabla muestra a que &lt;br /&gt;
tipo del JSON se convierte cada tipo del DRF &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    DRF  | JSON   &lt;br /&gt;
  -------+--------&lt;br /&gt;
  byte   | &lt;br /&gt;
  int16  | int&lt;br /&gt;
  int32  |&lt;br /&gt;
  -------+-------&lt;br /&gt;
  float  | float&lt;br /&gt;
  -------+-------&lt;br /&gt;
  string | string*&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:16--&amp;gt;&lt;br /&gt;
*) Todos los strings contienen solo caracteres ASCII (encoding:ASCII-7)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== TAGS GENERIC INFO ==== &amp;lt;!--T:17--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:18--&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:19--&amp;gt;&lt;br /&gt;
*Software string&lt;br /&gt;
Nombre del programa que ha generado el fichero .DRF&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:20--&amp;gt;&lt;br /&gt;
*DrawName string&lt;br /&gt;
Referencia del dibujo (max. 256 carac).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:21--&amp;gt;&lt;br /&gt;
*Company string&lt;br /&gt;
Compañía que ha creado el dibujo (max. 30 carac).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:22--&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== TAGS MACHINE INFO ==== &amp;lt;!--T:23--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:25--&amp;gt;&lt;br /&gt;
*Machine string&lt;br /&gt;
Referencia de la máquina. (max. 30 carac) &lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:26--&amp;gt;&lt;br /&gt;
*MachineType string&lt;br /&gt;
Modelo de la máquina. Sólo es válido un modelo definido en el sistema de diseño. (p.e. LEAVERS)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:27--&amp;gt;&lt;br /&gt;
*Description string&lt;br /&gt;
Descripción o información adicional de la máquina.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:28--&amp;gt;&lt;br /&gt;
*Serial string&lt;br /&gt;
Num. serie de la máquina. (max. 30 carac) . Puede contener carácteres no numéricos.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:29--&amp;gt;&lt;br /&gt;
*Version int32 [RASCHEL SU]&lt;br /&gt;
Versión de la máquina raschel SU (versión 1 .. 4).&lt;br /&gt;
   versión 1 . Sin ahorrador de memoria&lt;br /&gt;
   versión 2 . Con ahorrador de memoria (repeticiones)&lt;br /&gt;
   versión 3 . Sin ahorrador de memoria + información empresa.&lt;br /&gt;
   versión 4 . Con ahorrador de memoria (repeciciones) + información empresa.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:30--&amp;gt;&lt;br /&gt;
*Jacquard int32&lt;br /&gt;
Número de barras de Jacquard independientes. Valores posibles: &lt;br /&gt;
   0 : No jacquard&lt;br /&gt;
   1 : 1 jacquard o fina barra simple&lt;br /&gt;
   2 : 2 jacquard raschel o fina barra doble.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:31--&amp;gt;&lt;br /&gt;
*Fronture int32 [RASCHEL DOUBLE NEEDLE BAR]&lt;br /&gt;
Número de fonturas de la máquina&lt;br /&gt;
   1 : 1 fontura&lt;br /&gt;
   2 : 2 fontures (delante / detrás)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:32--&amp;gt;&lt;br /&gt;
*BarsRepeat int32&lt;br /&gt;
Altura del diseño.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:33--&amp;gt;&lt;br /&gt;
*NumRepeats int32&lt;br /&gt;
Num de repeticiones en el diseño.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:34--&amp;gt;&lt;br /&gt;
*NumBars int32&lt;br /&gt;
Numero de barras que tiene el telar.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:35--&amp;gt;&lt;br /&gt;
*Plate int32&lt;br /&gt;
En máquinas raschel (textronic), indica la posición de la plancha.&lt;br /&gt;
En máquinas leavers indica donde empiezan los brodeurs.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:36--&amp;gt;&lt;br /&gt;
*JacqNeedles int32&lt;br /&gt;
Numero de agujas de Jacquard del telar.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:37--&amp;gt;&lt;br /&gt;
*MachNeedles int32&lt;br /&gt;
Numero total de agujas del telar.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:38--&amp;gt;&lt;br /&gt;
*BarsOffset int32&lt;br /&gt;
Desplazamiento de barras (orillos=zona perdida)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:39--&amp;gt;&lt;br /&gt;
*JacqOffset int32&lt;br /&gt;
Deplazamiento de las agujas de jacquard en el telar.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:40--&amp;gt;&lt;br /&gt;
*MaxDisp int32 [RASCHEL SU]&lt;br /&gt;
Deplazamiento máximo general de las barras para máquinas raschel SU.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:41--&amp;gt;&lt;br /&gt;
*Proximity int32&lt;br /&gt;
Para máquinas raschel, distáncia máxima a la que se pueden acercar dos barras del mismo grupo.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:42--&amp;gt;&lt;br /&gt;
*ProximityCollindant int32&lt;br /&gt;
Para máquinas raschel, distáncia máxima a la que se pueden acercar dos barras del mismo grupo colindantes.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:43--&amp;gt;&lt;br /&gt;
*JacqRt int32&lt;br /&gt;
Deplazamiento Rt del jacquard:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:44--&amp;gt;&lt;br /&gt;
para máquinas raschel:&lt;br /&gt;
   no jacquard: rt = 0&lt;br /&gt;
   jacquard simple o doble: rt = 1&lt;br /&gt;
Indica cuántas agujas se desplaza la lectura del jacaquard en las pasadas alternadas.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:45--&amp;gt;&lt;br /&gt;
para máquinas leavers&lt;br /&gt;
   no fina barra:      0&lt;br /&gt;
   fina barra simple: -1&lt;br /&gt;
   fina barra doble:   0&lt;br /&gt;
Indica cuántas agujas se desplaza la lectura del jacquard (desde la posición derecha de la máquina en las pasadas alternadas).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:46--&amp;gt;&lt;br /&gt;
*JacqRtCourse int32&lt;br /&gt;
Indica que pasadas se aplica el valor JacqRt.&lt;br /&gt;
   0:pasadas pares&lt;br /&gt;
   1: pasadas impares&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:47--&amp;gt;&lt;br /&gt;
*FinalGauge float&lt;br /&gt;
Galga de producto tejido aplicando encongimiento (medida en agujas/pulgada)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:48--&amp;gt;&lt;br /&gt;
*FinalQuality float&lt;br /&gt;
Calidad de producto tejido aplicando elasticidad (medida en pasadas/centímetro).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:49--&amp;gt;&lt;br /&gt;
*RealGauge float&lt;br /&gt;
Galga de máquina (medida en agujas/pulgada)-&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:50--&amp;gt;&lt;br /&gt;
*RealQuality float&lt;br /&gt;
Calidad de máquina (medida en pasadas/centímetro).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:51--&amp;gt;&lt;br /&gt;
*Shrinkage float&lt;br /&gt;
Porcentage de encongimiento en agujas (0-100%)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:52--&amp;gt;&lt;br /&gt;
*Elasticity float&lt;br /&gt;
Porcentage de elasticidad en pasadas (0-100%)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:53--&amp;gt;&lt;br /&gt;
*BarNumBar int32(NumBars)&lt;br /&gt;
Numero de cada una de las barras del telar (valor numérico consecutivo)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:54--&amp;gt;&lt;br /&gt;
*BarName string(NumBars)&lt;br /&gt;
Nombre o identificador de cada una de las barras del telar&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:55--&amp;gt;&lt;br /&gt;
*BarGroup int32(NumBars)&lt;br /&gt;
En máquinas raschel el número de grupo de la barra.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:56--&amp;gt;&lt;br /&gt;
*BarStop int32(NumBars)&lt;br /&gt;
Posición 0 de la barra.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:57--&amp;gt;&lt;br /&gt;
*BarUtil int32(NumBars)&lt;br /&gt;
Visibilidad de la barra en el sistema de diseño.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:58--&amp;gt;&lt;br /&gt;
*BarType int32(NumBars)&lt;br /&gt;
Tipo de hilo por defecto de la barra.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:59--&amp;gt;&lt;br /&gt;
*BarMaxGimp int32&lt;br /&gt;
Guimpada máxima en agujas de la barra.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:60--&amp;gt;&lt;br /&gt;
*BarDrive int32&lt;br /&gt;
En máquinas raschel SU, el número de getribe de la barra.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:61--&amp;gt;&lt;br /&gt;
*BarFactor int32&lt;br /&gt;
En máquinas raschel SU, multiplicador de la barra.&lt;br /&gt;
1: factor de 1 agulla&lt;br /&gt;
2: factor de 2 agulles,&lt;br /&gt;
4: factor de 4 agulles.&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:62--&amp;gt;&lt;br /&gt;
*BarInvert int32&lt;br /&gt;
En máquinas raschel SU, les barres invertides. &lt;br /&gt;
1: barra invertida.&lt;br /&gt;
0: barra no invertida.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:63--&amp;gt;&lt;br /&gt;
*BarWork int32&lt;br /&gt;
Trabajo de la barra en el sistema de diseño.&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;!--T:64--&amp;gt;&lt;br /&gt;
0: Chainette&lt;br /&gt;
   1: Jacquard     [1]&lt;br /&gt;
   2: Brodeur&lt;br /&gt;
   3: Gros&lt;br /&gt;
   4: Fin&lt;br /&gt;
   5: Brillant&lt;br /&gt;
   6: Picot&lt;br /&gt;
   7: Corde&lt;br /&gt;
   8: Lycra&lt;br /&gt;
   9: Fond&lt;br /&gt;
  10: Bloc&lt;br /&gt;
  11: Cord&lt;br /&gt;
  12: Guimp&lt;br /&gt;
  13: Nul&lt;br /&gt;
  14: Jacq 0/2,6/4 [1]&lt;br /&gt;
  15: Jacq 0/2,8/6 [1]&lt;br /&gt;
  16: Fine Bar.  [sup]&lt;br /&gt;
  17: Braquette&amp;quot;&lt;br /&gt;
  18: Jacquard     [2]&lt;br /&gt;
  19: Jacq 0/2,6/4 [2]&lt;br /&gt;
  20: Jacq 0/2,8/6 [2]&lt;br /&gt;
  21: Fine Bar.  [inf]&lt;br /&gt;
  22: Jacquard&lt;br /&gt;
  23: Fine Barre&lt;br /&gt;
  24: Fallplate&lt;br /&gt;
  25: Embrodery&lt;br /&gt;
  26: EFS&lt;br /&gt;
  27: Reservé 1&lt;br /&gt;
  28: Reservé 2&lt;br /&gt;
  29: Jacq 0/2,6/4&lt;br /&gt;
  30: Jacq 0/2,8/6&lt;br /&gt;
  31: Bord&lt;br /&gt;
  32: Lisieres&lt;br /&gt;
  33: Romaines&lt;br /&gt;
  34: Sonnette&lt;br /&gt;
  35: Guimp devant&lt;br /&gt;
  36: Petite Corde&lt;br /&gt;
  37: Fileur&lt;br /&gt;
  38: Separation&lt;br /&gt;
  39: Corde Termo&lt;br /&gt;
  40: Solv rom&lt;br /&gt;
  41: Vis&lt;br /&gt;
  42: Jacquard     [3]&lt;br /&gt;
  43: Jacquard     [4]&lt;br /&gt;
  44: Space Fabric&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:65--&amp;gt;&lt;br /&gt;
*BarKnit&lt;br /&gt;
En máquines raschel textronic tipous de lligada:&lt;br /&gt;
  0 : no planxa&lt;br /&gt;
  1 : lligada 1 (mecanica)&lt;br /&gt;
  2 : lligada 2 (binaria)&lt;br /&gt;
  3 : lligada 3 (mecánica (2))&lt;br /&gt;
  4 : lligada 4 (binària (2))&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:66--&amp;gt;&lt;br /&gt;
*BarTimes&lt;br /&gt;
En máquines raschel textonic temps de la lligada&lt;br /&gt;
  0 : no planxa&lt;br /&gt;
  2 : temps 2 (p.e) 0202 0202 0202&lt;br /&gt;
  4 : temps 4 (p.e) 0220 0220 0220&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:67--&amp;gt;&lt;br /&gt;
*BarMode&lt;br /&gt;
En máquines raschel textronic el mode la la barra:&lt;br /&gt;
  0 : mode A (p.e 0220)&lt;br /&gt;
  1 : mode B (p.e 2002)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:68--&amp;gt;&lt;br /&gt;
*BarModif int32&lt;br /&gt;
En máquines raschel textronic indica que la barra no es pot deslligar&lt;br /&gt;
  0 : no es pot deslligar&lt;br /&gt;
  1 : si es pot deslligar&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:69--&amp;gt;&lt;br /&gt;
*BarTension int32&lt;br /&gt;
Tensió de la barra a les simulacions.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:70--&amp;gt;&lt;br /&gt;
*BarNumFingers int32(NumBars)&lt;br /&gt;
Número de pasadors de la barra&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:71--&amp;gt;&lt;br /&gt;
*BarModeDrop int32(NumBars)&lt;br /&gt;
Ponderación de cada uno de los 7 bits que se usan para indicar el desplazamiento de la barra. Valores:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;!--T:72--&amp;gt;&lt;br /&gt;
Valor | B7 | B6 | B5 | B4 | B3 | B2 | B1&lt;br /&gt;
 ------+----+----+----+----+----+----+----&lt;br /&gt;
    0  |  8 |  8 |  8 |  4 |  2 |  1 |1/2&lt;br /&gt;
 ------+----+----+----+----+----+----+----&lt;br /&gt;
    1  | 16 |  8 |  8 |  4 |  2 |  1 |1/2&lt;br /&gt;
 ------+----+----+----+----+----+----+----&lt;br /&gt;
    2  | 16 | 16 |  8 |  4 |  2 |  1 |1/2&lt;br /&gt;
 ------+----+----+----+----+----+----+----&lt;br /&gt;
    3  | 32 | 16 |  8 |  4 |  2 |  1 |1/2&lt;br /&gt;
 ------+----+----+----+----+----+----+----&lt;br /&gt;
    4  |  8 |  8 |  8 |  8 |  4 |  2 | 1&lt;br /&gt;
 ------+----+----+----+----+----+----+----&lt;br /&gt;
    5  | 16 |  8 |  8 |  8 |  4 |  2 | 1&lt;br /&gt;
 ------+----+----+----+----+----+----+----&lt;br /&gt;
    6  |  4 |  4 |  4 |  4 |  2 |  1 | 1&lt;br /&gt;
 ------+----+----+----+----+----+----+----&lt;br /&gt;
    7  |  0 |  0 |  0 |  1 |  2 |  1 |1/2&lt;br /&gt;
 ------+----+----+----+----+----+----+----&lt;br /&gt;
    8  |  4 |  4 |  4 |  4 |  2 |  1 |1/2&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:73--&amp;gt;&lt;br /&gt;
*BarMaxDesp int32(NumBars)&lt;br /&gt;
Desplazamiento máximo de la barra en agujas&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:74--&amp;gt;&lt;br /&gt;
*BarActive byte(NumBars)&lt;br /&gt;
Sólo para maquinas EL. Indica si la barra esta en uso o no.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:75--&amp;gt;&lt;br /&gt;
*BarHalvesUp byte(NumBars)&lt;br /&gt;
Si en la pasada se incrementa la posición de la barra en BarHalvesUp agujas o más, entonces , se añade media aguja a la posición final.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:76--&amp;gt;&lt;br /&gt;
*BarHalvesDn byte(NumBars)&lt;br /&gt;
Si en la pasada se decrementa la posición de la barra en BarHalvesDwn agujas o más, entonces , se le resta media aguja a la posición final.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:77--&amp;gt;&lt;br /&gt;
*BarString int32(NumBars)&lt;br /&gt;
Valors:&lt;br /&gt;
0:&lt;br /&gt;
1:ple&lt;br /&gt;
2:1f 1x&lt;br /&gt;
3:1x 1f&lt;br /&gt;
4:buit&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:78--&amp;gt;&lt;br /&gt;
*BarFronture int32(NumBars)&lt;br /&gt;
Solo se usa en las máquinas de doble frontura. Da la frontura en la que empieza a trabajar la barra.Valores:&lt;br /&gt;
0: primera forntura&lt;br /&gt;
1: segunda frontura&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:79--&amp;gt;&lt;br /&gt;
*BarDropsUtil int32(7*NumBars)&lt;br /&gt;
indica como se deben perforar los 7 posiciones correspondientes a la barra:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:80--&amp;gt;&lt;br /&gt;
Valor:&lt;br /&gt;
0: Usado. Siempre a 1. Es decir: no perforar nunca&lt;br /&gt;
1: Usado, Se perforara o no en funcion del desplazamiento de la barra&lt;br /&gt;
2: Usado. Siemre a 0. Es decir, se perfora siempre&lt;br /&gt;
3: No usado. No se perfora&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:81--&amp;gt;&lt;br /&gt;
*FingerStop int32(num_fingers) num_fingers=BarNumFingers(0) + ... + BarNumFingers(NumBars-1)&lt;br /&gt;
Stop del pasador relativo al stop de la barra.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:82--&amp;gt;&lt;br /&gt;
*FingerType int32(num_fingers) num_fingers=BarNumFingers(0) + ... + BarNumFingers(NumBars-1)&lt;br /&gt;
Tipo de pasador.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:83--&amp;gt;&lt;br /&gt;
*CGF1Card int32&lt;br /&gt;
ha de estar a 0.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:84--&amp;gt;&lt;br /&gt;
*CGF1Type int32&lt;br /&gt;
Número de columnas útiles en el cartón.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:85--&amp;gt;&lt;br /&gt;
*CGF1Taille int32&lt;br /&gt;
Número de columnas totales que caben del cartón.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:86--&amp;gt;&lt;br /&gt;
*CGF1Numlines int32&lt;br /&gt;
numero de entradas de las que consta la especificación del cartón.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:87--&amp;gt;&lt;br /&gt;
*CGF1Script string(CGF1Numlines)&lt;br /&gt;
Lista de cadenas de caracteres que detallan como se ha de perforar  cada columna del cartón empezando por la columna de mas a la derecha.&lt;br /&gt;
Cada cadena de caracteres tiene el formato: &amp;lt;codigo de tipo&amp;gt; &amp;lt;espacio&amp;gt; &amp;lt;numero de repeticiones&amp;gt;. Ex: &amp;quot;LC 1&amp;quot;.&lt;br /&gt;
Los codigos de tipo validos son:&lt;br /&gt;
   LC: Laçage&lt;br /&gt;
   TC: Trou de centrage&lt;br /&gt;
   TS: Trou de centrage simple&lt;br /&gt;
   EL: Element vide&lt;br /&gt;
   GF: Gros fil&lt;br /&gt;
   VB: Value&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:88--&amp;gt;&lt;br /&gt;
*CGF1Descrip string(CGF1Numlines)&lt;br /&gt;
Descripción de cada entada del cartón.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:89--&amp;gt;&lt;br /&gt;
Ex:&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;!--T:90--&amp;gt;&lt;br /&gt;
CGF1Script | CGF1Descrip&lt;br /&gt;
 ------------+--------------&lt;br /&gt;
   &amp;quot;LC 1&amp;quot;    |  &amp;quot;Laçage&amp;quot;&lt;br /&gt;
   &amp;quot;TC 1&amp;quot;    |  &amp;quot;Trou de centrage&amp;quot;&lt;br /&gt;
   &amp;quot;GF 6&amp;quot;    |  &amp;quot;braquettes&amp;quot;  &lt;br /&gt;
   &amp;quot;GF 4&amp;quot;    |  &amp;quot;stum&amp;quot;                                                                                                      &lt;br /&gt;
   &amp;quot;GF 30&amp;quot;   |  &amp;quot;guimpes&amp;quot;                                                                                                    &lt;br /&gt;
   &amp;quot;TC 1&amp;quot;    |  &amp;quot;Trou de centrage&amp;quot;                                                                                            &lt;br /&gt;
   &amp;quot;LC 1&amp;quot;    |  &amp;quot;Laçage&amp;quot;                                                                                                       &lt;br /&gt;
   &amp;quot;GF 26&amp;quot;   |  &amp;quot;guimpes&amp;quot;                                                                                                &lt;br /&gt;
   &amp;quot;GF 4&amp;quot;    |  &amp;quot;stum&amp;quot;                                                                                                   &lt;br /&gt;
   &amp;quot;GF 6&amp;quot;    |  &amp;quot;braquettes&amp;quot;                                                                                               &lt;br /&gt;
   &amp;quot;GF 3&amp;quot;    |  &amp;quot;brodeus&amp;quot;                                                                                                  &lt;br /&gt;
   &amp;quot;TC 1&amp;quot;    |  &amp;quot;Trou de centrage&amp;quot;                                                                                         &lt;br /&gt;
   &amp;quot;LC 1&amp;quot;    |  &amp;quot;Laçage&amp;quot;                                                                                                      &lt;br /&gt;
   &amp;quot;GF 39&amp;quot;   |  &amp;quot;brodeus&amp;quot;                                                                                                 &lt;br /&gt;
   &amp;quot;TC 1&amp;quot;    |  &amp;quot;Trou de centrage&amp;quot;                                                                                           &lt;br /&gt;
   &amp;quot;LC 1&amp;quot;    |  &amp;quot;Laçage&amp;quot;                                                                                                    &lt;br /&gt;
                                                                                                                           &lt;br /&gt;
&amp;lt;div style=&amp;quot;font-size:7pt;color:blue;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;                                                                                                                          &lt;br /&gt;
  L T                GF39                   L T G   GF6  GF4          GF26            L T               GF30           GF4  GF6  T L&lt;br /&gt;
  C C _____________________________________ C C F  ____  __  ________________________ C C ____________________________  __  ____ C C&lt;br /&gt;
  1 1/                                     \1 1/3\/    \/  \/                        \1 1/                            \/  \/    \1 1&lt;br /&gt;
/------------------------------------------------------------------------------------------------------------------------------------\&lt;br /&gt;
|    OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO.  OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO.  OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO    |&lt;br /&gt;
| O  .O.O.O.OOOOOOO.OOO.OOOOOO.O.O.OOOOOOOOOO  OOOOOOOOOOO..O..OO...O.OO.....O..O..OOOO  OO...O...OOO.OOOOO...O.....O..OO..OOOOOO  O |&lt;br /&gt;
|    OOOOO.OO.O...OOO..O..OO.OO.OOOO.O..OO.O.  OOOOOO...OOOO.O.OOOO..O.OO.OOO..O.O.O...  ..OOO.OO..O.OO....O.O..O.OOOOOOOOOOOO...    |&lt;br /&gt;
|  ().OO.OO...OOOOOOOO.OO...O.OOOO..OO....O..()O..OOOOOOOOOOO.O....OO..O..OOO..OO.O.O..()OO.....OOO...OO..OO.O.OOO.OO.OOOOOOOOOOO()  |&lt;br /&gt;
|    ........................................  ...............OO..OO..O.......O........  ...........O...O...O.O...O...O..........    |&lt;br /&gt;
| O  .O....OO.O.O....O.O.OOO..O.O.OO.O..OOO.O  ..O...........OOO.OOO.OOOOOOO.OOO.OOO.OO  OOOOOOOOOOOOOOOOOOOO.OOOOOOOOO..........  O |&lt;br /&gt;
|    O.OOOOOOO.O.OOOO.O.OOOOOO.O.OOOO.OO.OOO.  OOO..........OOOOOOOOOOOOOOOOOOOOOOOOOO.  OOOOOOOOOOOOOOOOOOOOOOOOOOOOOO..........    |&lt;br /&gt;
\------------------------------------------------------------------------------------------------------------------------------------/    &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:91--&amp;gt;&lt;br /&gt;
*CGF2Card int32&lt;br /&gt;
ha de estar a 0.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:92--&amp;gt;&lt;br /&gt;
*CGF2Type int32&lt;br /&gt;
Número de columnas útiles en el cartón.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:93--&amp;gt;&lt;br /&gt;
*CGF2Taille int32&lt;br /&gt;
Número de columnas totales que caben del cartón.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:94--&amp;gt;&lt;br /&gt;
*CGF2Numlines int32&lt;br /&gt;
numero de entradas de las que consta la especificación del cartón.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:95--&amp;gt;&lt;br /&gt;
*CGF2Script string(CGF2Numlines)&lt;br /&gt;
Especificación del cartón. Formateado igual que CGF1Script.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:96--&amp;gt;&lt;br /&gt;
*CGF2Descrip string(CGF2Numlines)&lt;br /&gt;
Descripción de cada entada del cartón.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:97--&amp;gt;&lt;br /&gt;
*CFBCard int32&lt;br /&gt;
ha de estar a 1.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:98--&amp;gt;&lt;br /&gt;
*CFBType int32&lt;br /&gt;
Número de columnas útiles en el cartón.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:99--&amp;gt;&lt;br /&gt;
*CFBTaille int32&lt;br /&gt;
Número de columnas totales que caben del cartón multiplicadas por 8.Ex:&lt;br /&gt;
si el cartón tiene 75 columnas CFBTaille=75*8=600&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:100--&amp;gt;&lt;br /&gt;
*CFBNumlines int32&lt;br /&gt;
numero de entradas de las que consta la especificación del cartón.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:101--&amp;gt;&lt;br /&gt;
*CFBScript string(CFBNumlines)&lt;br /&gt;
Especificación del cartón. Formateado igual que CGF1Script. Excepto que los tipos aceptados&lt;br /&gt;
son:&lt;br /&gt;
   LC: Laçage&lt;br /&gt;
   TC: Trou de centrage&lt;br /&gt;
   TS: Trou de centrage simple&lt;br /&gt;
   EL: Element vide&lt;br /&gt;
   FB: Fine barre&lt;br /&gt;
   VB: Value&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:102--&amp;gt;&lt;br /&gt;
Es decir el tipo &amp;quot;GF&amp;quot; no existe para este tag y en su lugar hay el tipo &amp;quot;FB&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:103--&amp;gt;&lt;br /&gt;
*CFBDescrip string(CFBNumlines)&lt;br /&gt;
Descripción de cada entada del cartón.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:104--&amp;gt;&lt;br /&gt;
*CFBNGaits int32&lt;br /&gt;
Número de entradas para mapear las repeticiones de agujas de Fine Barre a los cartones en función de la repetición.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:105--&amp;gt;&lt;br /&gt;
*CFBGaitNRepeat int32(CFBNGaits)&lt;br /&gt;
Número de repetición a mapear&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:106--&amp;gt;&lt;br /&gt;
*CFBGaitNBar int32(CFBNGaits)&lt;br /&gt;
Número de aguja a mapear&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:107--&amp;gt;&lt;br /&gt;
*CFBGaitNGait int32(CFBNGaits)&lt;br /&gt;
Indice de agujero en el cartón&lt;br /&gt;
&lt;br /&gt;
==== TAGS DRAFT DATA ==== &amp;lt;!--T:109--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:110--&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:111--&amp;gt;&lt;br /&gt;
*NumCourses int32&lt;br /&gt;
Numero de pasadas del dibujo sin tener en cuenta las repeticiones.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:112--&amp;gt;&lt;br /&gt;
*BarNeedle int16(NumCourses*NumBars)&lt;br /&gt;
Despazamientos medidos en agujas de las barras en cada pasada. Ordenados de la siguiente manera:&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;!--T:113--&amp;gt;&lt;br /&gt;
BarNeedle(0)              Desplazamiento barra 1 en la primera pasada.&lt;br /&gt;
   BarNeedle(1)              Desplazamiento barra 1 en la segunda pasada.&lt;br /&gt;
   .&lt;br /&gt;
   .&lt;br /&gt;
   BarNeedle(NumCourses-1)   Desplazamiento barra 1 en la última pasada.&lt;br /&gt;
   BarNeedle(NumCourses)     Desplazamiento barra 2 en la primera pasada.&lt;br /&gt;
   .&lt;br /&gt;
   .&lt;br /&gt;
   BarNeedel(NumCourses*2-1) Desplazamiento barra 2 en la última pasada.&lt;br /&gt;
   BarNeedle(NumCourses)     Desplazamiento barra 3 en la primera pasada.&lt;br /&gt;
   .&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:114--&amp;gt;&lt;br /&gt;
*BarNeedleB int16(NumCourses*NumBars)&lt;br /&gt;
Solo se utiliza en maquinas de doble frontura. Es equivalente a BarNeedle pero contiene la información&lt;br /&gt;
para la segunda frontura.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:115--&amp;gt;&lt;br /&gt;
*BarHalves byte(NumCourses*NumBars)&lt;br /&gt;
Incremento de 1/2 aguja en el movimiento de la barra introducido manualmente por el diseñador desde el menú de Bareme&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:116--&amp;gt;&lt;br /&gt;
*BarKnitting byte(NumCourses*NumBars)&lt;br /&gt;
Indica en las maquinas que hacen 2 movimientos por pasada que movimiento se realiza&lt;br /&gt;
Valores:&lt;br /&gt;
 0 : Movimiento 0 0 . No liga&lt;br /&gt;
 1 : Movimeinto 0 1 . Liga&lt;br /&gt;
 2 : Movimeinto 1 0 . Liga&lt;br /&gt;
 3 : Movimeinto 1 1 . No liga&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:117--&amp;gt;&lt;br /&gt;
*BarKnittingB byte(NumCourses*NumBars)&lt;br /&gt;
Solo se utiliza en maquinas de doble frontura. Es equivalente a BarKnitting pero contiene la información&lt;br /&gt;
para la segunda frontura.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:118--&amp;gt;&lt;br /&gt;
*Layout_JacqData byte(NumCourses*JacqNeedles*Jacquard)&lt;br /&gt;
Cada byte guarda un bit de Jacquard. Valores:&lt;br /&gt;
0: T&lt;br /&gt;
1: H&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:119--&amp;gt;&lt;br /&gt;
*Layout_FrontureData byte(NumCourses*JacqNeedles*Jacquard)&lt;br /&gt;
Solo se utiliza en maquinas de doble frontura. Es equivalente a Layout_JacqData pero contiene la información&lt;br /&gt;
para la segunda frontura.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:120--&amp;gt;&lt;br /&gt;
*Layout_WBData byte(NumCourses*JacqNeedles*Jacquard)&lt;br /&gt;
Solo se utiliza en maquinas CLIPTRONIC . Contiene los datos para la barra de Embrodery(WB) en el mismo formato que&lt;br /&gt;
Layout_JacqData.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:121--&amp;gt;&lt;br /&gt;
*LayoutCourNRepeats int32&lt;br /&gt;
Numero de repeticiones de pasadas. Las repeticiones de pasadas afectan por igual las barras de dibujo y el jacquard.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:122--&amp;gt;&lt;br /&gt;
*LayoutCourNLayouts int32&lt;br /&gt;
Numero de bloques de pasadas a repetir&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:123--&amp;gt;&lt;br /&gt;
*LayoutCourRepeat int32(LayoutCourNLayouts)&lt;br /&gt;
Numero de pasadas que contiene cada bloque a repetir&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:124--&amp;gt;&lt;br /&gt;
*LayoutCourWhich int32(LayoutCourNRepeats)&lt;br /&gt;
indice del bloque que a repetir&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:125--&amp;gt;&lt;br /&gt;
*LayoutCourTimes int32(LayoutCourNRepeats)&lt;br /&gt;
numero de veces que se ha de repetir el bloque. Ejemplo:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:126--&amp;gt;&lt;br /&gt;
Normalmente como los dibujos suelen ser bastante repetitivos, para ahorrar trabajo y memoria no se guardan todas las pasadas&lt;br /&gt;
del dibujo. En un dibujo como el siguiente :&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;!--T:127--&amp;gt;&lt;br /&gt;
+------------------------------------------------------------------------------------------+&lt;br /&gt;
    |  ,~.~._,~.~._,~.~._,~.~._,~.~._,~.~._,~.~.    ,~.~._,~.~._,~.~._,~.~._,~.~._,~.~._,~.~.  | &lt;br /&gt;
    | / O.O   O.O   O.O   O.O   O.O   O.O   O.O \  / O.O   O.O   O.O   O.O   O.O   O.O   O.O \ | &lt;br /&gt;
    |( O:@:O O:@:O O:@:O O:@:O O:@:O O:@:O O:@:O )( O:@:O O:@:O O:@:O O:@:O O:@:O O:@:O O:@:O )| &lt;br /&gt;
    | \ O&#039;O   O&#039;O   O&#039;O   O&#039;O   O&#039;O   O&#039;O   O&#039;O /  \ O&#039;O   O&#039;O   O&#039;O   O&#039;O   O&#039;O   O&#039;O   O&#039;O / | &lt;br /&gt;
    |  )   . ,   . ,   . ,   . ,   . ,   . ,   (    )   . ,   . ,   . ,   . ,   . ,   . ,   (  | &lt;br /&gt;
/\  | (  * -@- * -@- * -@- * -@- * -@- * -@- *  )  (  * -@- * -@- * -@- * -@- * -@- * -@- *  ) | &lt;br /&gt;
 A  |  )   &#039; `   &#039; `   &#039; `   &#039; `   &#039; `   &#039; `   (    )   &#039; `   &#039; `   &#039; `   &#039; `   &#039; `   &#039; `   (  | &lt;br /&gt;
 g  | / O.O   O.O   O.O   O.O   O.O   O.O   O.O \  / O.O   O.O   O.O   O.O   O.O   O.O   O.O \ | &lt;br /&gt;
 u  |( O:@:O O:@:O O:@:O O:@:O O:@:O O:@:O O:@:O )( O:@:O O:@:O O:@:O O:@:O O:@:O O:@:O O:@:O )| &lt;br /&gt;
 j  | \ O&#039;O   O&#039;O   O&#039;O   O&#039;O   O&#039;O   O&#039;O   O&#039;O /  \ O&#039;O   O&#039;O   O&#039;O   O&#039;O   O&#039;O   O&#039;O   O&#039;O / | &lt;br /&gt;
 a  |  ·~·~·^·~·~·^·~·~·^·~·~·^·~·~·^·~·~·^·~·~·    ·~·~·^·~·~·^·~·~·^·~·~·^·~·~·^·~·~·^·~·~·  | &lt;br /&gt;
 s  +------------------------------------------------------------------------------------------+&lt;br /&gt;
     Pasadas &amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:128--&amp;gt;&lt;br /&gt;
Si se mira lo que hay guardado en el archivo se encontraría algo similar a :&lt;br /&gt;
                     &lt;br /&gt;
    +---------------+&lt;br /&gt;
    |  ,~.~._,~.~.  |&lt;br /&gt;
    | / O.O   O.O \ |&lt;br /&gt;
    |( O:@:O O:@:O )|&lt;br /&gt;
    | \ O&#039;O   O&#039;O / |&lt;br /&gt;
    |  )   . ,   (  |&lt;br /&gt;
/\  | (  * -@- *  ) | &lt;br /&gt;
 A  |  )   &#039; `   (  |&lt;br /&gt;
 g  | / O.O   O.O \ |&lt;br /&gt;
 u  |( O:@:O O:@:O )|&lt;br /&gt;
 j  | \ O&#039;O   O&#039;O / |&lt;br /&gt;
 a  |  ·~·~·^·~·~·  |&lt;br /&gt;
 s  +---------------+&lt;br /&gt;
     Pasadas &amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:129--&amp;gt;&lt;br /&gt;
Esto pasa por que se ha guardado solo una vez cada bloque que se repite. En este caso los bloques que se han usado:&lt;br /&gt;
&lt;br /&gt;
     &amp;lt;!--T:130--&amp;gt;&lt;br /&gt;
A      B        C&lt;br /&gt;
  +----+ +------+ +-----+&lt;br /&gt;
  |  ,~| |.~._,~| |.~.  | &lt;br /&gt;
  | / O| |.O   O| |.O \ | &lt;br /&gt;
  |( O:| |@:O O:| |@:O )| &lt;br /&gt;
  | \ O| |&#039;O   O| |&#039;O / | &lt;br /&gt;
  |  ) | |  . , | |  (  | &lt;br /&gt;
  | (  | |* -@- | |*  ) |&lt;br /&gt;
  |  ) | |  &#039; ` | |  (  | &lt;br /&gt;
  | / O| |.O   O| |.O \ | &lt;br /&gt;
  |( O:| |@:O O:| |@:O )|&lt;br /&gt;
  | \ O| |&#039;O   O| |&#039;O / |  &lt;br /&gt;
  |  ·~| |·~·^·~| |·~·  | &lt;br /&gt;
  +----+ +------+ +-----+&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:131--&amp;gt;&lt;br /&gt;
Se puede ver con facilidad que la sequencia de bloques para obtener el dibujo es: A B B B B B B C A B B B B B B C&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:132--&amp;gt;&lt;br /&gt;
LayoutCourNLayouts=3 pues hay tres bloques distintos ( A , B , C )&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:133--&amp;gt;&lt;br /&gt;
LayoutCourRepeat=Array(&lt;br /&gt;
   numero de pasadas de A,&lt;br /&gt;
   numero de pasadas de B,&lt;br /&gt;
   numero de pasadas de C&lt;br /&gt;
)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:134--&amp;gt;&lt;br /&gt;
NOTA: El número total de pasadas ha de ser igual a la suma de pasadas de los bloques de repeticiones. Es decir:&lt;br /&gt;
NumCourses=LayoutCourRepeat(0)+...+LayoutCourRepeat(LayoutCourNLayouts-1)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:135--&amp;gt;&lt;br /&gt;
Luego para codificar que se desea 1 repetición de A, 6 repeticiones de B y una repeticion de C se haria de la siguiente manera:&lt;br /&gt;
&lt;br /&gt;
                         &amp;lt;!--T:136--&amp;gt;&lt;br /&gt;
idx  |  LayoutCourWhich | LayoutCourTimes | Significado&lt;br /&gt;
                      --------+------------------+-----------------+------------------&lt;br /&gt;
                        _     |                  |                 |&lt;br /&gt;
                       /  0   |         1        |       1         | Bloque 1 (A) repetir una vez&lt;br /&gt;
                       |      |                  |                 |&lt;br /&gt;
                       |  1   |         2        |       6         | Bloque 2 (B) repetir 6 veces&lt;br /&gt;
                       |      |                  |                 |&lt;br /&gt;
                       |  2   |         3        |       1         | Bloque 3 (C) repetir una vez&lt;br /&gt;
LayoutCourNRepeats=6  &amp;lt;       |                  |                 |&lt;br /&gt;
                       |  3   |         1        |       1         | Bloque 1 (A) repetir una vez&lt;br /&gt;
                       |      |                  |                 |&lt;br /&gt;
                       |  4   |         2        |       6         | Bloque 2 (B) repetir 6 veces&lt;br /&gt;
                       |      |                  |                 |&lt;br /&gt;
                       \_ 5   |         3        |       1         | Bloque 3 (C) repetir una vez&lt;br /&gt;
                              |                  |                 |&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:137--&amp;gt;&lt;br /&gt;
*LayoutJacqNRepeats int32&lt;br /&gt;
Numero de repeticiones de agujas. Solo afecta el jacquard. Sigue el mismo sistema que las repeticiones de pasadas.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:138--&amp;gt;&lt;br /&gt;
*LayoutJacqNLayouts int32&lt;br /&gt;
Numero de bloques de agujas a repetir&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:139--&amp;gt;&lt;br /&gt;
*LayoutJacqRepeat int32(LayoutJacqNLayouts)&lt;br /&gt;
Numero de agujas que contiene cada bloque a repetir&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:140--&amp;gt;&lt;br /&gt;
*LayoutJacqWhich int32(LayoutJacqNRepeats)&lt;br /&gt;
indice del bloque que a repetir&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:141--&amp;gt;&lt;br /&gt;
*LayoutJacqTimes int32(LayoutJacqNRepeats)&lt;br /&gt;
numero de veces que se ha de repetir el bloque.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:142--&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;/div&gt;</summary>
		<author><name>Pascual</name></author>
	</entry>
	<entry>
		<id>https://wiki.cadt.com/index.php?title=Drf-reader&amp;diff=3156</id>
		<title>Drf-reader</title>
		<link rel="alternate" type="text/html" href="https://wiki.cadt.com/index.php?title=Drf-reader&amp;diff=3156"/>
		<updated>2016-10-05T17:17:17Z</updated>

		<summary type="html">&lt;p&gt;Pascual: /* DLL_EXPORTS */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;languages/&amp;gt;&lt;br /&gt;
[[Category:SAPO]]&lt;br /&gt;
[[Category:Devel]]&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== DLL_EXPORTS === &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;void drf_clear_errors()&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Descr:&lt;br /&gt;
&amp;lt;!--T:1--&amp;gt;&lt;br /&gt;
Borra todos los mensajes de error producidos por la librería.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;int drf_get_num_errors()&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Descr:&lt;br /&gt;
&amp;lt;!--T:2--&amp;gt;&lt;br /&gt;
Obtiene el número de mensajes de error producidos por la librería.&lt;br /&gt;
&lt;br /&gt;
Return:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:3--&amp;gt;&lt;br /&gt;
Número de mensajes almacenados.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;const char* drf_get_error(int idx)&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Descr:&lt;br /&gt;
&amp;lt;!--T:4--&amp;gt;&lt;br /&gt;
Obtiene el mensaje de error indicado por idx (referenciado a 0).&lt;br /&gt;
&lt;br /&gt;
Params:&lt;br /&gt;
idx:&lt;br /&gt;
&amp;lt;!--T:5--&amp;gt;&lt;br /&gt;
Número de mensaje a obtener. Rango entre: 0 y (drf_get_num_errors()-1) ambos incluidos.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:6--&amp;gt;&lt;br /&gt;
Return:&lt;br /&gt;
Éxito: Puntero a una cadena de caracteres ASCII terminada por el byte NUL (&#039;\0&#039;)&lt;br /&gt;
Error: NULL en caso que el valor de idx esté fuera de rango.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;int drf_to_json(char *path,FILE *json,int options)&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Descr:&lt;br /&gt;
&amp;lt;!--T:7--&amp;gt;&lt;br /&gt;
Serializa a JSON un archivo en formato DRF.&lt;br /&gt;
&lt;br /&gt;
Params:&lt;br /&gt;
path:&lt;br /&gt;
Ruta al fichero DRF a serializar en formato Windows ANSI.&lt;br /&gt;
json:&lt;br /&gt;
puntero FILE ya abierto y con la escritura habilitada.&lt;br /&gt;
options:&lt;br /&gt;
&amp;lt;!--T:8--&amp;gt;&lt;br /&gt;
Selecciona que información se serializará. Valores possibles:&lt;br /&gt;
&lt;br /&gt;
   DRF_GET_GENERIC_INFO&lt;br /&gt;
   DRF_GET_MACHINE_INFO&lt;br /&gt;
   DRF_GET_DRAFT_INFO&lt;br /&gt;
   DRF_GET_ALL_INFO&lt;br /&gt;
&lt;br /&gt;
o una combinación de los valores anteriores (OR)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:9--&amp;gt;&lt;br /&gt;
Return:&lt;br /&gt;
Éxito : retorna valor igual a 0&lt;br /&gt;
Error : retorna valor diferente de 0&lt;br /&gt;
&lt;br /&gt;
=== TAGS ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:11--&amp;gt;&lt;br /&gt;
Codificación a JSON de los datos:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:12--&amp;gt;&lt;br /&gt;
Internamente el DRF guarda la información como una lista de tags. Cada tag puede contener uno o varios elementos del mismo tipo.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:13--&amp;gt;&lt;br /&gt;
Al codificar un DRF a JSON se codifica como un objeto donde se usa el nombre del tag como clave y el contenido de éste como valor.&lt;br /&gt;
En caso que el tag pueda contener más de un valor, la librería serializa el contenido como un vector.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:14--&amp;gt;&lt;br /&gt;
Como el formato DRF soporta más tipos que el JSON, la librería los convertirá a un tipo soportado por el JSON. La siguiente tabla muestra a que &lt;br /&gt;
tipo del JSON se convierte cada tipo del DRF &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    DRF  | JSON   &lt;br /&gt;
  -------+--------&lt;br /&gt;
  byte   | &lt;br /&gt;
  int16  | int&lt;br /&gt;
  int32  |&lt;br /&gt;
  -------+-------&lt;br /&gt;
  float  | float&lt;br /&gt;
  -------+-------&lt;br /&gt;
  string | string*&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:16--&amp;gt;&lt;br /&gt;
*) Todos los strings contienen solo caracteres ASCII (encoding:ASCII-7)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== TAGS GENERIC INFO ==== &amp;lt;!--T:17--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:18--&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:19--&amp;gt;&lt;br /&gt;
*Software string&lt;br /&gt;
Nombre del programa que ha generado el fichero .DRF&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:20--&amp;gt;&lt;br /&gt;
*DrawName string&lt;br /&gt;
Referencia del dibujo (max. 256 carac).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:21--&amp;gt;&lt;br /&gt;
*Company string&lt;br /&gt;
Compañía que ha creado el dibujo (max. 30 carac).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:22--&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== TAGS MACHINE INFO ==== &amp;lt;!--T:23--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:25--&amp;gt;&lt;br /&gt;
*Machine string&lt;br /&gt;
Referencia de la máquina. (max. 30 carac) &lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:26--&amp;gt;&lt;br /&gt;
*MachineType string&lt;br /&gt;
Modelo de la máquina. Sólo es válido un modelo definido en el sistema de diseño. (p.e. LEAVERS)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:27--&amp;gt;&lt;br /&gt;
*Description string&lt;br /&gt;
Descripción o información adicional de la máquina.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:28--&amp;gt;&lt;br /&gt;
*Serial string&lt;br /&gt;
Num. serie de la máquina. (max. 30 carac) . Puede contener carácteres no numéricos.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:29--&amp;gt;&lt;br /&gt;
*Version int32 [RASCHEL SU]&lt;br /&gt;
Versión de la máquina raschel SU (versión 1 .. 4).&lt;br /&gt;
   versión 1 . Sin ahorrador de memoria&lt;br /&gt;
   versión 2 . Con ahorrador de memoria (repeticiones)&lt;br /&gt;
   versión 3 . Sin ahorrador de memoria + información empresa.&lt;br /&gt;
   versión 4 . Con ahorrador de memoria (repeciciones) + información empresa.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:30--&amp;gt;&lt;br /&gt;
*Jacquard int32&lt;br /&gt;
Número de barras de Jacquard independientes. Valores posibles: &lt;br /&gt;
   0 : No jacquard&lt;br /&gt;
   1 : 1 jacquard o fina barra simple&lt;br /&gt;
   2 : 2 jacquard raschel o fina barra doble.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:31--&amp;gt;&lt;br /&gt;
*Fronture int32 [RASCHEL DOUBLE NEEDLE BAR]&lt;br /&gt;
Número de fonturas de la máquina&lt;br /&gt;
   1 : 1 fontura&lt;br /&gt;
   2 : 2 fontures (delante / detrás)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:32--&amp;gt;&lt;br /&gt;
*BarsRepeat int32&lt;br /&gt;
Altura del diseño.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:33--&amp;gt;&lt;br /&gt;
*NumRepeats int32&lt;br /&gt;
Num de repeticiones en el diseño.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:34--&amp;gt;&lt;br /&gt;
*NumBars int32&lt;br /&gt;
Numero de barras que tiene el telar.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:35--&amp;gt;&lt;br /&gt;
*Plate int32&lt;br /&gt;
En máquinas raschel (textronic), indica la posición de la plancha.&lt;br /&gt;
En máquinas leavers indica donde empiezan los brodeurs.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:36--&amp;gt;&lt;br /&gt;
*JacqNeedles int32&lt;br /&gt;
Numero de agujas de Jacquard del telar.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:37--&amp;gt;&lt;br /&gt;
*MachNeedles int32&lt;br /&gt;
Numero total de agujas del telar.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:38--&amp;gt;&lt;br /&gt;
*BarsOffset int32&lt;br /&gt;
Desplazamiento de barras (orillos=zona perdida)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:39--&amp;gt;&lt;br /&gt;
*JacqOffset int32&lt;br /&gt;
Deplazamiento de las agujas de jacquard en el telar.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:40--&amp;gt;&lt;br /&gt;
*MaxDisp int32 [RASCHEL SU]&lt;br /&gt;
Deplazamiento máximo general de las barras para máquinas raschel SU.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:41--&amp;gt;&lt;br /&gt;
*Proximity int32&lt;br /&gt;
Para máquinas raschel, distáncia máxima a la que se pueden acercar dos barras del mismo grupo.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:42--&amp;gt;&lt;br /&gt;
*ProximityCollindant int32&lt;br /&gt;
Para máquinas raschel, distáncia máxima a la que se pueden acercar dos barras del mismo grupo colindantes.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:43--&amp;gt;&lt;br /&gt;
*JacqRt int32&lt;br /&gt;
Deplazamiento Rt del jacquard:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:44--&amp;gt;&lt;br /&gt;
para máquinas raschel:&lt;br /&gt;
   no jacquard: rt = 0&lt;br /&gt;
   jacquard simple o doble: rt = 1&lt;br /&gt;
Indica cuántas agujas se desplaza la lectura del jacaquard en las pasadas alternadas.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:45--&amp;gt;&lt;br /&gt;
para máquinas leavers&lt;br /&gt;
   no fina barra:      0&lt;br /&gt;
   fina barra simple: -1&lt;br /&gt;
   fina barra doble:   0&lt;br /&gt;
Indica cuántas agujas se desplaza la lectura del jacquard (desde la posición derecha de la máquina en las pasadas alternadas).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:46--&amp;gt;&lt;br /&gt;
*JacqRtCourse int32&lt;br /&gt;
Indica que pasadas se aplica el valor JacqRt.&lt;br /&gt;
   0:pasadas pares&lt;br /&gt;
   1: pasadas impares&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:47--&amp;gt;&lt;br /&gt;
*FinalGauge float&lt;br /&gt;
Galga de producto tejido aplicando encongimiento (medida en agujas/pulgada)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:48--&amp;gt;&lt;br /&gt;
*FinalQuality float&lt;br /&gt;
Calidad de producto tejido aplicando elasticidad (medida en pasadas/centímetro).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:49--&amp;gt;&lt;br /&gt;
*RealGauge float&lt;br /&gt;
Galga de máquina (medida en agujas/pulgada)-&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:50--&amp;gt;&lt;br /&gt;
*RealQuality float&lt;br /&gt;
Calidad de máquina (medida en pasadas/centímetro).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:51--&amp;gt;&lt;br /&gt;
*Shrinkage float&lt;br /&gt;
Porcentage de encongimiento en agujas (0-100%)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:52--&amp;gt;&lt;br /&gt;
*Elasticity float&lt;br /&gt;
Porcentage de elasticidad en pasadas (0-100%)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:53--&amp;gt;&lt;br /&gt;
*BarNumBar int32(NumBars)&lt;br /&gt;
Numero de cada una de las barras del telar (valor numérico consecutivo)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:54--&amp;gt;&lt;br /&gt;
*BarName string(NumBars)&lt;br /&gt;
Nombre o identificador de cada una de las barras del telar&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:55--&amp;gt;&lt;br /&gt;
*BarGroup int32(NumBars)&lt;br /&gt;
En máquinas raschel el número de grupo de la barra.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:56--&amp;gt;&lt;br /&gt;
*BarStop int32(NumBars)&lt;br /&gt;
Posición 0 de la barra.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:57--&amp;gt;&lt;br /&gt;
*BarUtil int32(NumBars)&lt;br /&gt;
Visibilidad de la barra en el sistema de diseño.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:58--&amp;gt;&lt;br /&gt;
*BarType int32(NumBars)&lt;br /&gt;
Tipo de hilo por defecto de la barra.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:59--&amp;gt;&lt;br /&gt;
*BarMaxGimp int32&lt;br /&gt;
Guimpada máxima en agujas de la barra.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:60--&amp;gt;&lt;br /&gt;
*BarDrive int32&lt;br /&gt;
En máquinas raschel SU, el número de getribe de la barra.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:61--&amp;gt;&lt;br /&gt;
*BarFactor int32&lt;br /&gt;
En máquinas raschel SU, multiplicador de la barra.&lt;br /&gt;
1: factor de 1 agulla&lt;br /&gt;
2: factor de 2 agulles,&lt;br /&gt;
4: factor de 4 agulles.&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:62--&amp;gt;&lt;br /&gt;
*BarInvert int32&lt;br /&gt;
En máquinas raschel SU, les barres invertides. &lt;br /&gt;
1: barra invertida.&lt;br /&gt;
0: barra no invertida.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:63--&amp;gt;&lt;br /&gt;
*BarWork int32&lt;br /&gt;
Trabajo de la barra en el sistema de diseño.&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;!--T:64--&amp;gt;&lt;br /&gt;
0: Chainette&lt;br /&gt;
   1: Jacquard     [1]&lt;br /&gt;
   2: Brodeur&lt;br /&gt;
   3: Gros&lt;br /&gt;
   4: Fin&lt;br /&gt;
   5: Brillant&lt;br /&gt;
   6: Picot&lt;br /&gt;
   7: Corde&lt;br /&gt;
   8: Lycra&lt;br /&gt;
   9: Fond&lt;br /&gt;
  10: Bloc&lt;br /&gt;
  11: Cord&lt;br /&gt;
  12: Guimp&lt;br /&gt;
  13: Nul&lt;br /&gt;
  14: Jacq 0/2,6/4 [1]&lt;br /&gt;
  15: Jacq 0/2,8/6 [1]&lt;br /&gt;
  16: Fine Bar.  [sup]&lt;br /&gt;
  17: Braquette&amp;quot;&lt;br /&gt;
  18: Jacquard     [2]&lt;br /&gt;
  19: Jacq 0/2,6/4 [2]&lt;br /&gt;
  20: Jacq 0/2,8/6 [2]&lt;br /&gt;
  21: Fine Bar.  [inf]&lt;br /&gt;
  22: Jacquard&lt;br /&gt;
  23: Fine Barre&lt;br /&gt;
  24: Fallplate&lt;br /&gt;
  25: Embrodery&lt;br /&gt;
  26: EFS&lt;br /&gt;
  27: Reservé 1&lt;br /&gt;
  28: Reservé 2&lt;br /&gt;
  29: Jacq 0/2,6/4&lt;br /&gt;
  30: Jacq 0/2,8/6&lt;br /&gt;
  31: Bord&lt;br /&gt;
  32: Lisieres&lt;br /&gt;
  33: Romaines&lt;br /&gt;
  34: Sonnette&lt;br /&gt;
  35: Guimp devant&lt;br /&gt;
  36: Petite Corde&lt;br /&gt;
  37: Fileur&lt;br /&gt;
  38: Separation&lt;br /&gt;
  39: Corde Termo&lt;br /&gt;
  40: Solv rom&lt;br /&gt;
  41: Vis&lt;br /&gt;
  42: Jacquard     [3]&lt;br /&gt;
  43: Jacquard     [4]&lt;br /&gt;
  44: Space Fabric&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:65--&amp;gt;&lt;br /&gt;
*BarKnit&lt;br /&gt;
En máquines raschel textronic tipous de lligada:&lt;br /&gt;
  0 : no planxa&lt;br /&gt;
  1 : lligada 1 (mecanica)&lt;br /&gt;
  2 : lligada 2 (binaria)&lt;br /&gt;
  3 : lligada 3 (mecánica (2))&lt;br /&gt;
  4 : lligada 4 (binària (2))&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:66--&amp;gt;&lt;br /&gt;
*BarTimes&lt;br /&gt;
En máquines raschel textonic temps de la lligada&lt;br /&gt;
  0 : no planxa&lt;br /&gt;
  2 : temps 2 (p.e) 0202 0202 0202&lt;br /&gt;
  4 : temps 4 (p.e) 0220 0220 0220&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:67--&amp;gt;&lt;br /&gt;
*BarMode&lt;br /&gt;
En máquines raschel textronic el mode la la barra:&lt;br /&gt;
  0 : mode A (p.e 0220)&lt;br /&gt;
  1 : mode B (p.e 2002)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:68--&amp;gt;&lt;br /&gt;
*BarModif int32&lt;br /&gt;
En máquines raschel textronic indica que la barra no es pot deslligar&lt;br /&gt;
  0 : no es pot deslligar&lt;br /&gt;
  1 : si es pot deslligar&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:69--&amp;gt;&lt;br /&gt;
*BarTension int32&lt;br /&gt;
Tensió de la barra a les simulacions.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:70--&amp;gt;&lt;br /&gt;
*BarNumFingers int32(NumBars)&lt;br /&gt;
Número de pasadors de la barra&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:71--&amp;gt;&lt;br /&gt;
*BarModeDrop int32(NumBars)&lt;br /&gt;
Ponderación de cada uno de los 7 bits que se usan para indicar el desplazamiento de la barra. Valores:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;!--T:72--&amp;gt;&lt;br /&gt;
Valor | B7 | B6 | B5 | B4 | B3 | B2 | B1&lt;br /&gt;
 ------+----+----+----+----+----+----+----&lt;br /&gt;
    0  |  8 |  8 |  8 |  4 |  2 |  1 |1/2&lt;br /&gt;
 ------+----+----+----+----+----+----+----&lt;br /&gt;
    1  | 16 |  8 |  8 |  4 |  2 |  1 |1/2&lt;br /&gt;
 ------+----+----+----+----+----+----+----&lt;br /&gt;
    2  | 16 | 16 |  8 |  4 |  2 |  1 |1/2&lt;br /&gt;
 ------+----+----+----+----+----+----+----&lt;br /&gt;
    3  | 32 | 16 |  8 |  4 |  2 |  1 |1/2&lt;br /&gt;
 ------+----+----+----+----+----+----+----&lt;br /&gt;
    4  |  8 |  8 |  8 |  8 |  4 |  2 | 1&lt;br /&gt;
 ------+----+----+----+----+----+----+----&lt;br /&gt;
    5  | 16 |  8 |  8 |  8 |  4 |  2 | 1&lt;br /&gt;
 ------+----+----+----+----+----+----+----&lt;br /&gt;
    6  |  4 |  4 |  4 |  4 |  2 |  1 | 1&lt;br /&gt;
 ------+----+----+----+----+----+----+----&lt;br /&gt;
    7  |  0 |  0 |  0 |  1 |  2 |  1 |1/2&lt;br /&gt;
 ------+----+----+----+----+----+----+----&lt;br /&gt;
    8  |  4 |  4 |  4 |  4 |  2 |  1 |1/2&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:73--&amp;gt;&lt;br /&gt;
*BarMaxDesp int32(NumBars)&lt;br /&gt;
Desplazamiento máximo de la barra en agujas&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:74--&amp;gt;&lt;br /&gt;
*BarActive byte(NumBars)&lt;br /&gt;
Sólo para maquinas EL. Indica si la barra esta en uso o no.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:75--&amp;gt;&lt;br /&gt;
*BarHalvesUp byte(NumBars)&lt;br /&gt;
Si en la pasada se incrementa la posición de la barra en BarHalvesUp agujas o más, entonces , se añade media aguja a la posición final.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:76--&amp;gt;&lt;br /&gt;
*BarHalvesDn byte(NumBars)&lt;br /&gt;
Si en la pasada se decrementa la posición de la barra en BarHalvesDwn agujas o más, entonces , se le resta media aguja a la posición final.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:77--&amp;gt;&lt;br /&gt;
*BarString int32(NumBars)&lt;br /&gt;
Valors:&lt;br /&gt;
0:&lt;br /&gt;
1:ple&lt;br /&gt;
2:1f 1x&lt;br /&gt;
3:1x 1f&lt;br /&gt;
4:buit&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:78--&amp;gt;&lt;br /&gt;
*BarFronture int32(NumBars)&lt;br /&gt;
Solo se usa en las máquinas de doble frontura. Da la frontura en la que empieza a trabajar la barra.Valores:&lt;br /&gt;
0: primera forntura&lt;br /&gt;
1: segunda frontura&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:79--&amp;gt;&lt;br /&gt;
*BarDropsUtil int32(7*NumBars)&lt;br /&gt;
indica como se deben perforar los 7 posiciones correspondientes a la barra:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:80--&amp;gt;&lt;br /&gt;
Valor:&lt;br /&gt;
0: Usado. Siempre a 1. Es decir: no perforar nunca&lt;br /&gt;
1: Usado, Se perforara o no en funcion del desplazamiento de la barra&lt;br /&gt;
2: Usado. Siemre a 0. Es decir, se perfora siempre&lt;br /&gt;
3: No usado. No se perfora&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:81--&amp;gt;&lt;br /&gt;
*FingerStop int32(num_fingers) num_fingers=BarNumFingers(0) + ... + BarNumFingers(NumBars-1)&lt;br /&gt;
Stop del pasador relativo al stop de la barra.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:82--&amp;gt;&lt;br /&gt;
*FingerType int32(num_fingers) num_fingers=BarNumFingers(0) + ... + BarNumFingers(NumBars-1)&lt;br /&gt;
Tipo de pasador.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:83--&amp;gt;&lt;br /&gt;
*CGF1Card int32&lt;br /&gt;
ha de estar a 0.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:84--&amp;gt;&lt;br /&gt;
*CGF1Type int32&lt;br /&gt;
Número de columnas útiles en el cartón.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:85--&amp;gt;&lt;br /&gt;
*CGF1Taille int32&lt;br /&gt;
Número de columnas totales que caben del cartón.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:86--&amp;gt;&lt;br /&gt;
*CGF1Numlines int32&lt;br /&gt;
numero de entradas de las que consta la especificación del cartón.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:87--&amp;gt;&lt;br /&gt;
*CGF1Script string(CGF1Numlines)&lt;br /&gt;
Lista de cadenas de caracteres que detallan como se ha de perforar  cada columna del cartón empezando por la columna de mas a la derecha.&lt;br /&gt;
Cada cadena de caracteres tiene el formato: &amp;lt;codigo de tipo&amp;gt; &amp;lt;espacio&amp;gt; &amp;lt;numero de repeticiones&amp;gt;. Ex: &amp;quot;LC 1&amp;quot;.&lt;br /&gt;
Los codigos de tipo validos son:&lt;br /&gt;
   LC: Laçage&lt;br /&gt;
   TC: Trou de centrage&lt;br /&gt;
   TS: Trou de centrage simple&lt;br /&gt;
   EL: Element vide&lt;br /&gt;
   GF: Gros fil&lt;br /&gt;
   VB: Value&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:88--&amp;gt;&lt;br /&gt;
*CGF1Descrip string(CGF1Numlines)&lt;br /&gt;
Descripción de cada entada del cartón.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:89--&amp;gt;&lt;br /&gt;
Ex:&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;!--T:90--&amp;gt;&lt;br /&gt;
CGF1Script | CGF1Descrip&lt;br /&gt;
 ------------+--------------&lt;br /&gt;
   &amp;quot;LC 1&amp;quot;    |  &amp;quot;Laçage&amp;quot;&lt;br /&gt;
   &amp;quot;TC 1&amp;quot;    |  &amp;quot;Trou de centrage&amp;quot;&lt;br /&gt;
   &amp;quot;GF 6&amp;quot;    |  &amp;quot;braquettes&amp;quot;  &lt;br /&gt;
   &amp;quot;GF 4&amp;quot;    |  &amp;quot;stum&amp;quot;                                                                                                      &lt;br /&gt;
   &amp;quot;GF 30&amp;quot;   |  &amp;quot;guimpes&amp;quot;                                                                                                    &lt;br /&gt;
   &amp;quot;TC 1&amp;quot;    |  &amp;quot;Trou de centrage&amp;quot;                                                                                            &lt;br /&gt;
   &amp;quot;LC 1&amp;quot;    |  &amp;quot;Laçage&amp;quot;                                                                                                       &lt;br /&gt;
   &amp;quot;GF 26&amp;quot;   |  &amp;quot;guimpes&amp;quot;                                                                                                &lt;br /&gt;
   &amp;quot;GF 4&amp;quot;    |  &amp;quot;stum&amp;quot;                                                                                                   &lt;br /&gt;
   &amp;quot;GF 6&amp;quot;    |  &amp;quot;braquettes&amp;quot;                                                                                               &lt;br /&gt;
   &amp;quot;GF 3&amp;quot;    |  &amp;quot;brodeus&amp;quot;                                                                                                  &lt;br /&gt;
   &amp;quot;TC 1&amp;quot;    |  &amp;quot;Trou de centrage&amp;quot;                                                                                         &lt;br /&gt;
   &amp;quot;LC 1&amp;quot;    |  &amp;quot;Laçage&amp;quot;                                                                                                      &lt;br /&gt;
   &amp;quot;GF 39&amp;quot;   |  &amp;quot;brodeus&amp;quot;                                                                                                 &lt;br /&gt;
   &amp;quot;TC 1&amp;quot;    |  &amp;quot;Trou de centrage&amp;quot;                                                                                           &lt;br /&gt;
   &amp;quot;LC 1&amp;quot;    |  &amp;quot;Laçage&amp;quot;                                                                                                    &lt;br /&gt;
                                                                                                                           &lt;br /&gt;
&amp;lt;div style=&amp;quot;font-size:7pt;color:blue;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;                                                                                                                          &lt;br /&gt;
  L T                GF39                   L T G   GF6  GF4          GF26            L T               GF30           GF4  GF6  T L&lt;br /&gt;
  C C _____________________________________ C C F  ____  __  ________________________ C C ____________________________  __  ____ C C&lt;br /&gt;
  1 1/                                     \1 1/3\/    \/  \/                        \1 1/                            \/  \/    \1 1&lt;br /&gt;
/------------------------------------------------------------------------------------------------------------------------------------\&lt;br /&gt;
|    OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO.  OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO.  OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO    |&lt;br /&gt;
| O  .O.O.O.OOOOOOO.OOO.OOOOOO.O.O.OOOOOOOOOO  OOOOOOOOOOO..O..OO...O.OO.....O..O..OOOO  OO...O...OOO.OOOOO...O.....O..OO..OOOOOO  O |&lt;br /&gt;
|    OOOOO.OO.O...OOO..O..OO.OO.OOOO.O..OO.O.  OOOOOO...OOOO.O.OOOO..O.OO.OOO..O.O.O...  ..OOO.OO..O.OO....O.O..O.OOOOOOOOOOOO...    |&lt;br /&gt;
|  ().OO.OO...OOOOOOOO.OO...O.OOOO..OO....O..()O..OOOOOOOOOOO.O....OO..O..OOO..OO.O.O..()OO.....OOO...OO..OO.O.OOO.OO.OOOOOOOOOOO()  |&lt;br /&gt;
|    ........................................  ...............OO..OO..O.......O........  ...........O...O...O.O...O...O..........    |&lt;br /&gt;
| O  .O....OO.O.O....O.O.OOO..O.O.OO.O..OOO.O  ..O...........OOO.OOO.OOOOOOO.OOO.OOO.OO  OOOOOOOOOOOOOOOOOOOO.OOOOOOOOO..........  O |&lt;br /&gt;
|    O.OOOOOOO.O.OOOO.O.OOOOOO.O.OOOO.OO.OOO.  OOO..........OOOOOOOOOOOOOOOOOOOOOOOOOO.  OOOOOOOOOOOOOOOOOOOOOOOOOOOOOO..........    |&lt;br /&gt;
\------------------------------------------------------------------------------------------------------------------------------------/    &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:91--&amp;gt;&lt;br /&gt;
*CGF2Card int32&lt;br /&gt;
ha de estar a 0.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:92--&amp;gt;&lt;br /&gt;
*CGF2Type int32&lt;br /&gt;
Número de columnas útiles en el cartón.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:93--&amp;gt;&lt;br /&gt;
*CGF2Taille int32&lt;br /&gt;
Número de columnas totales que caben del cartón.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:94--&amp;gt;&lt;br /&gt;
*CGF2Numlines int32&lt;br /&gt;
numero de entradas de las que consta la especificación del cartón.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:95--&amp;gt;&lt;br /&gt;
*CGF2Script string(CGF2Numlines)&lt;br /&gt;
Especificación del cartón. Formateado igual que CGF1Script.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:96--&amp;gt;&lt;br /&gt;
*CGF2Descrip string(CGF2Numlines)&lt;br /&gt;
Descripción de cada entada del cartón.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:97--&amp;gt;&lt;br /&gt;
*CFBCard int32&lt;br /&gt;
ha de estar a 1.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:98--&amp;gt;&lt;br /&gt;
*CFBType int32&lt;br /&gt;
Número de columnas útiles en el cartón.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:99--&amp;gt;&lt;br /&gt;
*CFBTaille int32&lt;br /&gt;
Número de columnas totales que caben del cartón multiplicadas por 8.Ex:&lt;br /&gt;
si el cartón tiene 75 columnas CFBTaille=75*8=600&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:100--&amp;gt;&lt;br /&gt;
*CFBNumlines int32&lt;br /&gt;
numero de entradas de las que consta la especificación del cartón.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:101--&amp;gt;&lt;br /&gt;
*CFBScript string(CFBNumlines)&lt;br /&gt;
Especificación del cartón. Formateado igual que CGF1Script. Excepto que los tipos aceptados&lt;br /&gt;
son:&lt;br /&gt;
   LC: Laçage&lt;br /&gt;
   TC: Trou de centrage&lt;br /&gt;
   TS: Trou de centrage simple&lt;br /&gt;
   EL: Element vide&lt;br /&gt;
   FB: Fine barre&lt;br /&gt;
   VB: Value&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:102--&amp;gt;&lt;br /&gt;
Es decir el tipo &amp;quot;GF&amp;quot; no existe para este tag y en su lugar hay el tipo &amp;quot;FB&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:103--&amp;gt;&lt;br /&gt;
*CFBDescrip string(CFBNumlines)&lt;br /&gt;
Descripción de cada entada del cartón.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:104--&amp;gt;&lt;br /&gt;
*CFBNGaits int32&lt;br /&gt;
Número de entradas para mapear las repeticiones de agujas de Fine Barre a los cartones en función de la repetición.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:105--&amp;gt;&lt;br /&gt;
*CFBGaitNRepeat int32(CFBNGaits)&lt;br /&gt;
Número de repetición a mapear&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:106--&amp;gt;&lt;br /&gt;
*CFBGaitNBar int32(CFBNGaits)&lt;br /&gt;
Número de aguja a mapear&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:107--&amp;gt;&lt;br /&gt;
*CFBGaitNGait int32(CFBNGaits)&lt;br /&gt;
Indice de agujero en el cartón&lt;br /&gt;
&lt;br /&gt;
==== TAGS DRAFT DATA ==== &amp;lt;!--T:109--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:110--&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:111--&amp;gt;&lt;br /&gt;
*NumCourses int32&lt;br /&gt;
Numero de pasadas del dibujo sin tener en cuenta las repeticiones.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:112--&amp;gt;&lt;br /&gt;
*BarNeedle int16(NumCourses*NumBars)&lt;br /&gt;
Despazamientos medidos en agujas de las barras en cada pasada. Ordenados de la siguiente manera:&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;!--T:113--&amp;gt;&lt;br /&gt;
BarNeedle(0)              Desplazamiento barra 1 en la primera pasada.&lt;br /&gt;
   BarNeedle(1)              Desplazamiento barra 1 en la segunda pasada.&lt;br /&gt;
   .&lt;br /&gt;
   .&lt;br /&gt;
   BarNeedle(NumCourses-1)   Desplazamiento barra 1 en la última pasada.&lt;br /&gt;
   BarNeedle(NumCourses)     Desplazamiento barra 2 en la primera pasada.&lt;br /&gt;
   .&lt;br /&gt;
   .&lt;br /&gt;
   BarNeedel(NumCourses*2-1) Desplazamiento barra 2 en la última pasada.&lt;br /&gt;
   BarNeedle(NumCourses)     Desplazamiento barra 3 en la primera pasada.&lt;br /&gt;
   .&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:114--&amp;gt;&lt;br /&gt;
*BarNeedleB int16(NumCourses*NumBars)&lt;br /&gt;
Solo se utiliza en maquinas de doble frontura. Es equivalente a BarNeedle pero contiene la información&lt;br /&gt;
para la segunda frontura.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:115--&amp;gt;&lt;br /&gt;
*BarHalves byte(NumCourses*NumBars)&lt;br /&gt;
Incremento de 1/2 aguja en el movimiento de la barra introducido manualmente por el diseñador desde el menú de Bareme&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:116--&amp;gt;&lt;br /&gt;
*BarKnitting byte(NumCourses*NumBars)&lt;br /&gt;
Indica en las maquinas que hacen 2 movimientos por pasada que movimiento se realiza&lt;br /&gt;
Valores:&lt;br /&gt;
 0 : Movimiento 0 0 . No liga&lt;br /&gt;
 1 : Movimeinto 0 1 . Liga&lt;br /&gt;
 2 : Movimeinto 1 0 . Liga&lt;br /&gt;
 3 : Movimeinto 1 1 . No liga&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:117--&amp;gt;&lt;br /&gt;
*BarKnittingB byte(NumCourses*NumBars)&lt;br /&gt;
Solo se utiliza en maquinas de doble frontura. Es equivalente a BarKnitting pero contiene la información&lt;br /&gt;
para la segunda frontura.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:118--&amp;gt;&lt;br /&gt;
*Layout_JacqData byte(NumCourses*JacqNeedles*Jacquard)&lt;br /&gt;
Cada byte guarda un bit de Jacquard. Valores:&lt;br /&gt;
0: T&lt;br /&gt;
1: H&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:119--&amp;gt;&lt;br /&gt;
*Layout_FrontureData byte(NumCourses*JacqNeedles*Jacquard)&lt;br /&gt;
Solo se utiliza en maquinas de doble frontura. Es equivalente a Layout_JacqData pero contiene la información&lt;br /&gt;
para la segunda frontura.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:120--&amp;gt;&lt;br /&gt;
*Layout_WBData byte(NumCourses*JacqNeedles*Jacquard)&lt;br /&gt;
Solo se utiliza en maquinas CLIPTRONIC . Contiene los datos para la barra de Embrodery(WB) en el mismo formato que&lt;br /&gt;
Layout_JacqData.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:121--&amp;gt;&lt;br /&gt;
*LayoutCourNRepeats int32&lt;br /&gt;
Numero de repeticiones de pasadas. Las repeticiones de pasadas afectan por igual las barras de dibujo y el jacquard.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:122--&amp;gt;&lt;br /&gt;
*LayoutCourNLayouts int32&lt;br /&gt;
Numero de bloques de pasadas a repetir&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:123--&amp;gt;&lt;br /&gt;
*LayoutCourRepeat int32(LayoutCourNLayouts)&lt;br /&gt;
Numero de pasadas que contiene cada bloque a repetir&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:124--&amp;gt;&lt;br /&gt;
*LayoutCourWhich int32(LayoutCourNRepeats)&lt;br /&gt;
indice del bloque que a repetir&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:125--&amp;gt;&lt;br /&gt;
*LayoutCourTimes int32(LayoutCourNRepeats)&lt;br /&gt;
numero de veces que se ha de repetir el bloque. Ejemplo:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:126--&amp;gt;&lt;br /&gt;
Normalmente como los dibujos suelen ser bastante repetitivos, para ahorrar trabajo y memoria no se guardan todas las pasadas&lt;br /&gt;
del dibujo. En un dibujo como el siguiente :&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;!--T:127--&amp;gt;&lt;br /&gt;
+------------------------------------------------------------------------------------------+&lt;br /&gt;
    |  ,~.~._,~.~._,~.~._,~.~._,~.~._,~.~._,~.~.    ,~.~._,~.~._,~.~._,~.~._,~.~._,~.~._,~.~.  | &lt;br /&gt;
    | / O.O   O.O   O.O   O.O   O.O   O.O   O.O \  / O.O   O.O   O.O   O.O   O.O   O.O   O.O \ | &lt;br /&gt;
    |( O:@:O O:@:O O:@:O O:@:O O:@:O O:@:O O:@:O )( O:@:O O:@:O O:@:O O:@:O O:@:O O:@:O O:@:O )| &lt;br /&gt;
    | \ O&#039;O   O&#039;O   O&#039;O   O&#039;O   O&#039;O   O&#039;O   O&#039;O /  \ O&#039;O   O&#039;O   O&#039;O   O&#039;O   O&#039;O   O&#039;O   O&#039;O / | &lt;br /&gt;
    |  )   . ,   . ,   . ,   . ,   . ,   . ,   (    )   . ,   . ,   . ,   . ,   . ,   . ,   (  | &lt;br /&gt;
/\  | (  * -@- * -@- * -@- * -@- * -@- * -@- *  )  (  * -@- * -@- * -@- * -@- * -@- * -@- *  ) | &lt;br /&gt;
 A  |  )   &#039; `   &#039; `   &#039; `   &#039; `   &#039; `   &#039; `   (    )   &#039; `   &#039; `   &#039; `   &#039; `   &#039; `   &#039; `   (  | &lt;br /&gt;
 g  | / O.O   O.O   O.O   O.O   O.O   O.O   O.O \  / O.O   O.O   O.O   O.O   O.O   O.O   O.O \ | &lt;br /&gt;
 u  |( O:@:O O:@:O O:@:O O:@:O O:@:O O:@:O O:@:O )( O:@:O O:@:O O:@:O O:@:O O:@:O O:@:O O:@:O )| &lt;br /&gt;
 j  | \ O&#039;O   O&#039;O   O&#039;O   O&#039;O   O&#039;O   O&#039;O   O&#039;O /  \ O&#039;O   O&#039;O   O&#039;O   O&#039;O   O&#039;O   O&#039;O   O&#039;O / | &lt;br /&gt;
 a  |  ·~·~·^·~·~·^·~·~·^·~·~·^·~·~·^·~·~·^·~·~·    ·~·~·^·~·~·^·~·~·^·~·~·^·~·~·^·~·~·^·~·~·  | &lt;br /&gt;
 s  +------------------------------------------------------------------------------------------+&lt;br /&gt;
     Pasadas &amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:128--&amp;gt;&lt;br /&gt;
Si se mira lo que hay guardado en el archivo se encontraría algo similar a :&lt;br /&gt;
                     &lt;br /&gt;
    +---------------+&lt;br /&gt;
    |  ,~.~._,~.~.  |&lt;br /&gt;
    | / O.O   O.O \ |&lt;br /&gt;
    |( O:@:O O:@:O )|&lt;br /&gt;
    | \ O&#039;O   O&#039;O / |&lt;br /&gt;
    |  )   . ,   (  |&lt;br /&gt;
/\  | (  * -@- *  ) | &lt;br /&gt;
 A  |  )   &#039; `   (  |&lt;br /&gt;
 g  | / O.O   O.O \ |&lt;br /&gt;
 u  |( O:@:O O:@:O )|&lt;br /&gt;
 j  | \ O&#039;O   O&#039;O / |&lt;br /&gt;
 a  |  ·~·~·^·~·~·  |&lt;br /&gt;
 s  +---------------+&lt;br /&gt;
     Pasadas &amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:129--&amp;gt;&lt;br /&gt;
Esto pasa por que se ha guardado solo una vez cada bloque que se repite. En este caso los bloques que se han usado:&lt;br /&gt;
&lt;br /&gt;
     &amp;lt;!--T:130--&amp;gt;&lt;br /&gt;
A      B        C&lt;br /&gt;
  +----+ +------+ +-----+&lt;br /&gt;
  |  ,~| |.~._,~| |.~.  | &lt;br /&gt;
  | / O| |.O   O| |.O \ | &lt;br /&gt;
  |( O:| |@:O O:| |@:O )| &lt;br /&gt;
  | \ O| |&#039;O   O| |&#039;O / | &lt;br /&gt;
  |  ) | |  . , | |  (  | &lt;br /&gt;
  | (  | |* -@- | |*  ) |&lt;br /&gt;
  |  ) | |  &#039; ` | |  (  | &lt;br /&gt;
  | / O| |.O   O| |.O \ | &lt;br /&gt;
  |( O:| |@:O O:| |@:O )|&lt;br /&gt;
  | \ O| |&#039;O   O| |&#039;O / |  &lt;br /&gt;
  |  ·~| |·~·^·~| |·~·  | &lt;br /&gt;
  +----+ +------+ +-----+&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:131--&amp;gt;&lt;br /&gt;
Se puede ver con facilidad que la sequencia de bloques para obtener el dibujo es: A B B B B B B C A B B B B B B C&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:132--&amp;gt;&lt;br /&gt;
LayoutCourNLayouts=3 pues hay tres bloques distintos ( A , B , C )&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:133--&amp;gt;&lt;br /&gt;
LayoutCourRepeat=Array(&lt;br /&gt;
   numero de pasadas de A,&lt;br /&gt;
   numero de pasadas de B,&lt;br /&gt;
   numero de pasadas de C&lt;br /&gt;
)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:134--&amp;gt;&lt;br /&gt;
NOTA: El número total de pasadas ha de ser igual a la suma de pasadas de los bloques de repeticiones. Es decir:&lt;br /&gt;
NumCourses=LayoutCourRepeat(0)+...+LayoutCourRepeat(LayoutCourNLayouts-1)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:135--&amp;gt;&lt;br /&gt;
Luego para codificar que se desea 1 repetición de A, 6 repeticiones de B y una repeticion de C se haria de la siguiente manera:&lt;br /&gt;
&lt;br /&gt;
                         &amp;lt;!--T:136--&amp;gt;&lt;br /&gt;
idx  |  LayoutCourWhich | LayoutCourTimes | Significado&lt;br /&gt;
                      --------+------------------+-----------------+------------------&lt;br /&gt;
                        _     |                  |                 |&lt;br /&gt;
                       /  0   |         1        |       1         | Bloque 1 (A) repetir una vez&lt;br /&gt;
                       |      |                  |                 |&lt;br /&gt;
                       |  1   |         2        |       6         | Bloque 2 (B) repetir 6 veces&lt;br /&gt;
                       |      |                  |                 |&lt;br /&gt;
                       |  2   |         3        |       1         | Bloque 3 (C) repetir una vez&lt;br /&gt;
LayoutCourNRepeats=6  &amp;lt;       |                  |                 |&lt;br /&gt;
                       |  3   |         1        |       1         | Bloque 1 (A) repetir una vez&lt;br /&gt;
                       |      |                  |                 |&lt;br /&gt;
                       |  4   |         2        |       6         | Bloque 2 (B) repetir 6 veces&lt;br /&gt;
                       |      |                  |                 |&lt;br /&gt;
                       \_ 5   |         3        |       1         | Bloque 3 (C) repetir una vez&lt;br /&gt;
                              |                  |                 |&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:137--&amp;gt;&lt;br /&gt;
*LayoutJacqNRepeats int32&lt;br /&gt;
Numero de repeticiones de agujas. Solo afecta el jacquard. Sigue el mismo sistema que las repeticiones de pasadas.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:138--&amp;gt;&lt;br /&gt;
*LayoutJacqNLayouts int32&lt;br /&gt;
Numero de bloques de agujas a repetir&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:139--&amp;gt;&lt;br /&gt;
*LayoutJacqRepeat int32(LayoutJacqNLayouts)&lt;br /&gt;
Numero de agujas que contiene cada bloque a repetir&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:140--&amp;gt;&lt;br /&gt;
*LayoutJacqWhich int32(LayoutJacqNRepeats)&lt;br /&gt;
indice del bloque que a repetir&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:141--&amp;gt;&lt;br /&gt;
*LayoutJacqTimes int32(LayoutJacqNRepeats)&lt;br /&gt;
numero de veces que se ha de repetir el bloque.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:142--&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;/div&gt;</summary>
		<author><name>Pascual</name></author>
	</entry>
	<entry>
		<id>https://wiki.cadt.com/index.php?title=Drf-reader&amp;diff=3155</id>
		<title>Drf-reader</title>
		<link rel="alternate" type="text/html" href="https://wiki.cadt.com/index.php?title=Drf-reader&amp;diff=3155"/>
		<updated>2016-10-05T17:15:54Z</updated>

		<summary type="html">&lt;p&gt;Pascual: /* DLL_EXPORTS */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;languages/&amp;gt;&lt;br /&gt;
[[Category:SAPO]]&lt;br /&gt;
[[Category:Devel]]&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== DLL_EXPORTS === &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;void drf_clear_errors()&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Descr:&lt;br /&gt;
&amp;lt;!--T:1--&amp;gt;&lt;br /&gt;
Borra todos los mensajes de error producidos por la librería.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;int drf_get_num_errors()&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Descr:&lt;br /&gt;
&amp;lt;!--T:2--&amp;gt;&lt;br /&gt;
Obtiene el número de mensajes de error producidos por la librería.&lt;br /&gt;
&lt;br /&gt;
Return:&lt;br /&gt;
&amp;lt;!--T:3--&amp;gt;&lt;br /&gt;
Número de mensajes almacenados.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;const char* drf_get_error(int idx)&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Descr:&lt;br /&gt;
&amp;lt;!--T:4--&amp;gt;&lt;br /&gt;
Obtiene el mensaje de error indicado por idx (referenciado a 0).&lt;br /&gt;
&lt;br /&gt;
Params:&lt;br /&gt;
idx:&lt;br /&gt;
&amp;lt;!--T:5--&amp;gt;&lt;br /&gt;
Número de mensaje a obtener. Rango entre: 0 y (drf_get_num_errors()-1) ambos incluidos.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:6--&amp;gt;&lt;br /&gt;
Return:&lt;br /&gt;
Éxito: Puntero a una cadena de caracteres ASCII terminada por el byte NUL (&#039;\0&#039;)&lt;br /&gt;
Error: NULL en caso que el valor de idx esté fuera de rango.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;int drf_to_json(char *path,FILE *json,int options)&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Descr:&lt;br /&gt;
&amp;lt;!--T:7--&amp;gt;&lt;br /&gt;
Serializa a JSON un archivo en formato DRF.&lt;br /&gt;
&lt;br /&gt;
Params:&lt;br /&gt;
path:&lt;br /&gt;
Ruta al fichero DRF a serializar en formato Windows ANSI.&lt;br /&gt;
json:&lt;br /&gt;
puntero FILE ya abierto y con la escritura habilitada.&lt;br /&gt;
options:&lt;br /&gt;
&amp;lt;!--T:8--&amp;gt;&lt;br /&gt;
Selecciona que información se serializará. Valores possibles:&lt;br /&gt;
&lt;br /&gt;
   DRF_GET_GENERIC_INFO&lt;br /&gt;
   DRF_GET_MACHINE_INFO&lt;br /&gt;
   DRF_GET_DRAFT_INFO&lt;br /&gt;
   DRF_GET_ALL_INFO&lt;br /&gt;
&lt;br /&gt;
o una combinación de los valores anteriores (OR)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:9--&amp;gt;&lt;br /&gt;
Return:&lt;br /&gt;
Éxito : retorna valor igual a 0&lt;br /&gt;
Error : retorna valor diferente de 0&lt;br /&gt;
&lt;br /&gt;
=== TAGS ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:11--&amp;gt;&lt;br /&gt;
Codificación a JSON de los datos:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:12--&amp;gt;&lt;br /&gt;
Internamente el DRF guarda la información como una lista de tags. Cada tag puede contener uno o varios elementos del mismo tipo.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:13--&amp;gt;&lt;br /&gt;
Al codificar un DRF a JSON se codifica como un objeto donde se usa el nombre del tag como clave y el contenido de éste como valor.&lt;br /&gt;
En caso que el tag pueda contener más de un valor, la librería serializa el contenido como un vector.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:14--&amp;gt;&lt;br /&gt;
Como el formato DRF soporta más tipos que el JSON, la librería los convertirá a un tipo soportado por el JSON. La siguiente tabla muestra a que &lt;br /&gt;
tipo del JSON se convierte cada tipo del DRF &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    DRF  | JSON   &lt;br /&gt;
  -------+--------&lt;br /&gt;
  byte   | &lt;br /&gt;
  int16  | int&lt;br /&gt;
  int32  |&lt;br /&gt;
  -------+-------&lt;br /&gt;
  float  | float&lt;br /&gt;
  -------+-------&lt;br /&gt;
  string | string*&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:16--&amp;gt;&lt;br /&gt;
*) Todos los strings contienen solo caracteres ASCII (encoding:ASCII-7)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== TAGS GENERIC INFO ==== &amp;lt;!--T:17--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:18--&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:19--&amp;gt;&lt;br /&gt;
*Software string&lt;br /&gt;
Nombre del programa que ha generado el fichero .DRF&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:20--&amp;gt;&lt;br /&gt;
*DrawName string&lt;br /&gt;
Referencia del dibujo (max. 256 carac).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:21--&amp;gt;&lt;br /&gt;
*Company string&lt;br /&gt;
Compañía que ha creado el dibujo (max. 30 carac).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:22--&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== TAGS MACHINE INFO ==== &amp;lt;!--T:23--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:25--&amp;gt;&lt;br /&gt;
*Machine string&lt;br /&gt;
Referencia de la máquina. (max. 30 carac) &lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:26--&amp;gt;&lt;br /&gt;
*MachineType string&lt;br /&gt;
Modelo de la máquina. Sólo es válido un modelo definido en el sistema de diseño. (p.e. LEAVERS)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:27--&amp;gt;&lt;br /&gt;
*Description string&lt;br /&gt;
Descripción o información adicional de la máquina.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:28--&amp;gt;&lt;br /&gt;
*Serial string&lt;br /&gt;
Num. serie de la máquina. (max. 30 carac) . Puede contener carácteres no numéricos.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:29--&amp;gt;&lt;br /&gt;
*Version int32 [RASCHEL SU]&lt;br /&gt;
Versión de la máquina raschel SU (versión 1 .. 4).&lt;br /&gt;
   versión 1 . Sin ahorrador de memoria&lt;br /&gt;
   versión 2 . Con ahorrador de memoria (repeticiones)&lt;br /&gt;
   versión 3 . Sin ahorrador de memoria + información empresa.&lt;br /&gt;
   versión 4 . Con ahorrador de memoria (repeciciones) + información empresa.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:30--&amp;gt;&lt;br /&gt;
*Jacquard int32&lt;br /&gt;
Número de barras de Jacquard independientes. Valores posibles: &lt;br /&gt;
   0 : No jacquard&lt;br /&gt;
   1 : 1 jacquard o fina barra simple&lt;br /&gt;
   2 : 2 jacquard raschel o fina barra doble.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:31--&amp;gt;&lt;br /&gt;
*Fronture int32 [RASCHEL DOUBLE NEEDLE BAR]&lt;br /&gt;
Número de fonturas de la máquina&lt;br /&gt;
   1 : 1 fontura&lt;br /&gt;
   2 : 2 fontures (delante / detrás)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:32--&amp;gt;&lt;br /&gt;
*BarsRepeat int32&lt;br /&gt;
Altura del diseño.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:33--&amp;gt;&lt;br /&gt;
*NumRepeats int32&lt;br /&gt;
Num de repeticiones en el diseño.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:34--&amp;gt;&lt;br /&gt;
*NumBars int32&lt;br /&gt;
Numero de barras que tiene el telar.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:35--&amp;gt;&lt;br /&gt;
*Plate int32&lt;br /&gt;
En máquinas raschel (textronic), indica la posición de la plancha.&lt;br /&gt;
En máquinas leavers indica donde empiezan los brodeurs.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:36--&amp;gt;&lt;br /&gt;
*JacqNeedles int32&lt;br /&gt;
Numero de agujas de Jacquard del telar.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:37--&amp;gt;&lt;br /&gt;
*MachNeedles int32&lt;br /&gt;
Numero total de agujas del telar.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:38--&amp;gt;&lt;br /&gt;
*BarsOffset int32&lt;br /&gt;
Desplazamiento de barras (orillos=zona perdida)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:39--&amp;gt;&lt;br /&gt;
*JacqOffset int32&lt;br /&gt;
Deplazamiento de las agujas de jacquard en el telar.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:40--&amp;gt;&lt;br /&gt;
*MaxDisp int32 [RASCHEL SU]&lt;br /&gt;
Deplazamiento máximo general de las barras para máquinas raschel SU.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:41--&amp;gt;&lt;br /&gt;
*Proximity int32&lt;br /&gt;
Para máquinas raschel, distáncia máxima a la que se pueden acercar dos barras del mismo grupo.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:42--&amp;gt;&lt;br /&gt;
*ProximityCollindant int32&lt;br /&gt;
Para máquinas raschel, distáncia máxima a la que se pueden acercar dos barras del mismo grupo colindantes.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:43--&amp;gt;&lt;br /&gt;
*JacqRt int32&lt;br /&gt;
Deplazamiento Rt del jacquard:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:44--&amp;gt;&lt;br /&gt;
para máquinas raschel:&lt;br /&gt;
   no jacquard: rt = 0&lt;br /&gt;
   jacquard simple o doble: rt = 1&lt;br /&gt;
Indica cuántas agujas se desplaza la lectura del jacaquard en las pasadas alternadas.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:45--&amp;gt;&lt;br /&gt;
para máquinas leavers&lt;br /&gt;
   no fina barra:      0&lt;br /&gt;
   fina barra simple: -1&lt;br /&gt;
   fina barra doble:   0&lt;br /&gt;
Indica cuántas agujas se desplaza la lectura del jacquard (desde la posición derecha de la máquina en las pasadas alternadas).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:46--&amp;gt;&lt;br /&gt;
*JacqRtCourse int32&lt;br /&gt;
Indica que pasadas se aplica el valor JacqRt.&lt;br /&gt;
   0:pasadas pares&lt;br /&gt;
   1: pasadas impares&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:47--&amp;gt;&lt;br /&gt;
*FinalGauge float&lt;br /&gt;
Galga de producto tejido aplicando encongimiento (medida en agujas/pulgada)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:48--&amp;gt;&lt;br /&gt;
*FinalQuality float&lt;br /&gt;
Calidad de producto tejido aplicando elasticidad (medida en pasadas/centímetro).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:49--&amp;gt;&lt;br /&gt;
*RealGauge float&lt;br /&gt;
Galga de máquina (medida en agujas/pulgada)-&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:50--&amp;gt;&lt;br /&gt;
*RealQuality float&lt;br /&gt;
Calidad de máquina (medida en pasadas/centímetro).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:51--&amp;gt;&lt;br /&gt;
*Shrinkage float&lt;br /&gt;
Porcentage de encongimiento en agujas (0-100%)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:52--&amp;gt;&lt;br /&gt;
*Elasticity float&lt;br /&gt;
Porcentage de elasticidad en pasadas (0-100%)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:53--&amp;gt;&lt;br /&gt;
*BarNumBar int32(NumBars)&lt;br /&gt;
Numero de cada una de las barras del telar (valor numérico consecutivo)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:54--&amp;gt;&lt;br /&gt;
*BarName string(NumBars)&lt;br /&gt;
Nombre o identificador de cada una de las barras del telar&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:55--&amp;gt;&lt;br /&gt;
*BarGroup int32(NumBars)&lt;br /&gt;
En máquinas raschel el número de grupo de la barra.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:56--&amp;gt;&lt;br /&gt;
*BarStop int32(NumBars)&lt;br /&gt;
Posición 0 de la barra.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:57--&amp;gt;&lt;br /&gt;
*BarUtil int32(NumBars)&lt;br /&gt;
Visibilidad de la barra en el sistema de diseño.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:58--&amp;gt;&lt;br /&gt;
*BarType int32(NumBars)&lt;br /&gt;
Tipo de hilo por defecto de la barra.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:59--&amp;gt;&lt;br /&gt;
*BarMaxGimp int32&lt;br /&gt;
Guimpada máxima en agujas de la barra.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:60--&amp;gt;&lt;br /&gt;
*BarDrive int32&lt;br /&gt;
En máquinas raschel SU, el número de getribe de la barra.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:61--&amp;gt;&lt;br /&gt;
*BarFactor int32&lt;br /&gt;
En máquinas raschel SU, multiplicador de la barra.&lt;br /&gt;
1: factor de 1 agulla&lt;br /&gt;
2: factor de 2 agulles,&lt;br /&gt;
4: factor de 4 agulles.&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:62--&amp;gt;&lt;br /&gt;
*BarInvert int32&lt;br /&gt;
En máquinas raschel SU, les barres invertides. &lt;br /&gt;
1: barra invertida.&lt;br /&gt;
0: barra no invertida.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:63--&amp;gt;&lt;br /&gt;
*BarWork int32&lt;br /&gt;
Trabajo de la barra en el sistema de diseño.&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;!--T:64--&amp;gt;&lt;br /&gt;
0: Chainette&lt;br /&gt;
   1: Jacquard     [1]&lt;br /&gt;
   2: Brodeur&lt;br /&gt;
   3: Gros&lt;br /&gt;
   4: Fin&lt;br /&gt;
   5: Brillant&lt;br /&gt;
   6: Picot&lt;br /&gt;
   7: Corde&lt;br /&gt;
   8: Lycra&lt;br /&gt;
   9: Fond&lt;br /&gt;
  10: Bloc&lt;br /&gt;
  11: Cord&lt;br /&gt;
  12: Guimp&lt;br /&gt;
  13: Nul&lt;br /&gt;
  14: Jacq 0/2,6/4 [1]&lt;br /&gt;
  15: Jacq 0/2,8/6 [1]&lt;br /&gt;
  16: Fine Bar.  [sup]&lt;br /&gt;
  17: Braquette&amp;quot;&lt;br /&gt;
  18: Jacquard     [2]&lt;br /&gt;
  19: Jacq 0/2,6/4 [2]&lt;br /&gt;
  20: Jacq 0/2,8/6 [2]&lt;br /&gt;
  21: Fine Bar.  [inf]&lt;br /&gt;
  22: Jacquard&lt;br /&gt;
  23: Fine Barre&lt;br /&gt;
  24: Fallplate&lt;br /&gt;
  25: Embrodery&lt;br /&gt;
  26: EFS&lt;br /&gt;
  27: Reservé 1&lt;br /&gt;
  28: Reservé 2&lt;br /&gt;
  29: Jacq 0/2,6/4&lt;br /&gt;
  30: Jacq 0/2,8/6&lt;br /&gt;
  31: Bord&lt;br /&gt;
  32: Lisieres&lt;br /&gt;
  33: Romaines&lt;br /&gt;
  34: Sonnette&lt;br /&gt;
  35: Guimp devant&lt;br /&gt;
  36: Petite Corde&lt;br /&gt;
  37: Fileur&lt;br /&gt;
  38: Separation&lt;br /&gt;
  39: Corde Termo&lt;br /&gt;
  40: Solv rom&lt;br /&gt;
  41: Vis&lt;br /&gt;
  42: Jacquard     [3]&lt;br /&gt;
  43: Jacquard     [4]&lt;br /&gt;
  44: Space Fabric&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:65--&amp;gt;&lt;br /&gt;
*BarKnit&lt;br /&gt;
En máquines raschel textronic tipous de lligada:&lt;br /&gt;
  0 : no planxa&lt;br /&gt;
  1 : lligada 1 (mecanica)&lt;br /&gt;
  2 : lligada 2 (binaria)&lt;br /&gt;
  3 : lligada 3 (mecánica (2))&lt;br /&gt;
  4 : lligada 4 (binària (2))&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:66--&amp;gt;&lt;br /&gt;
*BarTimes&lt;br /&gt;
En máquines raschel textonic temps de la lligada&lt;br /&gt;
  0 : no planxa&lt;br /&gt;
  2 : temps 2 (p.e) 0202 0202 0202&lt;br /&gt;
  4 : temps 4 (p.e) 0220 0220 0220&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:67--&amp;gt;&lt;br /&gt;
*BarMode&lt;br /&gt;
En máquines raschel textronic el mode la la barra:&lt;br /&gt;
  0 : mode A (p.e 0220)&lt;br /&gt;
  1 : mode B (p.e 2002)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:68--&amp;gt;&lt;br /&gt;
*BarModif int32&lt;br /&gt;
En máquines raschel textronic indica que la barra no es pot deslligar&lt;br /&gt;
  0 : no es pot deslligar&lt;br /&gt;
  1 : si es pot deslligar&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:69--&amp;gt;&lt;br /&gt;
*BarTension int32&lt;br /&gt;
Tensió de la barra a les simulacions.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:70--&amp;gt;&lt;br /&gt;
*BarNumFingers int32(NumBars)&lt;br /&gt;
Número de pasadors de la barra&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:71--&amp;gt;&lt;br /&gt;
*BarModeDrop int32(NumBars)&lt;br /&gt;
Ponderación de cada uno de los 7 bits que se usan para indicar el desplazamiento de la barra. Valores:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;!--T:72--&amp;gt;&lt;br /&gt;
Valor | B7 | B6 | B5 | B4 | B3 | B2 | B1&lt;br /&gt;
 ------+----+----+----+----+----+----+----&lt;br /&gt;
    0  |  8 |  8 |  8 |  4 |  2 |  1 |1/2&lt;br /&gt;
 ------+----+----+----+----+----+----+----&lt;br /&gt;
    1  | 16 |  8 |  8 |  4 |  2 |  1 |1/2&lt;br /&gt;
 ------+----+----+----+----+----+----+----&lt;br /&gt;
    2  | 16 | 16 |  8 |  4 |  2 |  1 |1/2&lt;br /&gt;
 ------+----+----+----+----+----+----+----&lt;br /&gt;
    3  | 32 | 16 |  8 |  4 |  2 |  1 |1/2&lt;br /&gt;
 ------+----+----+----+----+----+----+----&lt;br /&gt;
    4  |  8 |  8 |  8 |  8 |  4 |  2 | 1&lt;br /&gt;
 ------+----+----+----+----+----+----+----&lt;br /&gt;
    5  | 16 |  8 |  8 |  8 |  4 |  2 | 1&lt;br /&gt;
 ------+----+----+----+----+----+----+----&lt;br /&gt;
    6  |  4 |  4 |  4 |  4 |  2 |  1 | 1&lt;br /&gt;
 ------+----+----+----+----+----+----+----&lt;br /&gt;
    7  |  0 |  0 |  0 |  1 |  2 |  1 |1/2&lt;br /&gt;
 ------+----+----+----+----+----+----+----&lt;br /&gt;
    8  |  4 |  4 |  4 |  4 |  2 |  1 |1/2&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:73--&amp;gt;&lt;br /&gt;
*BarMaxDesp int32(NumBars)&lt;br /&gt;
Desplazamiento máximo de la barra en agujas&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:74--&amp;gt;&lt;br /&gt;
*BarActive byte(NumBars)&lt;br /&gt;
Sólo para maquinas EL. Indica si la barra esta en uso o no.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:75--&amp;gt;&lt;br /&gt;
*BarHalvesUp byte(NumBars)&lt;br /&gt;
Si en la pasada se incrementa la posición de la barra en BarHalvesUp agujas o más, entonces , se añade media aguja a la posición final.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:76--&amp;gt;&lt;br /&gt;
*BarHalvesDn byte(NumBars)&lt;br /&gt;
Si en la pasada se decrementa la posición de la barra en BarHalvesDwn agujas o más, entonces , se le resta media aguja a la posición final.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:77--&amp;gt;&lt;br /&gt;
*BarString int32(NumBars)&lt;br /&gt;
Valors:&lt;br /&gt;
0:&lt;br /&gt;
1:ple&lt;br /&gt;
2:1f 1x&lt;br /&gt;
3:1x 1f&lt;br /&gt;
4:buit&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:78--&amp;gt;&lt;br /&gt;
*BarFronture int32(NumBars)&lt;br /&gt;
Solo se usa en las máquinas de doble frontura. Da la frontura en la que empieza a trabajar la barra.Valores:&lt;br /&gt;
0: primera forntura&lt;br /&gt;
1: segunda frontura&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:79--&amp;gt;&lt;br /&gt;
*BarDropsUtil int32(7*NumBars)&lt;br /&gt;
indica como se deben perforar los 7 posiciones correspondientes a la barra:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:80--&amp;gt;&lt;br /&gt;
Valor:&lt;br /&gt;
0: Usado. Siempre a 1. Es decir: no perforar nunca&lt;br /&gt;
1: Usado, Se perforara o no en funcion del desplazamiento de la barra&lt;br /&gt;
2: Usado. Siemre a 0. Es decir, se perfora siempre&lt;br /&gt;
3: No usado. No se perfora&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:81--&amp;gt;&lt;br /&gt;
*FingerStop int32(num_fingers) num_fingers=BarNumFingers(0) + ... + BarNumFingers(NumBars-1)&lt;br /&gt;
Stop del pasador relativo al stop de la barra.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:82--&amp;gt;&lt;br /&gt;
*FingerType int32(num_fingers) num_fingers=BarNumFingers(0) + ... + BarNumFingers(NumBars-1)&lt;br /&gt;
Tipo de pasador.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:83--&amp;gt;&lt;br /&gt;
*CGF1Card int32&lt;br /&gt;
ha de estar a 0.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:84--&amp;gt;&lt;br /&gt;
*CGF1Type int32&lt;br /&gt;
Número de columnas útiles en el cartón.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:85--&amp;gt;&lt;br /&gt;
*CGF1Taille int32&lt;br /&gt;
Número de columnas totales que caben del cartón.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:86--&amp;gt;&lt;br /&gt;
*CGF1Numlines int32&lt;br /&gt;
numero de entradas de las que consta la especificación del cartón.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:87--&amp;gt;&lt;br /&gt;
*CGF1Script string(CGF1Numlines)&lt;br /&gt;
Lista de cadenas de caracteres que detallan como se ha de perforar  cada columna del cartón empezando por la columna de mas a la derecha.&lt;br /&gt;
Cada cadena de caracteres tiene el formato: &amp;lt;codigo de tipo&amp;gt; &amp;lt;espacio&amp;gt; &amp;lt;numero de repeticiones&amp;gt;. Ex: &amp;quot;LC 1&amp;quot;.&lt;br /&gt;
Los codigos de tipo validos son:&lt;br /&gt;
   LC: Laçage&lt;br /&gt;
   TC: Trou de centrage&lt;br /&gt;
   TS: Trou de centrage simple&lt;br /&gt;
   EL: Element vide&lt;br /&gt;
   GF: Gros fil&lt;br /&gt;
   VB: Value&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:88--&amp;gt;&lt;br /&gt;
*CGF1Descrip string(CGF1Numlines)&lt;br /&gt;
Descripción de cada entada del cartón.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:89--&amp;gt;&lt;br /&gt;
Ex:&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;!--T:90--&amp;gt;&lt;br /&gt;
CGF1Script | CGF1Descrip&lt;br /&gt;
 ------------+--------------&lt;br /&gt;
   &amp;quot;LC 1&amp;quot;    |  &amp;quot;Laçage&amp;quot;&lt;br /&gt;
   &amp;quot;TC 1&amp;quot;    |  &amp;quot;Trou de centrage&amp;quot;&lt;br /&gt;
   &amp;quot;GF 6&amp;quot;    |  &amp;quot;braquettes&amp;quot;  &lt;br /&gt;
   &amp;quot;GF 4&amp;quot;    |  &amp;quot;stum&amp;quot;                                                                                                      &lt;br /&gt;
   &amp;quot;GF 30&amp;quot;   |  &amp;quot;guimpes&amp;quot;                                                                                                    &lt;br /&gt;
   &amp;quot;TC 1&amp;quot;    |  &amp;quot;Trou de centrage&amp;quot;                                                                                            &lt;br /&gt;
   &amp;quot;LC 1&amp;quot;    |  &amp;quot;Laçage&amp;quot;                                                                                                       &lt;br /&gt;
   &amp;quot;GF 26&amp;quot;   |  &amp;quot;guimpes&amp;quot;                                                                                                &lt;br /&gt;
   &amp;quot;GF 4&amp;quot;    |  &amp;quot;stum&amp;quot;                                                                                                   &lt;br /&gt;
   &amp;quot;GF 6&amp;quot;    |  &amp;quot;braquettes&amp;quot;                                                                                               &lt;br /&gt;
   &amp;quot;GF 3&amp;quot;    |  &amp;quot;brodeus&amp;quot;                                                                                                  &lt;br /&gt;
   &amp;quot;TC 1&amp;quot;    |  &amp;quot;Trou de centrage&amp;quot;                                                                                         &lt;br /&gt;
   &amp;quot;LC 1&amp;quot;    |  &amp;quot;Laçage&amp;quot;                                                                                                      &lt;br /&gt;
   &amp;quot;GF 39&amp;quot;   |  &amp;quot;brodeus&amp;quot;                                                                                                 &lt;br /&gt;
   &amp;quot;TC 1&amp;quot;    |  &amp;quot;Trou de centrage&amp;quot;                                                                                           &lt;br /&gt;
   &amp;quot;LC 1&amp;quot;    |  &amp;quot;Laçage&amp;quot;                                                                                                    &lt;br /&gt;
                                                                                                                           &lt;br /&gt;
&amp;lt;div style=&amp;quot;font-size:7pt;color:blue;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;                                                                                                                          &lt;br /&gt;
  L T                GF39                   L T G   GF6  GF4          GF26            L T               GF30           GF4  GF6  T L&lt;br /&gt;
  C C _____________________________________ C C F  ____  __  ________________________ C C ____________________________  __  ____ C C&lt;br /&gt;
  1 1/                                     \1 1/3\/    \/  \/                        \1 1/                            \/  \/    \1 1&lt;br /&gt;
/------------------------------------------------------------------------------------------------------------------------------------\&lt;br /&gt;
|    OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO.  OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO.  OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO    |&lt;br /&gt;
| O  .O.O.O.OOOOOOO.OOO.OOOOOO.O.O.OOOOOOOOOO  OOOOOOOOOOO..O..OO...O.OO.....O..O..OOOO  OO...O...OOO.OOOOO...O.....O..OO..OOOOOO  O |&lt;br /&gt;
|    OOOOO.OO.O...OOO..O..OO.OO.OOOO.O..OO.O.  OOOOOO...OOOO.O.OOOO..O.OO.OOO..O.O.O...  ..OOO.OO..O.OO....O.O..O.OOOOOOOOOOOO...    |&lt;br /&gt;
|  ().OO.OO...OOOOOOOO.OO...O.OOOO..OO....O..()O..OOOOOOOOOOO.O....OO..O..OOO..OO.O.O..()OO.....OOO...OO..OO.O.OOO.OO.OOOOOOOOOOO()  |&lt;br /&gt;
|    ........................................  ...............OO..OO..O.......O........  ...........O...O...O.O...O...O..........    |&lt;br /&gt;
| O  .O....OO.O.O....O.O.OOO..O.O.OO.O..OOO.O  ..O...........OOO.OOO.OOOOOOO.OOO.OOO.OO  OOOOOOOOOOOOOOOOOOOO.OOOOOOOOO..........  O |&lt;br /&gt;
|    O.OOOOOOO.O.OOOO.O.OOOOOO.O.OOOO.OO.OOO.  OOO..........OOOOOOOOOOOOOOOOOOOOOOOOOO.  OOOOOOOOOOOOOOOOOOOOOOOOOOOOOO..........    |&lt;br /&gt;
\------------------------------------------------------------------------------------------------------------------------------------/    &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:91--&amp;gt;&lt;br /&gt;
*CGF2Card int32&lt;br /&gt;
ha de estar a 0.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:92--&amp;gt;&lt;br /&gt;
*CGF2Type int32&lt;br /&gt;
Número de columnas útiles en el cartón.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:93--&amp;gt;&lt;br /&gt;
*CGF2Taille int32&lt;br /&gt;
Número de columnas totales que caben del cartón.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:94--&amp;gt;&lt;br /&gt;
*CGF2Numlines int32&lt;br /&gt;
numero de entradas de las que consta la especificación del cartón.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:95--&amp;gt;&lt;br /&gt;
*CGF2Script string(CGF2Numlines)&lt;br /&gt;
Especificación del cartón. Formateado igual que CGF1Script.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:96--&amp;gt;&lt;br /&gt;
*CGF2Descrip string(CGF2Numlines)&lt;br /&gt;
Descripción de cada entada del cartón.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:97--&amp;gt;&lt;br /&gt;
*CFBCard int32&lt;br /&gt;
ha de estar a 1.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:98--&amp;gt;&lt;br /&gt;
*CFBType int32&lt;br /&gt;
Número de columnas útiles en el cartón.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:99--&amp;gt;&lt;br /&gt;
*CFBTaille int32&lt;br /&gt;
Número de columnas totales que caben del cartón multiplicadas por 8.Ex:&lt;br /&gt;
si el cartón tiene 75 columnas CFBTaille=75*8=600&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:100--&amp;gt;&lt;br /&gt;
*CFBNumlines int32&lt;br /&gt;
numero de entradas de las que consta la especificación del cartón.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:101--&amp;gt;&lt;br /&gt;
*CFBScript string(CFBNumlines)&lt;br /&gt;
Especificación del cartón. Formateado igual que CGF1Script. Excepto que los tipos aceptados&lt;br /&gt;
son:&lt;br /&gt;
   LC: Laçage&lt;br /&gt;
   TC: Trou de centrage&lt;br /&gt;
   TS: Trou de centrage simple&lt;br /&gt;
   EL: Element vide&lt;br /&gt;
   FB: Fine barre&lt;br /&gt;
   VB: Value&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:102--&amp;gt;&lt;br /&gt;
Es decir el tipo &amp;quot;GF&amp;quot; no existe para este tag y en su lugar hay el tipo &amp;quot;FB&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:103--&amp;gt;&lt;br /&gt;
*CFBDescrip string(CFBNumlines)&lt;br /&gt;
Descripción de cada entada del cartón.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:104--&amp;gt;&lt;br /&gt;
*CFBNGaits int32&lt;br /&gt;
Número de entradas para mapear las repeticiones de agujas de Fine Barre a los cartones en función de la repetición.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:105--&amp;gt;&lt;br /&gt;
*CFBGaitNRepeat int32(CFBNGaits)&lt;br /&gt;
Número de repetición a mapear&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:106--&amp;gt;&lt;br /&gt;
*CFBGaitNBar int32(CFBNGaits)&lt;br /&gt;
Número de aguja a mapear&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:107--&amp;gt;&lt;br /&gt;
*CFBGaitNGait int32(CFBNGaits)&lt;br /&gt;
Indice de agujero en el cartón&lt;br /&gt;
&lt;br /&gt;
==== TAGS DRAFT DATA ==== &amp;lt;!--T:109--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:110--&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:111--&amp;gt;&lt;br /&gt;
*NumCourses int32&lt;br /&gt;
Numero de pasadas del dibujo sin tener en cuenta las repeticiones.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:112--&amp;gt;&lt;br /&gt;
*BarNeedle int16(NumCourses*NumBars)&lt;br /&gt;
Despazamientos medidos en agujas de las barras en cada pasada. Ordenados de la siguiente manera:&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;!--T:113--&amp;gt;&lt;br /&gt;
BarNeedle(0)              Desplazamiento barra 1 en la primera pasada.&lt;br /&gt;
   BarNeedle(1)              Desplazamiento barra 1 en la segunda pasada.&lt;br /&gt;
   .&lt;br /&gt;
   .&lt;br /&gt;
   BarNeedle(NumCourses-1)   Desplazamiento barra 1 en la última pasada.&lt;br /&gt;
   BarNeedle(NumCourses)     Desplazamiento barra 2 en la primera pasada.&lt;br /&gt;
   .&lt;br /&gt;
   .&lt;br /&gt;
   BarNeedel(NumCourses*2-1) Desplazamiento barra 2 en la última pasada.&lt;br /&gt;
   BarNeedle(NumCourses)     Desplazamiento barra 3 en la primera pasada.&lt;br /&gt;
   .&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:114--&amp;gt;&lt;br /&gt;
*BarNeedleB int16(NumCourses*NumBars)&lt;br /&gt;
Solo se utiliza en maquinas de doble frontura. Es equivalente a BarNeedle pero contiene la información&lt;br /&gt;
para la segunda frontura.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:115--&amp;gt;&lt;br /&gt;
*BarHalves byte(NumCourses*NumBars)&lt;br /&gt;
Incremento de 1/2 aguja en el movimiento de la barra introducido manualmente por el diseñador desde el menú de Bareme&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:116--&amp;gt;&lt;br /&gt;
*BarKnitting byte(NumCourses*NumBars)&lt;br /&gt;
Indica en las maquinas que hacen 2 movimientos por pasada que movimiento se realiza&lt;br /&gt;
Valores:&lt;br /&gt;
 0 : Movimiento 0 0 . No liga&lt;br /&gt;
 1 : Movimeinto 0 1 . Liga&lt;br /&gt;
 2 : Movimeinto 1 0 . Liga&lt;br /&gt;
 3 : Movimeinto 1 1 . No liga&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:117--&amp;gt;&lt;br /&gt;
*BarKnittingB byte(NumCourses*NumBars)&lt;br /&gt;
Solo se utiliza en maquinas de doble frontura. Es equivalente a BarKnitting pero contiene la información&lt;br /&gt;
para la segunda frontura.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:118--&amp;gt;&lt;br /&gt;
*Layout_JacqData byte(NumCourses*JacqNeedles*Jacquard)&lt;br /&gt;
Cada byte guarda un bit de Jacquard. Valores:&lt;br /&gt;
0: T&lt;br /&gt;
1: H&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:119--&amp;gt;&lt;br /&gt;
*Layout_FrontureData byte(NumCourses*JacqNeedles*Jacquard)&lt;br /&gt;
Solo se utiliza en maquinas de doble frontura. Es equivalente a Layout_JacqData pero contiene la información&lt;br /&gt;
para la segunda frontura.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:120--&amp;gt;&lt;br /&gt;
*Layout_WBData byte(NumCourses*JacqNeedles*Jacquard)&lt;br /&gt;
Solo se utiliza en maquinas CLIPTRONIC . Contiene los datos para la barra de Embrodery(WB) en el mismo formato que&lt;br /&gt;
Layout_JacqData.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:121--&amp;gt;&lt;br /&gt;
*LayoutCourNRepeats int32&lt;br /&gt;
Numero de repeticiones de pasadas. Las repeticiones de pasadas afectan por igual las barras de dibujo y el jacquard.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:122--&amp;gt;&lt;br /&gt;
*LayoutCourNLayouts int32&lt;br /&gt;
Numero de bloques de pasadas a repetir&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:123--&amp;gt;&lt;br /&gt;
*LayoutCourRepeat int32(LayoutCourNLayouts)&lt;br /&gt;
Numero de pasadas que contiene cada bloque a repetir&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:124--&amp;gt;&lt;br /&gt;
*LayoutCourWhich int32(LayoutCourNRepeats)&lt;br /&gt;
indice del bloque que a repetir&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:125--&amp;gt;&lt;br /&gt;
*LayoutCourTimes int32(LayoutCourNRepeats)&lt;br /&gt;
numero de veces que se ha de repetir el bloque. Ejemplo:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:126--&amp;gt;&lt;br /&gt;
Normalmente como los dibujos suelen ser bastante repetitivos, para ahorrar trabajo y memoria no se guardan todas las pasadas&lt;br /&gt;
del dibujo. En un dibujo como el siguiente :&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;!--T:127--&amp;gt;&lt;br /&gt;
+------------------------------------------------------------------------------------------+&lt;br /&gt;
    |  ,~.~._,~.~._,~.~._,~.~._,~.~._,~.~._,~.~.    ,~.~._,~.~._,~.~._,~.~._,~.~._,~.~._,~.~.  | &lt;br /&gt;
    | / O.O   O.O   O.O   O.O   O.O   O.O   O.O \  / O.O   O.O   O.O   O.O   O.O   O.O   O.O \ | &lt;br /&gt;
    |( O:@:O O:@:O O:@:O O:@:O O:@:O O:@:O O:@:O )( O:@:O O:@:O O:@:O O:@:O O:@:O O:@:O O:@:O )| &lt;br /&gt;
    | \ O&#039;O   O&#039;O   O&#039;O   O&#039;O   O&#039;O   O&#039;O   O&#039;O /  \ O&#039;O   O&#039;O   O&#039;O   O&#039;O   O&#039;O   O&#039;O   O&#039;O / | &lt;br /&gt;
    |  )   . ,   . ,   . ,   . ,   . ,   . ,   (    )   . ,   . ,   . ,   . ,   . ,   . ,   (  | &lt;br /&gt;
/\  | (  * -@- * -@- * -@- * -@- * -@- * -@- *  )  (  * -@- * -@- * -@- * -@- * -@- * -@- *  ) | &lt;br /&gt;
 A  |  )   &#039; `   &#039; `   &#039; `   &#039; `   &#039; `   &#039; `   (    )   &#039; `   &#039; `   &#039; `   &#039; `   &#039; `   &#039; `   (  | &lt;br /&gt;
 g  | / O.O   O.O   O.O   O.O   O.O   O.O   O.O \  / O.O   O.O   O.O   O.O   O.O   O.O   O.O \ | &lt;br /&gt;
 u  |( O:@:O O:@:O O:@:O O:@:O O:@:O O:@:O O:@:O )( O:@:O O:@:O O:@:O O:@:O O:@:O O:@:O O:@:O )| &lt;br /&gt;
 j  | \ O&#039;O   O&#039;O   O&#039;O   O&#039;O   O&#039;O   O&#039;O   O&#039;O /  \ O&#039;O   O&#039;O   O&#039;O   O&#039;O   O&#039;O   O&#039;O   O&#039;O / | &lt;br /&gt;
 a  |  ·~·~·^·~·~·^·~·~·^·~·~·^·~·~·^·~·~·^·~·~·    ·~·~·^·~·~·^·~·~·^·~·~·^·~·~·^·~·~·^·~·~·  | &lt;br /&gt;
 s  +------------------------------------------------------------------------------------------+&lt;br /&gt;
     Pasadas &amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:128--&amp;gt;&lt;br /&gt;
Si se mira lo que hay guardado en el archivo se encontraría algo similar a :&lt;br /&gt;
                     &lt;br /&gt;
    +---------------+&lt;br /&gt;
    |  ,~.~._,~.~.  |&lt;br /&gt;
    | / O.O   O.O \ |&lt;br /&gt;
    |( O:@:O O:@:O )|&lt;br /&gt;
    | \ O&#039;O   O&#039;O / |&lt;br /&gt;
    |  )   . ,   (  |&lt;br /&gt;
/\  | (  * -@- *  ) | &lt;br /&gt;
 A  |  )   &#039; `   (  |&lt;br /&gt;
 g  | / O.O   O.O \ |&lt;br /&gt;
 u  |( O:@:O O:@:O )|&lt;br /&gt;
 j  | \ O&#039;O   O&#039;O / |&lt;br /&gt;
 a  |  ·~·~·^·~·~·  |&lt;br /&gt;
 s  +---------------+&lt;br /&gt;
     Pasadas &amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:129--&amp;gt;&lt;br /&gt;
Esto pasa por que se ha guardado solo una vez cada bloque que se repite. En este caso los bloques que se han usado:&lt;br /&gt;
&lt;br /&gt;
     &amp;lt;!--T:130--&amp;gt;&lt;br /&gt;
A      B        C&lt;br /&gt;
  +----+ +------+ +-----+&lt;br /&gt;
  |  ,~| |.~._,~| |.~.  | &lt;br /&gt;
  | / O| |.O   O| |.O \ | &lt;br /&gt;
  |( O:| |@:O O:| |@:O )| &lt;br /&gt;
  | \ O| |&#039;O   O| |&#039;O / | &lt;br /&gt;
  |  ) | |  . , | |  (  | &lt;br /&gt;
  | (  | |* -@- | |*  ) |&lt;br /&gt;
  |  ) | |  &#039; ` | |  (  | &lt;br /&gt;
  | / O| |.O   O| |.O \ | &lt;br /&gt;
  |( O:| |@:O O:| |@:O )|&lt;br /&gt;
  | \ O| |&#039;O   O| |&#039;O / |  &lt;br /&gt;
  |  ·~| |·~·^·~| |·~·  | &lt;br /&gt;
  +----+ +------+ +-----+&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:131--&amp;gt;&lt;br /&gt;
Se puede ver con facilidad que la sequencia de bloques para obtener el dibujo es: A B B B B B B C A B B B B B B C&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:132--&amp;gt;&lt;br /&gt;
LayoutCourNLayouts=3 pues hay tres bloques distintos ( A , B , C )&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:133--&amp;gt;&lt;br /&gt;
LayoutCourRepeat=Array(&lt;br /&gt;
   numero de pasadas de A,&lt;br /&gt;
   numero de pasadas de B,&lt;br /&gt;
   numero de pasadas de C&lt;br /&gt;
)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:134--&amp;gt;&lt;br /&gt;
NOTA: El número total de pasadas ha de ser igual a la suma de pasadas de los bloques de repeticiones. Es decir:&lt;br /&gt;
NumCourses=LayoutCourRepeat(0)+...+LayoutCourRepeat(LayoutCourNLayouts-1)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:135--&amp;gt;&lt;br /&gt;
Luego para codificar que se desea 1 repetición de A, 6 repeticiones de B y una repeticion de C se haria de la siguiente manera:&lt;br /&gt;
&lt;br /&gt;
                         &amp;lt;!--T:136--&amp;gt;&lt;br /&gt;
idx  |  LayoutCourWhich | LayoutCourTimes | Significado&lt;br /&gt;
                      --------+------------------+-----------------+------------------&lt;br /&gt;
                        _     |                  |                 |&lt;br /&gt;
                       /  0   |         1        |       1         | Bloque 1 (A) repetir una vez&lt;br /&gt;
                       |      |                  |                 |&lt;br /&gt;
                       |  1   |         2        |       6         | Bloque 2 (B) repetir 6 veces&lt;br /&gt;
                       |      |                  |                 |&lt;br /&gt;
                       |  2   |         3        |       1         | Bloque 3 (C) repetir una vez&lt;br /&gt;
LayoutCourNRepeats=6  &amp;lt;       |                  |                 |&lt;br /&gt;
                       |  3   |         1        |       1         | Bloque 1 (A) repetir una vez&lt;br /&gt;
                       |      |                  |                 |&lt;br /&gt;
                       |  4   |         2        |       6         | Bloque 2 (B) repetir 6 veces&lt;br /&gt;
                       |      |                  |                 |&lt;br /&gt;
                       \_ 5   |         3        |       1         | Bloque 3 (C) repetir una vez&lt;br /&gt;
                              |                  |                 |&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:137--&amp;gt;&lt;br /&gt;
*LayoutJacqNRepeats int32&lt;br /&gt;
Numero de repeticiones de agujas. Solo afecta el jacquard. Sigue el mismo sistema que las repeticiones de pasadas.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:138--&amp;gt;&lt;br /&gt;
*LayoutJacqNLayouts int32&lt;br /&gt;
Numero de bloques de agujas a repetir&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:139--&amp;gt;&lt;br /&gt;
*LayoutJacqRepeat int32(LayoutJacqNLayouts)&lt;br /&gt;
Numero de agujas que contiene cada bloque a repetir&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:140--&amp;gt;&lt;br /&gt;
*LayoutJacqWhich int32(LayoutJacqNRepeats)&lt;br /&gt;
indice del bloque que a repetir&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:141--&amp;gt;&lt;br /&gt;
*LayoutJacqTimes int32(LayoutJacqNRepeats)&lt;br /&gt;
numero de veces que se ha de repetir el bloque.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:142--&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;/div&gt;</summary>
		<author><name>Pascual</name></author>
	</entry>
	<entry>
		<id>https://wiki.cadt.com/index.php?title=Drf-reader&amp;diff=3154</id>
		<title>Drf-reader</title>
		<link rel="alternate" type="text/html" href="https://wiki.cadt.com/index.php?title=Drf-reader&amp;diff=3154"/>
		<updated>2016-10-05T17:15:10Z</updated>

		<summary type="html">&lt;p&gt;Pascual: /* DLL_EXPORTS */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;languages/&amp;gt;&lt;br /&gt;
[[Category:SAPO]]&lt;br /&gt;
[[Category:Devel]]&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== DLL_EXPORTS === &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;void drf_clear_errors()&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Descr:&lt;br /&gt;
&amp;lt;!--T:1--&amp;gt;&lt;br /&gt;
Borra todos los mensajes de error producidos por la librería.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;int drf_get_num_errors()&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Descr:&lt;br /&gt;
&amp;lt;!--T:2--&amp;gt;&lt;br /&gt;
Obtiene el número de mensajes de error producidos por la librería.&lt;br /&gt;
&lt;br /&gt;
Return:&lt;br /&gt;
&amp;lt;!--T:3--&amp;gt;&lt;br /&gt;
Número de mensajes almacenados.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;const char* drf_get_error(int idx)&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Descr:&lt;br /&gt;
&amp;lt;!--T:4--&amp;gt;&lt;br /&gt;
Obtiene el mensaje de error indicado por idx (referenciado a 0).&lt;br /&gt;
&lt;br /&gt;
Params:&lt;br /&gt;
idx:&lt;br /&gt;
&amp;lt;!--T:5--&amp;gt;&lt;br /&gt;
Número de mensaje a obtener. Rango entre: 0 y (drf_get_num_errors()-1) ambos incluidos.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:6--&amp;gt;&lt;br /&gt;
Return:&lt;br /&gt;
Éxito: Puntero a una cadena de caracteres ASCII terminada por el byte NUL (&#039;\0&#039;)&lt;br /&gt;
Error: NULL en caso que el valor de idx esté fuera de rango.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;int drf_to_json(char *path,FILE *json,int options)&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Descr:&lt;br /&gt;
&amp;lt;!--T:7--&amp;gt;&lt;br /&gt;
Serializa a JSON un archivo en formato DRF.&lt;br /&gt;
&lt;br /&gt;
Params:&lt;br /&gt;
path:&lt;br /&gt;
Ruta al fichero DRF a serializar en formato Windows ANSI.&lt;br /&gt;
json:&lt;br /&gt;
puntero FILE ya abierto y con la escritura habilitada.&lt;br /&gt;
options:&lt;br /&gt;
&amp;lt;!--T:8--&amp;gt;&lt;br /&gt;
Selecciona que información se serializará. Valores possibles:&lt;br /&gt;
&lt;br /&gt;
   DRF_GET_GENERIC_INFO&lt;br /&gt;
   DRF_GET_MACHINE_INFO&lt;br /&gt;
   DRF_GET_DRAFT_INFO&lt;br /&gt;
   DRF_GET_ALL_INFO&lt;br /&gt;
&lt;br /&gt;
o una combinación de los valores anteriores (OR)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:9--&amp;gt;&lt;br /&gt;
Return:&lt;br /&gt;
Éxito : retorna valor igual a 0&lt;br /&gt;
Error : retorna valor diferente de 0&lt;br /&gt;
&lt;br /&gt;
=== TAGS ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:11--&amp;gt;&lt;br /&gt;
Codificación a JSON de los datos:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:12--&amp;gt;&lt;br /&gt;
Internamente el DRF guarda la información como una lista de tags. Cada tag puede contener uno o varios elementos del mismo tipo.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:13--&amp;gt;&lt;br /&gt;
Al codificar un DRF a JSON se codifica como un objeto donde se usa el nombre del tag como clave y el contenido de éste como valor.&lt;br /&gt;
En caso que el tag pueda contener más de un valor, la librería serializa el contenido como un vector.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:14--&amp;gt;&lt;br /&gt;
Como el formato DRF soporta más tipos que el JSON, la librería los convertirá a un tipo soportado por el JSON. La siguiente tabla muestra a que &lt;br /&gt;
tipo del JSON se convierte cada tipo del DRF &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    DRF  | JSON   &lt;br /&gt;
  -------+--------&lt;br /&gt;
  byte   | &lt;br /&gt;
  int16  | int&lt;br /&gt;
  int32  |&lt;br /&gt;
  -------+-------&lt;br /&gt;
  float  | float&lt;br /&gt;
  -------+-------&lt;br /&gt;
  string | string*&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:16--&amp;gt;&lt;br /&gt;
*) Todos los strings contienen solo caracteres ASCII (encoding:ASCII-7)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== TAGS GENERIC INFO ==== &amp;lt;!--T:17--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:18--&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:19--&amp;gt;&lt;br /&gt;
*Software string&lt;br /&gt;
Nombre del programa que ha generado el fichero .DRF&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:20--&amp;gt;&lt;br /&gt;
*DrawName string&lt;br /&gt;
Referencia del dibujo (max. 256 carac).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:21--&amp;gt;&lt;br /&gt;
*Company string&lt;br /&gt;
Compañía que ha creado el dibujo (max. 30 carac).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:22--&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== TAGS MACHINE INFO ==== &amp;lt;!--T:23--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:25--&amp;gt;&lt;br /&gt;
*Machine string&lt;br /&gt;
Referencia de la máquina. (max. 30 carac) &lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:26--&amp;gt;&lt;br /&gt;
*MachineType string&lt;br /&gt;
Modelo de la máquina. Sólo es válido un modelo definido en el sistema de diseño. (p.e. LEAVERS)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:27--&amp;gt;&lt;br /&gt;
*Description string&lt;br /&gt;
Descripción o información adicional de la máquina.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:28--&amp;gt;&lt;br /&gt;
*Serial string&lt;br /&gt;
Num. serie de la máquina. (max. 30 carac) . Puede contener carácteres no numéricos.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:29--&amp;gt;&lt;br /&gt;
*Version int32 [RASCHEL SU]&lt;br /&gt;
Versión de la máquina raschel SU (versión 1 .. 4).&lt;br /&gt;
   versión 1 . Sin ahorrador de memoria&lt;br /&gt;
   versión 2 . Con ahorrador de memoria (repeticiones)&lt;br /&gt;
   versión 3 . Sin ahorrador de memoria + información empresa.&lt;br /&gt;
   versión 4 . Con ahorrador de memoria (repeciciones) + información empresa.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:30--&amp;gt;&lt;br /&gt;
*Jacquard int32&lt;br /&gt;
Número de barras de Jacquard independientes. Valores posibles: &lt;br /&gt;
   0 : No jacquard&lt;br /&gt;
   1 : 1 jacquard o fina barra simple&lt;br /&gt;
   2 : 2 jacquard raschel o fina barra doble.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:31--&amp;gt;&lt;br /&gt;
*Fronture int32 [RASCHEL DOUBLE NEEDLE BAR]&lt;br /&gt;
Número de fonturas de la máquina&lt;br /&gt;
   1 : 1 fontura&lt;br /&gt;
   2 : 2 fontures (delante / detrás)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:32--&amp;gt;&lt;br /&gt;
*BarsRepeat int32&lt;br /&gt;
Altura del diseño.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:33--&amp;gt;&lt;br /&gt;
*NumRepeats int32&lt;br /&gt;
Num de repeticiones en el diseño.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:34--&amp;gt;&lt;br /&gt;
*NumBars int32&lt;br /&gt;
Numero de barras que tiene el telar.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:35--&amp;gt;&lt;br /&gt;
*Plate int32&lt;br /&gt;
En máquinas raschel (textronic), indica la posición de la plancha.&lt;br /&gt;
En máquinas leavers indica donde empiezan los brodeurs.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:36--&amp;gt;&lt;br /&gt;
*JacqNeedles int32&lt;br /&gt;
Numero de agujas de Jacquard del telar.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:37--&amp;gt;&lt;br /&gt;
*MachNeedles int32&lt;br /&gt;
Numero total de agujas del telar.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:38--&amp;gt;&lt;br /&gt;
*BarsOffset int32&lt;br /&gt;
Desplazamiento de barras (orillos=zona perdida)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:39--&amp;gt;&lt;br /&gt;
*JacqOffset int32&lt;br /&gt;
Deplazamiento de las agujas de jacquard en el telar.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:40--&amp;gt;&lt;br /&gt;
*MaxDisp int32 [RASCHEL SU]&lt;br /&gt;
Deplazamiento máximo general de las barras para máquinas raschel SU.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:41--&amp;gt;&lt;br /&gt;
*Proximity int32&lt;br /&gt;
Para máquinas raschel, distáncia máxima a la que se pueden acercar dos barras del mismo grupo.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:42--&amp;gt;&lt;br /&gt;
*ProximityCollindant int32&lt;br /&gt;
Para máquinas raschel, distáncia máxima a la que se pueden acercar dos barras del mismo grupo colindantes.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:43--&amp;gt;&lt;br /&gt;
*JacqRt int32&lt;br /&gt;
Deplazamiento Rt del jacquard:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:44--&amp;gt;&lt;br /&gt;
para máquinas raschel:&lt;br /&gt;
   no jacquard: rt = 0&lt;br /&gt;
   jacquard simple o doble: rt = 1&lt;br /&gt;
Indica cuántas agujas se desplaza la lectura del jacaquard en las pasadas alternadas.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:45--&amp;gt;&lt;br /&gt;
para máquinas leavers&lt;br /&gt;
   no fina barra:      0&lt;br /&gt;
   fina barra simple: -1&lt;br /&gt;
   fina barra doble:   0&lt;br /&gt;
Indica cuántas agujas se desplaza la lectura del jacquard (desde la posición derecha de la máquina en las pasadas alternadas).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:46--&amp;gt;&lt;br /&gt;
*JacqRtCourse int32&lt;br /&gt;
Indica que pasadas se aplica el valor JacqRt.&lt;br /&gt;
   0:pasadas pares&lt;br /&gt;
   1: pasadas impares&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:47--&amp;gt;&lt;br /&gt;
*FinalGauge float&lt;br /&gt;
Galga de producto tejido aplicando encongimiento (medida en agujas/pulgada)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:48--&amp;gt;&lt;br /&gt;
*FinalQuality float&lt;br /&gt;
Calidad de producto tejido aplicando elasticidad (medida en pasadas/centímetro).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:49--&amp;gt;&lt;br /&gt;
*RealGauge float&lt;br /&gt;
Galga de máquina (medida en agujas/pulgada)-&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:50--&amp;gt;&lt;br /&gt;
*RealQuality float&lt;br /&gt;
Calidad de máquina (medida en pasadas/centímetro).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:51--&amp;gt;&lt;br /&gt;
*Shrinkage float&lt;br /&gt;
Porcentage de encongimiento en agujas (0-100%)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:52--&amp;gt;&lt;br /&gt;
*Elasticity float&lt;br /&gt;
Porcentage de elasticidad en pasadas (0-100%)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:53--&amp;gt;&lt;br /&gt;
*BarNumBar int32(NumBars)&lt;br /&gt;
Numero de cada una de las barras del telar (valor numérico consecutivo)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:54--&amp;gt;&lt;br /&gt;
*BarName string(NumBars)&lt;br /&gt;
Nombre o identificador de cada una de las barras del telar&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:55--&amp;gt;&lt;br /&gt;
*BarGroup int32(NumBars)&lt;br /&gt;
En máquinas raschel el número de grupo de la barra.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:56--&amp;gt;&lt;br /&gt;
*BarStop int32(NumBars)&lt;br /&gt;
Posición 0 de la barra.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:57--&amp;gt;&lt;br /&gt;
*BarUtil int32(NumBars)&lt;br /&gt;
Visibilidad de la barra en el sistema de diseño.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:58--&amp;gt;&lt;br /&gt;
*BarType int32(NumBars)&lt;br /&gt;
Tipo de hilo por defecto de la barra.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:59--&amp;gt;&lt;br /&gt;
*BarMaxGimp int32&lt;br /&gt;
Guimpada máxima en agujas de la barra.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:60--&amp;gt;&lt;br /&gt;
*BarDrive int32&lt;br /&gt;
En máquinas raschel SU, el número de getribe de la barra.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:61--&amp;gt;&lt;br /&gt;
*BarFactor int32&lt;br /&gt;
En máquinas raschel SU, multiplicador de la barra.&lt;br /&gt;
1: factor de 1 agulla&lt;br /&gt;
2: factor de 2 agulles,&lt;br /&gt;
4: factor de 4 agulles.&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:62--&amp;gt;&lt;br /&gt;
*BarInvert int32&lt;br /&gt;
En máquinas raschel SU, les barres invertides. &lt;br /&gt;
1: barra invertida.&lt;br /&gt;
0: barra no invertida.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:63--&amp;gt;&lt;br /&gt;
*BarWork int32&lt;br /&gt;
Trabajo de la barra en el sistema de diseño.&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;!--T:64--&amp;gt;&lt;br /&gt;
0: Chainette&lt;br /&gt;
   1: Jacquard     [1]&lt;br /&gt;
   2: Brodeur&lt;br /&gt;
   3: Gros&lt;br /&gt;
   4: Fin&lt;br /&gt;
   5: Brillant&lt;br /&gt;
   6: Picot&lt;br /&gt;
   7: Corde&lt;br /&gt;
   8: Lycra&lt;br /&gt;
   9: Fond&lt;br /&gt;
  10: Bloc&lt;br /&gt;
  11: Cord&lt;br /&gt;
  12: Guimp&lt;br /&gt;
  13: Nul&lt;br /&gt;
  14: Jacq 0/2,6/4 [1]&lt;br /&gt;
  15: Jacq 0/2,8/6 [1]&lt;br /&gt;
  16: Fine Bar.  [sup]&lt;br /&gt;
  17: Braquette&amp;quot;&lt;br /&gt;
  18: Jacquard     [2]&lt;br /&gt;
  19: Jacq 0/2,6/4 [2]&lt;br /&gt;
  20: Jacq 0/2,8/6 [2]&lt;br /&gt;
  21: Fine Bar.  [inf]&lt;br /&gt;
  22: Jacquard&lt;br /&gt;
  23: Fine Barre&lt;br /&gt;
  24: Fallplate&lt;br /&gt;
  25: Embrodery&lt;br /&gt;
  26: EFS&lt;br /&gt;
  27: Reservé 1&lt;br /&gt;
  28: Reservé 2&lt;br /&gt;
  29: Jacq 0/2,6/4&lt;br /&gt;
  30: Jacq 0/2,8/6&lt;br /&gt;
  31: Bord&lt;br /&gt;
  32: Lisieres&lt;br /&gt;
  33: Romaines&lt;br /&gt;
  34: Sonnette&lt;br /&gt;
  35: Guimp devant&lt;br /&gt;
  36: Petite Corde&lt;br /&gt;
  37: Fileur&lt;br /&gt;
  38: Separation&lt;br /&gt;
  39: Corde Termo&lt;br /&gt;
  40: Solv rom&lt;br /&gt;
  41: Vis&lt;br /&gt;
  42: Jacquard     [3]&lt;br /&gt;
  43: Jacquard     [4]&lt;br /&gt;
  44: Space Fabric&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:65--&amp;gt;&lt;br /&gt;
*BarKnit&lt;br /&gt;
En máquines raschel textronic tipous de lligada:&lt;br /&gt;
  0 : no planxa&lt;br /&gt;
  1 : lligada 1 (mecanica)&lt;br /&gt;
  2 : lligada 2 (binaria)&lt;br /&gt;
  3 : lligada 3 (mecánica (2))&lt;br /&gt;
  4 : lligada 4 (binària (2))&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:66--&amp;gt;&lt;br /&gt;
*BarTimes&lt;br /&gt;
En máquines raschel textonic temps de la lligada&lt;br /&gt;
  0 : no planxa&lt;br /&gt;
  2 : temps 2 (p.e) 0202 0202 0202&lt;br /&gt;
  4 : temps 4 (p.e) 0220 0220 0220&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:67--&amp;gt;&lt;br /&gt;
*BarMode&lt;br /&gt;
En máquines raschel textronic el mode la la barra:&lt;br /&gt;
  0 : mode A (p.e 0220)&lt;br /&gt;
  1 : mode B (p.e 2002)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:68--&amp;gt;&lt;br /&gt;
*BarModif int32&lt;br /&gt;
En máquines raschel textronic indica que la barra no es pot deslligar&lt;br /&gt;
  0 : no es pot deslligar&lt;br /&gt;
  1 : si es pot deslligar&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:69--&amp;gt;&lt;br /&gt;
*BarTension int32&lt;br /&gt;
Tensió de la barra a les simulacions.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:70--&amp;gt;&lt;br /&gt;
*BarNumFingers int32(NumBars)&lt;br /&gt;
Número de pasadors de la barra&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:71--&amp;gt;&lt;br /&gt;
*BarModeDrop int32(NumBars)&lt;br /&gt;
Ponderación de cada uno de los 7 bits que se usan para indicar el desplazamiento de la barra. Valores:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;!--T:72--&amp;gt;&lt;br /&gt;
Valor | B7 | B6 | B5 | B4 | B3 | B2 | B1&lt;br /&gt;
 ------+----+----+----+----+----+----+----&lt;br /&gt;
    0  |  8 |  8 |  8 |  4 |  2 |  1 |1/2&lt;br /&gt;
 ------+----+----+----+----+----+----+----&lt;br /&gt;
    1  | 16 |  8 |  8 |  4 |  2 |  1 |1/2&lt;br /&gt;
 ------+----+----+----+----+----+----+----&lt;br /&gt;
    2  | 16 | 16 |  8 |  4 |  2 |  1 |1/2&lt;br /&gt;
 ------+----+----+----+----+----+----+----&lt;br /&gt;
    3  | 32 | 16 |  8 |  4 |  2 |  1 |1/2&lt;br /&gt;
 ------+----+----+----+----+----+----+----&lt;br /&gt;
    4  |  8 |  8 |  8 |  8 |  4 |  2 | 1&lt;br /&gt;
 ------+----+----+----+----+----+----+----&lt;br /&gt;
    5  | 16 |  8 |  8 |  8 |  4 |  2 | 1&lt;br /&gt;
 ------+----+----+----+----+----+----+----&lt;br /&gt;
    6  |  4 |  4 |  4 |  4 |  2 |  1 | 1&lt;br /&gt;
 ------+----+----+----+----+----+----+----&lt;br /&gt;
    7  |  0 |  0 |  0 |  1 |  2 |  1 |1/2&lt;br /&gt;
 ------+----+----+----+----+----+----+----&lt;br /&gt;
    8  |  4 |  4 |  4 |  4 |  2 |  1 |1/2&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:73--&amp;gt;&lt;br /&gt;
*BarMaxDesp int32(NumBars)&lt;br /&gt;
Desplazamiento máximo de la barra en agujas&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:74--&amp;gt;&lt;br /&gt;
*BarActive byte(NumBars)&lt;br /&gt;
Sólo para maquinas EL. Indica si la barra esta en uso o no.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:75--&amp;gt;&lt;br /&gt;
*BarHalvesUp byte(NumBars)&lt;br /&gt;
Si en la pasada se incrementa la posición de la barra en BarHalvesUp agujas o más, entonces , se añade media aguja a la posición final.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:76--&amp;gt;&lt;br /&gt;
*BarHalvesDn byte(NumBars)&lt;br /&gt;
Si en la pasada se decrementa la posición de la barra en BarHalvesDwn agujas o más, entonces , se le resta media aguja a la posición final.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:77--&amp;gt;&lt;br /&gt;
*BarString int32(NumBars)&lt;br /&gt;
Valors:&lt;br /&gt;
0:&lt;br /&gt;
1:ple&lt;br /&gt;
2:1f 1x&lt;br /&gt;
3:1x 1f&lt;br /&gt;
4:buit&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:78--&amp;gt;&lt;br /&gt;
*BarFronture int32(NumBars)&lt;br /&gt;
Solo se usa en las máquinas de doble frontura. Da la frontura en la que empieza a trabajar la barra.Valores:&lt;br /&gt;
0: primera forntura&lt;br /&gt;
1: segunda frontura&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:79--&amp;gt;&lt;br /&gt;
*BarDropsUtil int32(7*NumBars)&lt;br /&gt;
indica como se deben perforar los 7 posiciones correspondientes a la barra:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:80--&amp;gt;&lt;br /&gt;
Valor:&lt;br /&gt;
0: Usado. Siempre a 1. Es decir: no perforar nunca&lt;br /&gt;
1: Usado, Se perforara o no en funcion del desplazamiento de la barra&lt;br /&gt;
2: Usado. Siemre a 0. Es decir, se perfora siempre&lt;br /&gt;
3: No usado. No se perfora&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:81--&amp;gt;&lt;br /&gt;
*FingerStop int32(num_fingers) num_fingers=BarNumFingers(0) + ... + BarNumFingers(NumBars-1)&lt;br /&gt;
Stop del pasador relativo al stop de la barra.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:82--&amp;gt;&lt;br /&gt;
*FingerType int32(num_fingers) num_fingers=BarNumFingers(0) + ... + BarNumFingers(NumBars-1)&lt;br /&gt;
Tipo de pasador.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:83--&amp;gt;&lt;br /&gt;
*CGF1Card int32&lt;br /&gt;
ha de estar a 0.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:84--&amp;gt;&lt;br /&gt;
*CGF1Type int32&lt;br /&gt;
Número de columnas útiles en el cartón.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:85--&amp;gt;&lt;br /&gt;
*CGF1Taille int32&lt;br /&gt;
Número de columnas totales que caben del cartón.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:86--&amp;gt;&lt;br /&gt;
*CGF1Numlines int32&lt;br /&gt;
numero de entradas de las que consta la especificación del cartón.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:87--&amp;gt;&lt;br /&gt;
*CGF1Script string(CGF1Numlines)&lt;br /&gt;
Lista de cadenas de caracteres que detallan como se ha de perforar  cada columna del cartón empezando por la columna de mas a la derecha.&lt;br /&gt;
Cada cadena de caracteres tiene el formato: &amp;lt;codigo de tipo&amp;gt; &amp;lt;espacio&amp;gt; &amp;lt;numero de repeticiones&amp;gt;. Ex: &amp;quot;LC 1&amp;quot;.&lt;br /&gt;
Los codigos de tipo validos son:&lt;br /&gt;
   LC: Laçage&lt;br /&gt;
   TC: Trou de centrage&lt;br /&gt;
   TS: Trou de centrage simple&lt;br /&gt;
   EL: Element vide&lt;br /&gt;
   GF: Gros fil&lt;br /&gt;
   VB: Value&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:88--&amp;gt;&lt;br /&gt;
*CGF1Descrip string(CGF1Numlines)&lt;br /&gt;
Descripción de cada entada del cartón.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:89--&amp;gt;&lt;br /&gt;
Ex:&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;!--T:90--&amp;gt;&lt;br /&gt;
CGF1Script | CGF1Descrip&lt;br /&gt;
 ------------+--------------&lt;br /&gt;
   &amp;quot;LC 1&amp;quot;    |  &amp;quot;Laçage&amp;quot;&lt;br /&gt;
   &amp;quot;TC 1&amp;quot;    |  &amp;quot;Trou de centrage&amp;quot;&lt;br /&gt;
   &amp;quot;GF 6&amp;quot;    |  &amp;quot;braquettes&amp;quot;  &lt;br /&gt;
   &amp;quot;GF 4&amp;quot;    |  &amp;quot;stum&amp;quot;                                                                                                      &lt;br /&gt;
   &amp;quot;GF 30&amp;quot;   |  &amp;quot;guimpes&amp;quot;                                                                                                    &lt;br /&gt;
   &amp;quot;TC 1&amp;quot;    |  &amp;quot;Trou de centrage&amp;quot;                                                                                            &lt;br /&gt;
   &amp;quot;LC 1&amp;quot;    |  &amp;quot;Laçage&amp;quot;                                                                                                       &lt;br /&gt;
   &amp;quot;GF 26&amp;quot;   |  &amp;quot;guimpes&amp;quot;                                                                                                &lt;br /&gt;
   &amp;quot;GF 4&amp;quot;    |  &amp;quot;stum&amp;quot;                                                                                                   &lt;br /&gt;
   &amp;quot;GF 6&amp;quot;    |  &amp;quot;braquettes&amp;quot;                                                                                               &lt;br /&gt;
   &amp;quot;GF 3&amp;quot;    |  &amp;quot;brodeus&amp;quot;                                                                                                  &lt;br /&gt;
   &amp;quot;TC 1&amp;quot;    |  &amp;quot;Trou de centrage&amp;quot;                                                                                         &lt;br /&gt;
   &amp;quot;LC 1&amp;quot;    |  &amp;quot;Laçage&amp;quot;                                                                                                      &lt;br /&gt;
   &amp;quot;GF 39&amp;quot;   |  &amp;quot;brodeus&amp;quot;                                                                                                 &lt;br /&gt;
   &amp;quot;TC 1&amp;quot;    |  &amp;quot;Trou de centrage&amp;quot;                                                                                           &lt;br /&gt;
   &amp;quot;LC 1&amp;quot;    |  &amp;quot;Laçage&amp;quot;                                                                                                    &lt;br /&gt;
                                                                                                                           &lt;br /&gt;
&amp;lt;div style=&amp;quot;font-size:7pt;color:blue;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;                                                                                                                          &lt;br /&gt;
  L T                GF39                   L T G   GF6  GF4          GF26            L T               GF30           GF4  GF6  T L&lt;br /&gt;
  C C _____________________________________ C C F  ____  __  ________________________ C C ____________________________  __  ____ C C&lt;br /&gt;
  1 1/                                     \1 1/3\/    \/  \/                        \1 1/                            \/  \/    \1 1&lt;br /&gt;
/------------------------------------------------------------------------------------------------------------------------------------\&lt;br /&gt;
|    OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO.  OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO.  OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO    |&lt;br /&gt;
| O  .O.O.O.OOOOOOO.OOO.OOOOOO.O.O.OOOOOOOOOO  OOOOOOOOOOO..O..OO...O.OO.....O..O..OOOO  OO...O...OOO.OOOOO...O.....O..OO..OOOOOO  O |&lt;br /&gt;
|    OOOOO.OO.O...OOO..O..OO.OO.OOOO.O..OO.O.  OOOOOO...OOOO.O.OOOO..O.OO.OOO..O.O.O...  ..OOO.OO..O.OO....O.O..O.OOOOOOOOOOOO...    |&lt;br /&gt;
|  ().OO.OO...OOOOOOOO.OO...O.OOOO..OO....O..()O..OOOOOOOOOOO.O....OO..O..OOO..OO.O.O..()OO.....OOO...OO..OO.O.OOO.OO.OOOOOOOOOOO()  |&lt;br /&gt;
|    ........................................  ...............OO..OO..O.......O........  ...........O...O...O.O...O...O..........    |&lt;br /&gt;
| O  .O....OO.O.O....O.O.OOO..O.O.OO.O..OOO.O  ..O...........OOO.OOO.OOOOOOO.OOO.OOO.OO  OOOOOOOOOOOOOOOOOOOO.OOOOOOOOO..........  O |&lt;br /&gt;
|    O.OOOOOOO.O.OOOO.O.OOOOOO.O.OOOO.OO.OOO.  OOO..........OOOOOOOOOOOOOOOOOOOOOOOOOO.  OOOOOOOOOOOOOOOOOOOOOOOOOOOOOO..........    |&lt;br /&gt;
\------------------------------------------------------------------------------------------------------------------------------------/    &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:91--&amp;gt;&lt;br /&gt;
*CGF2Card int32&lt;br /&gt;
ha de estar a 0.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:92--&amp;gt;&lt;br /&gt;
*CGF2Type int32&lt;br /&gt;
Número de columnas útiles en el cartón.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:93--&amp;gt;&lt;br /&gt;
*CGF2Taille int32&lt;br /&gt;
Número de columnas totales que caben del cartón.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:94--&amp;gt;&lt;br /&gt;
*CGF2Numlines int32&lt;br /&gt;
numero de entradas de las que consta la especificación del cartón.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:95--&amp;gt;&lt;br /&gt;
*CGF2Script string(CGF2Numlines)&lt;br /&gt;
Especificación del cartón. Formateado igual que CGF1Script.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:96--&amp;gt;&lt;br /&gt;
*CGF2Descrip string(CGF2Numlines)&lt;br /&gt;
Descripción de cada entada del cartón.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:97--&amp;gt;&lt;br /&gt;
*CFBCard int32&lt;br /&gt;
ha de estar a 1.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:98--&amp;gt;&lt;br /&gt;
*CFBType int32&lt;br /&gt;
Número de columnas útiles en el cartón.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:99--&amp;gt;&lt;br /&gt;
*CFBTaille int32&lt;br /&gt;
Número de columnas totales que caben del cartón multiplicadas por 8.Ex:&lt;br /&gt;
si el cartón tiene 75 columnas CFBTaille=75*8=600&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:100--&amp;gt;&lt;br /&gt;
*CFBNumlines int32&lt;br /&gt;
numero de entradas de las que consta la especificación del cartón.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:101--&amp;gt;&lt;br /&gt;
*CFBScript string(CFBNumlines)&lt;br /&gt;
Especificación del cartón. Formateado igual que CGF1Script. Excepto que los tipos aceptados&lt;br /&gt;
son:&lt;br /&gt;
   LC: Laçage&lt;br /&gt;
   TC: Trou de centrage&lt;br /&gt;
   TS: Trou de centrage simple&lt;br /&gt;
   EL: Element vide&lt;br /&gt;
   FB: Fine barre&lt;br /&gt;
   VB: Value&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:102--&amp;gt;&lt;br /&gt;
Es decir el tipo &amp;quot;GF&amp;quot; no existe para este tag y en su lugar hay el tipo &amp;quot;FB&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:103--&amp;gt;&lt;br /&gt;
*CFBDescrip string(CFBNumlines)&lt;br /&gt;
Descripción de cada entada del cartón.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:104--&amp;gt;&lt;br /&gt;
*CFBNGaits int32&lt;br /&gt;
Número de entradas para mapear las repeticiones de agujas de Fine Barre a los cartones en función de la repetición.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:105--&amp;gt;&lt;br /&gt;
*CFBGaitNRepeat int32(CFBNGaits)&lt;br /&gt;
Número de repetición a mapear&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:106--&amp;gt;&lt;br /&gt;
*CFBGaitNBar int32(CFBNGaits)&lt;br /&gt;
Número de aguja a mapear&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:107--&amp;gt;&lt;br /&gt;
*CFBGaitNGait int32(CFBNGaits)&lt;br /&gt;
Indice de agujero en el cartón&lt;br /&gt;
&lt;br /&gt;
==== TAGS DRAFT DATA ==== &amp;lt;!--T:109--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:110--&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:111--&amp;gt;&lt;br /&gt;
*NumCourses int32&lt;br /&gt;
Numero de pasadas del dibujo sin tener en cuenta las repeticiones.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:112--&amp;gt;&lt;br /&gt;
*BarNeedle int16(NumCourses*NumBars)&lt;br /&gt;
Despazamientos medidos en agujas de las barras en cada pasada. Ordenados de la siguiente manera:&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;!--T:113--&amp;gt;&lt;br /&gt;
BarNeedle(0)              Desplazamiento barra 1 en la primera pasada.&lt;br /&gt;
   BarNeedle(1)              Desplazamiento barra 1 en la segunda pasada.&lt;br /&gt;
   .&lt;br /&gt;
   .&lt;br /&gt;
   BarNeedle(NumCourses-1)   Desplazamiento barra 1 en la última pasada.&lt;br /&gt;
   BarNeedle(NumCourses)     Desplazamiento barra 2 en la primera pasada.&lt;br /&gt;
   .&lt;br /&gt;
   .&lt;br /&gt;
   BarNeedel(NumCourses*2-1) Desplazamiento barra 2 en la última pasada.&lt;br /&gt;
   BarNeedle(NumCourses)     Desplazamiento barra 3 en la primera pasada.&lt;br /&gt;
   .&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:114--&amp;gt;&lt;br /&gt;
*BarNeedleB int16(NumCourses*NumBars)&lt;br /&gt;
Solo se utiliza en maquinas de doble frontura. Es equivalente a BarNeedle pero contiene la información&lt;br /&gt;
para la segunda frontura.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:115--&amp;gt;&lt;br /&gt;
*BarHalves byte(NumCourses*NumBars)&lt;br /&gt;
Incremento de 1/2 aguja en el movimiento de la barra introducido manualmente por el diseñador desde el menú de Bareme&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:116--&amp;gt;&lt;br /&gt;
*BarKnitting byte(NumCourses*NumBars)&lt;br /&gt;
Indica en las maquinas que hacen 2 movimientos por pasada que movimiento se realiza&lt;br /&gt;
Valores:&lt;br /&gt;
 0 : Movimiento 0 0 . No liga&lt;br /&gt;
 1 : Movimeinto 0 1 . Liga&lt;br /&gt;
 2 : Movimeinto 1 0 . Liga&lt;br /&gt;
 3 : Movimeinto 1 1 . No liga&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:117--&amp;gt;&lt;br /&gt;
*BarKnittingB byte(NumCourses*NumBars)&lt;br /&gt;
Solo se utiliza en maquinas de doble frontura. Es equivalente a BarKnitting pero contiene la información&lt;br /&gt;
para la segunda frontura.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:118--&amp;gt;&lt;br /&gt;
*Layout_JacqData byte(NumCourses*JacqNeedles*Jacquard)&lt;br /&gt;
Cada byte guarda un bit de Jacquard. Valores:&lt;br /&gt;
0: T&lt;br /&gt;
1: H&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:119--&amp;gt;&lt;br /&gt;
*Layout_FrontureData byte(NumCourses*JacqNeedles*Jacquard)&lt;br /&gt;
Solo se utiliza en maquinas de doble frontura. Es equivalente a Layout_JacqData pero contiene la información&lt;br /&gt;
para la segunda frontura.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:120--&amp;gt;&lt;br /&gt;
*Layout_WBData byte(NumCourses*JacqNeedles*Jacquard)&lt;br /&gt;
Solo se utiliza en maquinas CLIPTRONIC . Contiene los datos para la barra de Embrodery(WB) en el mismo formato que&lt;br /&gt;
Layout_JacqData.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:121--&amp;gt;&lt;br /&gt;
*LayoutCourNRepeats int32&lt;br /&gt;
Numero de repeticiones de pasadas. Las repeticiones de pasadas afectan por igual las barras de dibujo y el jacquard.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:122--&amp;gt;&lt;br /&gt;
*LayoutCourNLayouts int32&lt;br /&gt;
Numero de bloques de pasadas a repetir&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:123--&amp;gt;&lt;br /&gt;
*LayoutCourRepeat int32(LayoutCourNLayouts)&lt;br /&gt;
Numero de pasadas que contiene cada bloque a repetir&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:124--&amp;gt;&lt;br /&gt;
*LayoutCourWhich int32(LayoutCourNRepeats)&lt;br /&gt;
indice del bloque que a repetir&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:125--&amp;gt;&lt;br /&gt;
*LayoutCourTimes int32(LayoutCourNRepeats)&lt;br /&gt;
numero de veces que se ha de repetir el bloque. Ejemplo:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:126--&amp;gt;&lt;br /&gt;
Normalmente como los dibujos suelen ser bastante repetitivos, para ahorrar trabajo y memoria no se guardan todas las pasadas&lt;br /&gt;
del dibujo. En un dibujo como el siguiente :&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;!--T:127--&amp;gt;&lt;br /&gt;
+------------------------------------------------------------------------------------------+&lt;br /&gt;
    |  ,~.~._,~.~._,~.~._,~.~._,~.~._,~.~._,~.~.    ,~.~._,~.~._,~.~._,~.~._,~.~._,~.~._,~.~.  | &lt;br /&gt;
    | / O.O   O.O   O.O   O.O   O.O   O.O   O.O \  / O.O   O.O   O.O   O.O   O.O   O.O   O.O \ | &lt;br /&gt;
    |( O:@:O O:@:O O:@:O O:@:O O:@:O O:@:O O:@:O )( O:@:O O:@:O O:@:O O:@:O O:@:O O:@:O O:@:O )| &lt;br /&gt;
    | \ O&#039;O   O&#039;O   O&#039;O   O&#039;O   O&#039;O   O&#039;O   O&#039;O /  \ O&#039;O   O&#039;O   O&#039;O   O&#039;O   O&#039;O   O&#039;O   O&#039;O / | &lt;br /&gt;
    |  )   . ,   . ,   . ,   . ,   . ,   . ,   (    )   . ,   . ,   . ,   . ,   . ,   . ,   (  | &lt;br /&gt;
/\  | (  * -@- * -@- * -@- * -@- * -@- * -@- *  )  (  * -@- * -@- * -@- * -@- * -@- * -@- *  ) | &lt;br /&gt;
 A  |  )   &#039; `   &#039; `   &#039; `   &#039; `   &#039; `   &#039; `   (    )   &#039; `   &#039; `   &#039; `   &#039; `   &#039; `   &#039; `   (  | &lt;br /&gt;
 g  | / O.O   O.O   O.O   O.O   O.O   O.O   O.O \  / O.O   O.O   O.O   O.O   O.O   O.O   O.O \ | &lt;br /&gt;
 u  |( O:@:O O:@:O O:@:O O:@:O O:@:O O:@:O O:@:O )( O:@:O O:@:O O:@:O O:@:O O:@:O O:@:O O:@:O )| &lt;br /&gt;
 j  | \ O&#039;O   O&#039;O   O&#039;O   O&#039;O   O&#039;O   O&#039;O   O&#039;O /  \ O&#039;O   O&#039;O   O&#039;O   O&#039;O   O&#039;O   O&#039;O   O&#039;O / | &lt;br /&gt;
 a  |  ·~·~·^·~·~·^·~·~·^·~·~·^·~·~·^·~·~·^·~·~·    ·~·~·^·~·~·^·~·~·^·~·~·^·~·~·^·~·~·^·~·~·  | &lt;br /&gt;
 s  +------------------------------------------------------------------------------------------+&lt;br /&gt;
     Pasadas &amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:128--&amp;gt;&lt;br /&gt;
Si se mira lo que hay guardado en el archivo se encontraría algo similar a :&lt;br /&gt;
                     &lt;br /&gt;
    +---------------+&lt;br /&gt;
    |  ,~.~._,~.~.  |&lt;br /&gt;
    | / O.O   O.O \ |&lt;br /&gt;
    |( O:@:O O:@:O )|&lt;br /&gt;
    | \ O&#039;O   O&#039;O / |&lt;br /&gt;
    |  )   . ,   (  |&lt;br /&gt;
/\  | (  * -@- *  ) | &lt;br /&gt;
 A  |  )   &#039; `   (  |&lt;br /&gt;
 g  | / O.O   O.O \ |&lt;br /&gt;
 u  |( O:@:O O:@:O )|&lt;br /&gt;
 j  | \ O&#039;O   O&#039;O / |&lt;br /&gt;
 a  |  ·~·~·^·~·~·  |&lt;br /&gt;
 s  +---------------+&lt;br /&gt;
     Pasadas &amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:129--&amp;gt;&lt;br /&gt;
Esto pasa por que se ha guardado solo una vez cada bloque que se repite. En este caso los bloques que se han usado:&lt;br /&gt;
&lt;br /&gt;
     &amp;lt;!--T:130--&amp;gt;&lt;br /&gt;
A      B        C&lt;br /&gt;
  +----+ +------+ +-----+&lt;br /&gt;
  |  ,~| |.~._,~| |.~.  | &lt;br /&gt;
  | / O| |.O   O| |.O \ | &lt;br /&gt;
  |( O:| |@:O O:| |@:O )| &lt;br /&gt;
  | \ O| |&#039;O   O| |&#039;O / | &lt;br /&gt;
  |  ) | |  . , | |  (  | &lt;br /&gt;
  | (  | |* -@- | |*  ) |&lt;br /&gt;
  |  ) | |  &#039; ` | |  (  | &lt;br /&gt;
  | / O| |.O   O| |.O \ | &lt;br /&gt;
  |( O:| |@:O O:| |@:O )|&lt;br /&gt;
  | \ O| |&#039;O   O| |&#039;O / |  &lt;br /&gt;
  |  ·~| |·~·^·~| |·~·  | &lt;br /&gt;
  +----+ +------+ +-----+&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:131--&amp;gt;&lt;br /&gt;
Se puede ver con facilidad que la sequencia de bloques para obtener el dibujo es: A B B B B B B C A B B B B B B C&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:132--&amp;gt;&lt;br /&gt;
LayoutCourNLayouts=3 pues hay tres bloques distintos ( A , B , C )&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:133--&amp;gt;&lt;br /&gt;
LayoutCourRepeat=Array(&lt;br /&gt;
   numero de pasadas de A,&lt;br /&gt;
   numero de pasadas de B,&lt;br /&gt;
   numero de pasadas de C&lt;br /&gt;
)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:134--&amp;gt;&lt;br /&gt;
NOTA: El número total de pasadas ha de ser igual a la suma de pasadas de los bloques de repeticiones. Es decir:&lt;br /&gt;
NumCourses=LayoutCourRepeat(0)+...+LayoutCourRepeat(LayoutCourNLayouts-1)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:135--&amp;gt;&lt;br /&gt;
Luego para codificar que se desea 1 repetición de A, 6 repeticiones de B y una repeticion de C se haria de la siguiente manera:&lt;br /&gt;
&lt;br /&gt;
                         &amp;lt;!--T:136--&amp;gt;&lt;br /&gt;
idx  |  LayoutCourWhich | LayoutCourTimes | Significado&lt;br /&gt;
                      --------+------------------+-----------------+------------------&lt;br /&gt;
                        _     |                  |                 |&lt;br /&gt;
                       /  0   |         1        |       1         | Bloque 1 (A) repetir una vez&lt;br /&gt;
                       |      |                  |                 |&lt;br /&gt;
                       |  1   |         2        |       6         | Bloque 2 (B) repetir 6 veces&lt;br /&gt;
                       |      |                  |                 |&lt;br /&gt;
                       |  2   |         3        |       1         | Bloque 3 (C) repetir una vez&lt;br /&gt;
LayoutCourNRepeats=6  &amp;lt;       |                  |                 |&lt;br /&gt;
                       |  3   |         1        |       1         | Bloque 1 (A) repetir una vez&lt;br /&gt;
                       |      |                  |                 |&lt;br /&gt;
                       |  4   |         2        |       6         | Bloque 2 (B) repetir 6 veces&lt;br /&gt;
                       |      |                  |                 |&lt;br /&gt;
                       \_ 5   |         3        |       1         | Bloque 3 (C) repetir una vez&lt;br /&gt;
                              |                  |                 |&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:137--&amp;gt;&lt;br /&gt;
*LayoutJacqNRepeats int32&lt;br /&gt;
Numero de repeticiones de agujas. Solo afecta el jacquard. Sigue el mismo sistema que las repeticiones de pasadas.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:138--&amp;gt;&lt;br /&gt;
*LayoutJacqNLayouts int32&lt;br /&gt;
Numero de bloques de agujas a repetir&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:139--&amp;gt;&lt;br /&gt;
*LayoutJacqRepeat int32(LayoutJacqNLayouts)&lt;br /&gt;
Numero de agujas que contiene cada bloque a repetir&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:140--&amp;gt;&lt;br /&gt;
*LayoutJacqWhich int32(LayoutJacqNRepeats)&lt;br /&gt;
indice del bloque que a repetir&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:141--&amp;gt;&lt;br /&gt;
*LayoutJacqTimes int32(LayoutJacqNRepeats)&lt;br /&gt;
numero de veces que se ha de repetir el bloque.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:142--&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;/div&gt;</summary>
		<author><name>Pascual</name></author>
	</entry>
	<entry>
		<id>https://wiki.cadt.com/index.php?title=Drf-reader&amp;diff=3153</id>
		<title>Drf-reader</title>
		<link rel="alternate" type="text/html" href="https://wiki.cadt.com/index.php?title=Drf-reader&amp;diff=3153"/>
		<updated>2016-10-05T17:14:18Z</updated>

		<summary type="html">&lt;p&gt;Pascual: /* DLL_EXPORTS */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;languages/&amp;gt;&lt;br /&gt;
[[Category:SAPO]]&lt;br /&gt;
[[Category:Devel]]&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== DLL_EXPORTS === &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;void drf_clear_errors()&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Descr:&lt;br /&gt;
&amp;lt;!--T:1--&amp;gt;&lt;br /&gt;
Borra todos los mensajes de error producidos por la librería.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;int drf_get_num_errors()&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Descr:&lt;br /&gt;
&amp;lt;!--T:2--&amp;gt;&lt;br /&gt;
Obtiene el número de mensajes de error producidos por la librería.&lt;br /&gt;
&lt;br /&gt;
Return:&lt;br /&gt;
&amp;lt;!--T:3--&amp;gt;&lt;br /&gt;
Número de mensajes almacenados.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;const char* drf_get_error(int idx)&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Descr:&lt;br /&gt;
&amp;lt;!--T:4--&amp;gt;&lt;br /&gt;
Obtiene el mensaje de error indicado por idx (referenciado a 0).&lt;br /&gt;
&lt;br /&gt;
Params:&lt;br /&gt;
idx:&lt;br /&gt;
&amp;lt;!--T:5--&amp;gt;&lt;br /&gt;
Número de mensaje a obtener. Rango entre: 0 y (drf_get_num_errors()-1) ambos incluidos.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:6--&amp;gt;&lt;br /&gt;
Return:&lt;br /&gt;
Éxito: Puntero a una cadena de caracteres ASCII terminada por el byte NUL (&#039;\0&#039;)&lt;br /&gt;
Error: NULL en caso que el valor de idx esté fuera de rango.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;int drf_to_json(char *path,FILE *json,int options)&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Descr:&lt;br /&gt;
&amp;lt;!--T:7--&amp;gt;&lt;br /&gt;
Serializa a JSON un archivo en formato DRF.&lt;br /&gt;
&lt;br /&gt;
Params:&lt;br /&gt;
path:&lt;br /&gt;
Ruta al fichero DRF a serializar en formato Windows ANSI.&lt;br /&gt;
json:&lt;br /&gt;
puntero FILE ya abierto y con la escritura habilitada.&lt;br /&gt;
options:&lt;br /&gt;
&amp;lt;!--T:8--&amp;gt;&lt;br /&gt;
Selecciona que información se serializará. Valores possibles:&lt;br /&gt;
&lt;br /&gt;
   DRF_GET_GENERIC_INFO&lt;br /&gt;
   DRF_GET_MACHINE_INFO&lt;br /&gt;
   DRF_GET_DRAFT_INFO&lt;br /&gt;
   DRF_GET_ALL_INFO&lt;br /&gt;
&lt;br /&gt;
o una combinación de los valores anteriores (OR)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:9--&amp;gt;&lt;br /&gt;
Return:&lt;br /&gt;
Éxito : retorna valor igual a 0&lt;br /&gt;
Error : retorna valor diferente de 0&lt;br /&gt;
&lt;br /&gt;
=== TAGS ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:11--&amp;gt;&lt;br /&gt;
Codificación a JSON de los datos:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:12--&amp;gt;&lt;br /&gt;
Internamente el DRF guarda la información como una lista de tags. Cada tag puede contener uno o varios elementos del mismo tipo.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:13--&amp;gt;&lt;br /&gt;
Al codificar un DRF a JSON se codifica como un objeto donde se usa el nombre del tag como clave y el contenido de éste como valor.&lt;br /&gt;
En caso que el tag pueda contener más de un valor, la librería serializa el contenido como un vector.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:14--&amp;gt;&lt;br /&gt;
Como el formato DRF soporta más tipos que el JSON, la librería los convertirá a un tipo soportado por el JSON. La siguiente tabla muestra a que &lt;br /&gt;
tipo del JSON se convierte cada tipo del DRF &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    DRF  | JSON   &lt;br /&gt;
  -------+--------&lt;br /&gt;
  byte   | &lt;br /&gt;
  int16  | int&lt;br /&gt;
  int32  |&lt;br /&gt;
  -------+-------&lt;br /&gt;
  float  | float&lt;br /&gt;
  -------+-------&lt;br /&gt;
  string | string*&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:16--&amp;gt;&lt;br /&gt;
*) Todos los strings contienen solo caracteres ASCII (encoding:ASCII-7)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== TAGS GENERIC INFO ==== &amp;lt;!--T:17--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:18--&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:19--&amp;gt;&lt;br /&gt;
*Software string&lt;br /&gt;
Nombre del programa que ha generado el fichero .DRF&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:20--&amp;gt;&lt;br /&gt;
*DrawName string&lt;br /&gt;
Referencia del dibujo (max. 256 carac).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:21--&amp;gt;&lt;br /&gt;
*Company string&lt;br /&gt;
Compañía que ha creado el dibujo (max. 30 carac).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:22--&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== TAGS MACHINE INFO ==== &amp;lt;!--T:23--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:25--&amp;gt;&lt;br /&gt;
*Machine string&lt;br /&gt;
Referencia de la máquina. (max. 30 carac) &lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:26--&amp;gt;&lt;br /&gt;
*MachineType string&lt;br /&gt;
Modelo de la máquina. Sólo es válido un modelo definido en el sistema de diseño. (p.e. LEAVERS)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:27--&amp;gt;&lt;br /&gt;
*Description string&lt;br /&gt;
Descripción o información adicional de la máquina.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:28--&amp;gt;&lt;br /&gt;
*Serial string&lt;br /&gt;
Num. serie de la máquina. (max. 30 carac) . Puede contener carácteres no numéricos.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:29--&amp;gt;&lt;br /&gt;
*Version int32 [RASCHEL SU]&lt;br /&gt;
Versión de la máquina raschel SU (versión 1 .. 4).&lt;br /&gt;
   versión 1 . Sin ahorrador de memoria&lt;br /&gt;
   versión 2 . Con ahorrador de memoria (repeticiones)&lt;br /&gt;
   versión 3 . Sin ahorrador de memoria + información empresa.&lt;br /&gt;
   versión 4 . Con ahorrador de memoria (repeciciones) + información empresa.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:30--&amp;gt;&lt;br /&gt;
*Jacquard int32&lt;br /&gt;
Número de barras de Jacquard independientes. Valores posibles: &lt;br /&gt;
   0 : No jacquard&lt;br /&gt;
   1 : 1 jacquard o fina barra simple&lt;br /&gt;
   2 : 2 jacquard raschel o fina barra doble.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:31--&amp;gt;&lt;br /&gt;
*Fronture int32 [RASCHEL DOUBLE NEEDLE BAR]&lt;br /&gt;
Número de fonturas de la máquina&lt;br /&gt;
   1 : 1 fontura&lt;br /&gt;
   2 : 2 fontures (delante / detrás)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:32--&amp;gt;&lt;br /&gt;
*BarsRepeat int32&lt;br /&gt;
Altura del diseño.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:33--&amp;gt;&lt;br /&gt;
*NumRepeats int32&lt;br /&gt;
Num de repeticiones en el diseño.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:34--&amp;gt;&lt;br /&gt;
*NumBars int32&lt;br /&gt;
Numero de barras que tiene el telar.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:35--&amp;gt;&lt;br /&gt;
*Plate int32&lt;br /&gt;
En máquinas raschel (textronic), indica la posición de la plancha.&lt;br /&gt;
En máquinas leavers indica donde empiezan los brodeurs.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:36--&amp;gt;&lt;br /&gt;
*JacqNeedles int32&lt;br /&gt;
Numero de agujas de Jacquard del telar.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:37--&amp;gt;&lt;br /&gt;
*MachNeedles int32&lt;br /&gt;
Numero total de agujas del telar.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:38--&amp;gt;&lt;br /&gt;
*BarsOffset int32&lt;br /&gt;
Desplazamiento de barras (orillos=zona perdida)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:39--&amp;gt;&lt;br /&gt;
*JacqOffset int32&lt;br /&gt;
Deplazamiento de las agujas de jacquard en el telar.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:40--&amp;gt;&lt;br /&gt;
*MaxDisp int32 [RASCHEL SU]&lt;br /&gt;
Deplazamiento máximo general de las barras para máquinas raschel SU.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:41--&amp;gt;&lt;br /&gt;
*Proximity int32&lt;br /&gt;
Para máquinas raschel, distáncia máxima a la que se pueden acercar dos barras del mismo grupo.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:42--&amp;gt;&lt;br /&gt;
*ProximityCollindant int32&lt;br /&gt;
Para máquinas raschel, distáncia máxima a la que se pueden acercar dos barras del mismo grupo colindantes.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:43--&amp;gt;&lt;br /&gt;
*JacqRt int32&lt;br /&gt;
Deplazamiento Rt del jacquard:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:44--&amp;gt;&lt;br /&gt;
para máquinas raschel:&lt;br /&gt;
   no jacquard: rt = 0&lt;br /&gt;
   jacquard simple o doble: rt = 1&lt;br /&gt;
Indica cuántas agujas se desplaza la lectura del jacaquard en las pasadas alternadas.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:45--&amp;gt;&lt;br /&gt;
para máquinas leavers&lt;br /&gt;
   no fina barra:      0&lt;br /&gt;
   fina barra simple: -1&lt;br /&gt;
   fina barra doble:   0&lt;br /&gt;
Indica cuántas agujas se desplaza la lectura del jacquard (desde la posición derecha de la máquina en las pasadas alternadas).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:46--&amp;gt;&lt;br /&gt;
*JacqRtCourse int32&lt;br /&gt;
Indica que pasadas se aplica el valor JacqRt.&lt;br /&gt;
   0:pasadas pares&lt;br /&gt;
   1: pasadas impares&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:47--&amp;gt;&lt;br /&gt;
*FinalGauge float&lt;br /&gt;
Galga de producto tejido aplicando encongimiento (medida en agujas/pulgada)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:48--&amp;gt;&lt;br /&gt;
*FinalQuality float&lt;br /&gt;
Calidad de producto tejido aplicando elasticidad (medida en pasadas/centímetro).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:49--&amp;gt;&lt;br /&gt;
*RealGauge float&lt;br /&gt;
Galga de máquina (medida en agujas/pulgada)-&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:50--&amp;gt;&lt;br /&gt;
*RealQuality float&lt;br /&gt;
Calidad de máquina (medida en pasadas/centímetro).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:51--&amp;gt;&lt;br /&gt;
*Shrinkage float&lt;br /&gt;
Porcentage de encongimiento en agujas (0-100%)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:52--&amp;gt;&lt;br /&gt;
*Elasticity float&lt;br /&gt;
Porcentage de elasticidad en pasadas (0-100%)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:53--&amp;gt;&lt;br /&gt;
*BarNumBar int32(NumBars)&lt;br /&gt;
Numero de cada una de las barras del telar (valor numérico consecutivo)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:54--&amp;gt;&lt;br /&gt;
*BarName string(NumBars)&lt;br /&gt;
Nombre o identificador de cada una de las barras del telar&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:55--&amp;gt;&lt;br /&gt;
*BarGroup int32(NumBars)&lt;br /&gt;
En máquinas raschel el número de grupo de la barra.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:56--&amp;gt;&lt;br /&gt;
*BarStop int32(NumBars)&lt;br /&gt;
Posición 0 de la barra.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:57--&amp;gt;&lt;br /&gt;
*BarUtil int32(NumBars)&lt;br /&gt;
Visibilidad de la barra en el sistema de diseño.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:58--&amp;gt;&lt;br /&gt;
*BarType int32(NumBars)&lt;br /&gt;
Tipo de hilo por defecto de la barra.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:59--&amp;gt;&lt;br /&gt;
*BarMaxGimp int32&lt;br /&gt;
Guimpada máxima en agujas de la barra.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:60--&amp;gt;&lt;br /&gt;
*BarDrive int32&lt;br /&gt;
En máquinas raschel SU, el número de getribe de la barra.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:61--&amp;gt;&lt;br /&gt;
*BarFactor int32&lt;br /&gt;
En máquinas raschel SU, multiplicador de la barra.&lt;br /&gt;
1: factor de 1 agulla&lt;br /&gt;
2: factor de 2 agulles,&lt;br /&gt;
4: factor de 4 agulles.&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:62--&amp;gt;&lt;br /&gt;
*BarInvert int32&lt;br /&gt;
En máquinas raschel SU, les barres invertides. &lt;br /&gt;
1: barra invertida.&lt;br /&gt;
0: barra no invertida.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:63--&amp;gt;&lt;br /&gt;
*BarWork int32&lt;br /&gt;
Trabajo de la barra en el sistema de diseño.&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;!--T:64--&amp;gt;&lt;br /&gt;
0: Chainette&lt;br /&gt;
   1: Jacquard     [1]&lt;br /&gt;
   2: Brodeur&lt;br /&gt;
   3: Gros&lt;br /&gt;
   4: Fin&lt;br /&gt;
   5: Brillant&lt;br /&gt;
   6: Picot&lt;br /&gt;
   7: Corde&lt;br /&gt;
   8: Lycra&lt;br /&gt;
   9: Fond&lt;br /&gt;
  10: Bloc&lt;br /&gt;
  11: Cord&lt;br /&gt;
  12: Guimp&lt;br /&gt;
  13: Nul&lt;br /&gt;
  14: Jacq 0/2,6/4 [1]&lt;br /&gt;
  15: Jacq 0/2,8/6 [1]&lt;br /&gt;
  16: Fine Bar.  [sup]&lt;br /&gt;
  17: Braquette&amp;quot;&lt;br /&gt;
  18: Jacquard     [2]&lt;br /&gt;
  19: Jacq 0/2,6/4 [2]&lt;br /&gt;
  20: Jacq 0/2,8/6 [2]&lt;br /&gt;
  21: Fine Bar.  [inf]&lt;br /&gt;
  22: Jacquard&lt;br /&gt;
  23: Fine Barre&lt;br /&gt;
  24: Fallplate&lt;br /&gt;
  25: Embrodery&lt;br /&gt;
  26: EFS&lt;br /&gt;
  27: Reservé 1&lt;br /&gt;
  28: Reservé 2&lt;br /&gt;
  29: Jacq 0/2,6/4&lt;br /&gt;
  30: Jacq 0/2,8/6&lt;br /&gt;
  31: Bord&lt;br /&gt;
  32: Lisieres&lt;br /&gt;
  33: Romaines&lt;br /&gt;
  34: Sonnette&lt;br /&gt;
  35: Guimp devant&lt;br /&gt;
  36: Petite Corde&lt;br /&gt;
  37: Fileur&lt;br /&gt;
  38: Separation&lt;br /&gt;
  39: Corde Termo&lt;br /&gt;
  40: Solv rom&lt;br /&gt;
  41: Vis&lt;br /&gt;
  42: Jacquard     [3]&lt;br /&gt;
  43: Jacquard     [4]&lt;br /&gt;
  44: Space Fabric&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:65--&amp;gt;&lt;br /&gt;
*BarKnit&lt;br /&gt;
En máquines raschel textronic tipous de lligada:&lt;br /&gt;
  0 : no planxa&lt;br /&gt;
  1 : lligada 1 (mecanica)&lt;br /&gt;
  2 : lligada 2 (binaria)&lt;br /&gt;
  3 : lligada 3 (mecánica (2))&lt;br /&gt;
  4 : lligada 4 (binària (2))&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:66--&amp;gt;&lt;br /&gt;
*BarTimes&lt;br /&gt;
En máquines raschel textonic temps de la lligada&lt;br /&gt;
  0 : no planxa&lt;br /&gt;
  2 : temps 2 (p.e) 0202 0202 0202&lt;br /&gt;
  4 : temps 4 (p.e) 0220 0220 0220&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:67--&amp;gt;&lt;br /&gt;
*BarMode&lt;br /&gt;
En máquines raschel textronic el mode la la barra:&lt;br /&gt;
  0 : mode A (p.e 0220)&lt;br /&gt;
  1 : mode B (p.e 2002)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:68--&amp;gt;&lt;br /&gt;
*BarModif int32&lt;br /&gt;
En máquines raschel textronic indica que la barra no es pot deslligar&lt;br /&gt;
  0 : no es pot deslligar&lt;br /&gt;
  1 : si es pot deslligar&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:69--&amp;gt;&lt;br /&gt;
*BarTension int32&lt;br /&gt;
Tensió de la barra a les simulacions.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:70--&amp;gt;&lt;br /&gt;
*BarNumFingers int32(NumBars)&lt;br /&gt;
Número de pasadors de la barra&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:71--&amp;gt;&lt;br /&gt;
*BarModeDrop int32(NumBars)&lt;br /&gt;
Ponderación de cada uno de los 7 bits que se usan para indicar el desplazamiento de la barra. Valores:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;!--T:72--&amp;gt;&lt;br /&gt;
Valor | B7 | B6 | B5 | B4 | B3 | B2 | B1&lt;br /&gt;
 ------+----+----+----+----+----+----+----&lt;br /&gt;
    0  |  8 |  8 |  8 |  4 |  2 |  1 |1/2&lt;br /&gt;
 ------+----+----+----+----+----+----+----&lt;br /&gt;
    1  | 16 |  8 |  8 |  4 |  2 |  1 |1/2&lt;br /&gt;
 ------+----+----+----+----+----+----+----&lt;br /&gt;
    2  | 16 | 16 |  8 |  4 |  2 |  1 |1/2&lt;br /&gt;
 ------+----+----+----+----+----+----+----&lt;br /&gt;
    3  | 32 | 16 |  8 |  4 |  2 |  1 |1/2&lt;br /&gt;
 ------+----+----+----+----+----+----+----&lt;br /&gt;
    4  |  8 |  8 |  8 |  8 |  4 |  2 | 1&lt;br /&gt;
 ------+----+----+----+----+----+----+----&lt;br /&gt;
    5  | 16 |  8 |  8 |  8 |  4 |  2 | 1&lt;br /&gt;
 ------+----+----+----+----+----+----+----&lt;br /&gt;
    6  |  4 |  4 |  4 |  4 |  2 |  1 | 1&lt;br /&gt;
 ------+----+----+----+----+----+----+----&lt;br /&gt;
    7  |  0 |  0 |  0 |  1 |  2 |  1 |1/2&lt;br /&gt;
 ------+----+----+----+----+----+----+----&lt;br /&gt;
    8  |  4 |  4 |  4 |  4 |  2 |  1 |1/2&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:73--&amp;gt;&lt;br /&gt;
*BarMaxDesp int32(NumBars)&lt;br /&gt;
Desplazamiento máximo de la barra en agujas&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:74--&amp;gt;&lt;br /&gt;
*BarActive byte(NumBars)&lt;br /&gt;
Sólo para maquinas EL. Indica si la barra esta en uso o no.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:75--&amp;gt;&lt;br /&gt;
*BarHalvesUp byte(NumBars)&lt;br /&gt;
Si en la pasada se incrementa la posición de la barra en BarHalvesUp agujas o más, entonces , se añade media aguja a la posición final.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:76--&amp;gt;&lt;br /&gt;
*BarHalvesDn byte(NumBars)&lt;br /&gt;
Si en la pasada se decrementa la posición de la barra en BarHalvesDwn agujas o más, entonces , se le resta media aguja a la posición final.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:77--&amp;gt;&lt;br /&gt;
*BarString int32(NumBars)&lt;br /&gt;
Valors:&lt;br /&gt;
0:&lt;br /&gt;
1:ple&lt;br /&gt;
2:1f 1x&lt;br /&gt;
3:1x 1f&lt;br /&gt;
4:buit&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:78--&amp;gt;&lt;br /&gt;
*BarFronture int32(NumBars)&lt;br /&gt;
Solo se usa en las máquinas de doble frontura. Da la frontura en la que empieza a trabajar la barra.Valores:&lt;br /&gt;
0: primera forntura&lt;br /&gt;
1: segunda frontura&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:79--&amp;gt;&lt;br /&gt;
*BarDropsUtil int32(7*NumBars)&lt;br /&gt;
indica como se deben perforar los 7 posiciones correspondientes a la barra:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:80--&amp;gt;&lt;br /&gt;
Valor:&lt;br /&gt;
0: Usado. Siempre a 1. Es decir: no perforar nunca&lt;br /&gt;
1: Usado, Se perforara o no en funcion del desplazamiento de la barra&lt;br /&gt;
2: Usado. Siemre a 0. Es decir, se perfora siempre&lt;br /&gt;
3: No usado. No se perfora&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:81--&amp;gt;&lt;br /&gt;
*FingerStop int32(num_fingers) num_fingers=BarNumFingers(0) + ... + BarNumFingers(NumBars-1)&lt;br /&gt;
Stop del pasador relativo al stop de la barra.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:82--&amp;gt;&lt;br /&gt;
*FingerType int32(num_fingers) num_fingers=BarNumFingers(0) + ... + BarNumFingers(NumBars-1)&lt;br /&gt;
Tipo de pasador.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:83--&amp;gt;&lt;br /&gt;
*CGF1Card int32&lt;br /&gt;
ha de estar a 0.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:84--&amp;gt;&lt;br /&gt;
*CGF1Type int32&lt;br /&gt;
Número de columnas útiles en el cartón.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:85--&amp;gt;&lt;br /&gt;
*CGF1Taille int32&lt;br /&gt;
Número de columnas totales que caben del cartón.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:86--&amp;gt;&lt;br /&gt;
*CGF1Numlines int32&lt;br /&gt;
numero de entradas de las que consta la especificación del cartón.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:87--&amp;gt;&lt;br /&gt;
*CGF1Script string(CGF1Numlines)&lt;br /&gt;
Lista de cadenas de caracteres que detallan como se ha de perforar  cada columna del cartón empezando por la columna de mas a la derecha.&lt;br /&gt;
Cada cadena de caracteres tiene el formato: &amp;lt;codigo de tipo&amp;gt; &amp;lt;espacio&amp;gt; &amp;lt;numero de repeticiones&amp;gt;. Ex: &amp;quot;LC 1&amp;quot;.&lt;br /&gt;
Los codigos de tipo validos son:&lt;br /&gt;
   LC: Laçage&lt;br /&gt;
   TC: Trou de centrage&lt;br /&gt;
   TS: Trou de centrage simple&lt;br /&gt;
   EL: Element vide&lt;br /&gt;
   GF: Gros fil&lt;br /&gt;
   VB: Value&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:88--&amp;gt;&lt;br /&gt;
*CGF1Descrip string(CGF1Numlines)&lt;br /&gt;
Descripción de cada entada del cartón.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:89--&amp;gt;&lt;br /&gt;
Ex:&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;!--T:90--&amp;gt;&lt;br /&gt;
CGF1Script | CGF1Descrip&lt;br /&gt;
 ------------+--------------&lt;br /&gt;
   &amp;quot;LC 1&amp;quot;    |  &amp;quot;Laçage&amp;quot;&lt;br /&gt;
   &amp;quot;TC 1&amp;quot;    |  &amp;quot;Trou de centrage&amp;quot;&lt;br /&gt;
   &amp;quot;GF 6&amp;quot;    |  &amp;quot;braquettes&amp;quot;  &lt;br /&gt;
   &amp;quot;GF 4&amp;quot;    |  &amp;quot;stum&amp;quot;                                                                                                      &lt;br /&gt;
   &amp;quot;GF 30&amp;quot;   |  &amp;quot;guimpes&amp;quot;                                                                                                    &lt;br /&gt;
   &amp;quot;TC 1&amp;quot;    |  &amp;quot;Trou de centrage&amp;quot;                                                                                            &lt;br /&gt;
   &amp;quot;LC 1&amp;quot;    |  &amp;quot;Laçage&amp;quot;                                                                                                       &lt;br /&gt;
   &amp;quot;GF 26&amp;quot;   |  &amp;quot;guimpes&amp;quot;                                                                                                &lt;br /&gt;
   &amp;quot;GF 4&amp;quot;    |  &amp;quot;stum&amp;quot;                                                                                                   &lt;br /&gt;
   &amp;quot;GF 6&amp;quot;    |  &amp;quot;braquettes&amp;quot;                                                                                               &lt;br /&gt;
   &amp;quot;GF 3&amp;quot;    |  &amp;quot;brodeus&amp;quot;                                                                                                  &lt;br /&gt;
   &amp;quot;TC 1&amp;quot;    |  &amp;quot;Trou de centrage&amp;quot;                                                                                         &lt;br /&gt;
   &amp;quot;LC 1&amp;quot;    |  &amp;quot;Laçage&amp;quot;                                                                                                      &lt;br /&gt;
   &amp;quot;GF 39&amp;quot;   |  &amp;quot;brodeus&amp;quot;                                                                                                 &lt;br /&gt;
   &amp;quot;TC 1&amp;quot;    |  &amp;quot;Trou de centrage&amp;quot;                                                                                           &lt;br /&gt;
   &amp;quot;LC 1&amp;quot;    |  &amp;quot;Laçage&amp;quot;                                                                                                    &lt;br /&gt;
                                                                                                                           &lt;br /&gt;
&amp;lt;div style=&amp;quot;font-size:7pt;color:blue;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;                                                                                                                          &lt;br /&gt;
  L T                GF39                   L T G   GF6  GF4          GF26            L T               GF30           GF4  GF6  T L&lt;br /&gt;
  C C _____________________________________ C C F  ____  __  ________________________ C C ____________________________  __  ____ C C&lt;br /&gt;
  1 1/                                     \1 1/3\/    \/  \/                        \1 1/                            \/  \/    \1 1&lt;br /&gt;
/------------------------------------------------------------------------------------------------------------------------------------\&lt;br /&gt;
|    OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO.  OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO.  OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO    |&lt;br /&gt;
| O  .O.O.O.OOOOOOO.OOO.OOOOOO.O.O.OOOOOOOOOO  OOOOOOOOOOO..O..OO...O.OO.....O..O..OOOO  OO...O...OOO.OOOOO...O.....O..OO..OOOOOO  O |&lt;br /&gt;
|    OOOOO.OO.O...OOO..O..OO.OO.OOOO.O..OO.O.  OOOOOO...OOOO.O.OOOO..O.OO.OOO..O.O.O...  ..OOO.OO..O.OO....O.O..O.OOOOOOOOOOOO...    |&lt;br /&gt;
|  ().OO.OO...OOOOOOOO.OO...O.OOOO..OO....O..()O..OOOOOOOOOOO.O....OO..O..OOO..OO.O.O..()OO.....OOO...OO..OO.O.OOO.OO.OOOOOOOOOOO()  |&lt;br /&gt;
|    ........................................  ...............OO..OO..O.......O........  ...........O...O...O.O...O...O..........    |&lt;br /&gt;
| O  .O....OO.O.O....O.O.OOO..O.O.OO.O..OOO.O  ..O...........OOO.OOO.OOOOOOO.OOO.OOO.OO  OOOOOOOOOOOOOOOOOOOO.OOOOOOOOO..........  O |&lt;br /&gt;
|    O.OOOOOOO.O.OOOO.O.OOOOOO.O.OOOO.OO.OOO.  OOO..........OOOOOOOOOOOOOOOOOOOOOOOOOO.  OOOOOOOOOOOOOOOOOOOOOOOOOOOOOO..........    |&lt;br /&gt;
\------------------------------------------------------------------------------------------------------------------------------------/    &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:91--&amp;gt;&lt;br /&gt;
*CGF2Card int32&lt;br /&gt;
ha de estar a 0.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:92--&amp;gt;&lt;br /&gt;
*CGF2Type int32&lt;br /&gt;
Número de columnas útiles en el cartón.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:93--&amp;gt;&lt;br /&gt;
*CGF2Taille int32&lt;br /&gt;
Número de columnas totales que caben del cartón.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:94--&amp;gt;&lt;br /&gt;
*CGF2Numlines int32&lt;br /&gt;
numero de entradas de las que consta la especificación del cartón.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:95--&amp;gt;&lt;br /&gt;
*CGF2Script string(CGF2Numlines)&lt;br /&gt;
Especificación del cartón. Formateado igual que CGF1Script.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:96--&amp;gt;&lt;br /&gt;
*CGF2Descrip string(CGF2Numlines)&lt;br /&gt;
Descripción de cada entada del cartón.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:97--&amp;gt;&lt;br /&gt;
*CFBCard int32&lt;br /&gt;
ha de estar a 1.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:98--&amp;gt;&lt;br /&gt;
*CFBType int32&lt;br /&gt;
Número de columnas útiles en el cartón.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:99--&amp;gt;&lt;br /&gt;
*CFBTaille int32&lt;br /&gt;
Número de columnas totales que caben del cartón multiplicadas por 8.Ex:&lt;br /&gt;
si el cartón tiene 75 columnas CFBTaille=75*8=600&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:100--&amp;gt;&lt;br /&gt;
*CFBNumlines int32&lt;br /&gt;
numero de entradas de las que consta la especificación del cartón.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:101--&amp;gt;&lt;br /&gt;
*CFBScript string(CFBNumlines)&lt;br /&gt;
Especificación del cartón. Formateado igual que CGF1Script. Excepto que los tipos aceptados&lt;br /&gt;
son:&lt;br /&gt;
   LC: Laçage&lt;br /&gt;
   TC: Trou de centrage&lt;br /&gt;
   TS: Trou de centrage simple&lt;br /&gt;
   EL: Element vide&lt;br /&gt;
   FB: Fine barre&lt;br /&gt;
   VB: Value&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:102--&amp;gt;&lt;br /&gt;
Es decir el tipo &amp;quot;GF&amp;quot; no existe para este tag y en su lugar hay el tipo &amp;quot;FB&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:103--&amp;gt;&lt;br /&gt;
*CFBDescrip string(CFBNumlines)&lt;br /&gt;
Descripción de cada entada del cartón.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:104--&amp;gt;&lt;br /&gt;
*CFBNGaits int32&lt;br /&gt;
Número de entradas para mapear las repeticiones de agujas de Fine Barre a los cartones en función de la repetición.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:105--&amp;gt;&lt;br /&gt;
*CFBGaitNRepeat int32(CFBNGaits)&lt;br /&gt;
Número de repetición a mapear&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:106--&amp;gt;&lt;br /&gt;
*CFBGaitNBar int32(CFBNGaits)&lt;br /&gt;
Número de aguja a mapear&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:107--&amp;gt;&lt;br /&gt;
*CFBGaitNGait int32(CFBNGaits)&lt;br /&gt;
Indice de agujero en el cartón&lt;br /&gt;
&lt;br /&gt;
==== TAGS DRAFT DATA ==== &amp;lt;!--T:109--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:110--&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:111--&amp;gt;&lt;br /&gt;
*NumCourses int32&lt;br /&gt;
Numero de pasadas del dibujo sin tener en cuenta las repeticiones.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:112--&amp;gt;&lt;br /&gt;
*BarNeedle int16(NumCourses*NumBars)&lt;br /&gt;
Despazamientos medidos en agujas de las barras en cada pasada. Ordenados de la siguiente manera:&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;!--T:113--&amp;gt;&lt;br /&gt;
BarNeedle(0)              Desplazamiento barra 1 en la primera pasada.&lt;br /&gt;
   BarNeedle(1)              Desplazamiento barra 1 en la segunda pasada.&lt;br /&gt;
   .&lt;br /&gt;
   .&lt;br /&gt;
   BarNeedle(NumCourses-1)   Desplazamiento barra 1 en la última pasada.&lt;br /&gt;
   BarNeedle(NumCourses)     Desplazamiento barra 2 en la primera pasada.&lt;br /&gt;
   .&lt;br /&gt;
   .&lt;br /&gt;
   BarNeedel(NumCourses*2-1) Desplazamiento barra 2 en la última pasada.&lt;br /&gt;
   BarNeedle(NumCourses)     Desplazamiento barra 3 en la primera pasada.&lt;br /&gt;
   .&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:114--&amp;gt;&lt;br /&gt;
*BarNeedleB int16(NumCourses*NumBars)&lt;br /&gt;
Solo se utiliza en maquinas de doble frontura. Es equivalente a BarNeedle pero contiene la información&lt;br /&gt;
para la segunda frontura.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:115--&amp;gt;&lt;br /&gt;
*BarHalves byte(NumCourses*NumBars)&lt;br /&gt;
Incremento de 1/2 aguja en el movimiento de la barra introducido manualmente por el diseñador desde el menú de Bareme&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:116--&amp;gt;&lt;br /&gt;
*BarKnitting byte(NumCourses*NumBars)&lt;br /&gt;
Indica en las maquinas que hacen 2 movimientos por pasada que movimiento se realiza&lt;br /&gt;
Valores:&lt;br /&gt;
 0 : Movimiento 0 0 . No liga&lt;br /&gt;
 1 : Movimeinto 0 1 . Liga&lt;br /&gt;
 2 : Movimeinto 1 0 . Liga&lt;br /&gt;
 3 : Movimeinto 1 1 . No liga&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:117--&amp;gt;&lt;br /&gt;
*BarKnittingB byte(NumCourses*NumBars)&lt;br /&gt;
Solo se utiliza en maquinas de doble frontura. Es equivalente a BarKnitting pero contiene la información&lt;br /&gt;
para la segunda frontura.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:118--&amp;gt;&lt;br /&gt;
*Layout_JacqData byte(NumCourses*JacqNeedles*Jacquard)&lt;br /&gt;
Cada byte guarda un bit de Jacquard. Valores:&lt;br /&gt;
0: T&lt;br /&gt;
1: H&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:119--&amp;gt;&lt;br /&gt;
*Layout_FrontureData byte(NumCourses*JacqNeedles*Jacquard)&lt;br /&gt;
Solo se utiliza en maquinas de doble frontura. Es equivalente a Layout_JacqData pero contiene la información&lt;br /&gt;
para la segunda frontura.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:120--&amp;gt;&lt;br /&gt;
*Layout_WBData byte(NumCourses*JacqNeedles*Jacquard)&lt;br /&gt;
Solo se utiliza en maquinas CLIPTRONIC . Contiene los datos para la barra de Embrodery(WB) en el mismo formato que&lt;br /&gt;
Layout_JacqData.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:121--&amp;gt;&lt;br /&gt;
*LayoutCourNRepeats int32&lt;br /&gt;
Numero de repeticiones de pasadas. Las repeticiones de pasadas afectan por igual las barras de dibujo y el jacquard.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:122--&amp;gt;&lt;br /&gt;
*LayoutCourNLayouts int32&lt;br /&gt;
Numero de bloques de pasadas a repetir&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:123--&amp;gt;&lt;br /&gt;
*LayoutCourRepeat int32(LayoutCourNLayouts)&lt;br /&gt;
Numero de pasadas que contiene cada bloque a repetir&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:124--&amp;gt;&lt;br /&gt;
*LayoutCourWhich int32(LayoutCourNRepeats)&lt;br /&gt;
indice del bloque que a repetir&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:125--&amp;gt;&lt;br /&gt;
*LayoutCourTimes int32(LayoutCourNRepeats)&lt;br /&gt;
numero de veces que se ha de repetir el bloque. Ejemplo:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:126--&amp;gt;&lt;br /&gt;
Normalmente como los dibujos suelen ser bastante repetitivos, para ahorrar trabajo y memoria no se guardan todas las pasadas&lt;br /&gt;
del dibujo. En un dibujo como el siguiente :&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;!--T:127--&amp;gt;&lt;br /&gt;
+------------------------------------------------------------------------------------------+&lt;br /&gt;
    |  ,~.~._,~.~._,~.~._,~.~._,~.~._,~.~._,~.~.    ,~.~._,~.~._,~.~._,~.~._,~.~._,~.~._,~.~.  | &lt;br /&gt;
    | / O.O   O.O   O.O   O.O   O.O   O.O   O.O \  / O.O   O.O   O.O   O.O   O.O   O.O   O.O \ | &lt;br /&gt;
    |( O:@:O O:@:O O:@:O O:@:O O:@:O O:@:O O:@:O )( O:@:O O:@:O O:@:O O:@:O O:@:O O:@:O O:@:O )| &lt;br /&gt;
    | \ O&#039;O   O&#039;O   O&#039;O   O&#039;O   O&#039;O   O&#039;O   O&#039;O /  \ O&#039;O   O&#039;O   O&#039;O   O&#039;O   O&#039;O   O&#039;O   O&#039;O / | &lt;br /&gt;
    |  )   . ,   . ,   . ,   . ,   . ,   . ,   (    )   . ,   . ,   . ,   . ,   . ,   . ,   (  | &lt;br /&gt;
/\  | (  * -@- * -@- * -@- * -@- * -@- * -@- *  )  (  * -@- * -@- * -@- * -@- * -@- * -@- *  ) | &lt;br /&gt;
 A  |  )   &#039; `   &#039; `   &#039; `   &#039; `   &#039; `   &#039; `   (    )   &#039; `   &#039; `   &#039; `   &#039; `   &#039; `   &#039; `   (  | &lt;br /&gt;
 g  | / O.O   O.O   O.O   O.O   O.O   O.O   O.O \  / O.O   O.O   O.O   O.O   O.O   O.O   O.O \ | &lt;br /&gt;
 u  |( O:@:O O:@:O O:@:O O:@:O O:@:O O:@:O O:@:O )( O:@:O O:@:O O:@:O O:@:O O:@:O O:@:O O:@:O )| &lt;br /&gt;
 j  | \ O&#039;O   O&#039;O   O&#039;O   O&#039;O   O&#039;O   O&#039;O   O&#039;O /  \ O&#039;O   O&#039;O   O&#039;O   O&#039;O   O&#039;O   O&#039;O   O&#039;O / | &lt;br /&gt;
 a  |  ·~·~·^·~·~·^·~·~·^·~·~·^·~·~·^·~·~·^·~·~·    ·~·~·^·~·~·^·~·~·^·~·~·^·~·~·^·~·~·^·~·~·  | &lt;br /&gt;
 s  +------------------------------------------------------------------------------------------+&lt;br /&gt;
     Pasadas &amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:128--&amp;gt;&lt;br /&gt;
Si se mira lo que hay guardado en el archivo se encontraría algo similar a :&lt;br /&gt;
                     &lt;br /&gt;
    +---------------+&lt;br /&gt;
    |  ,~.~._,~.~.  |&lt;br /&gt;
    | / O.O   O.O \ |&lt;br /&gt;
    |( O:@:O O:@:O )|&lt;br /&gt;
    | \ O&#039;O   O&#039;O / |&lt;br /&gt;
    |  )   . ,   (  |&lt;br /&gt;
/\  | (  * -@- *  ) | &lt;br /&gt;
 A  |  )   &#039; `   (  |&lt;br /&gt;
 g  | / O.O   O.O \ |&lt;br /&gt;
 u  |( O:@:O O:@:O )|&lt;br /&gt;
 j  | \ O&#039;O   O&#039;O / |&lt;br /&gt;
 a  |  ·~·~·^·~·~·  |&lt;br /&gt;
 s  +---------------+&lt;br /&gt;
     Pasadas &amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:129--&amp;gt;&lt;br /&gt;
Esto pasa por que se ha guardado solo una vez cada bloque que se repite. En este caso los bloques que se han usado:&lt;br /&gt;
&lt;br /&gt;
     &amp;lt;!--T:130--&amp;gt;&lt;br /&gt;
A      B        C&lt;br /&gt;
  +----+ +------+ +-----+&lt;br /&gt;
  |  ,~| |.~._,~| |.~.  | &lt;br /&gt;
  | / O| |.O   O| |.O \ | &lt;br /&gt;
  |( O:| |@:O O:| |@:O )| &lt;br /&gt;
  | \ O| |&#039;O   O| |&#039;O / | &lt;br /&gt;
  |  ) | |  . , | |  (  | &lt;br /&gt;
  | (  | |* -@- | |*  ) |&lt;br /&gt;
  |  ) | |  &#039; ` | |  (  | &lt;br /&gt;
  | / O| |.O   O| |.O \ | &lt;br /&gt;
  |( O:| |@:O O:| |@:O )|&lt;br /&gt;
  | \ O| |&#039;O   O| |&#039;O / |  &lt;br /&gt;
  |  ·~| |·~·^·~| |·~·  | &lt;br /&gt;
  +----+ +------+ +-----+&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:131--&amp;gt;&lt;br /&gt;
Se puede ver con facilidad que la sequencia de bloques para obtener el dibujo es: A B B B B B B C A B B B B B B C&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:132--&amp;gt;&lt;br /&gt;
LayoutCourNLayouts=3 pues hay tres bloques distintos ( A , B , C )&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:133--&amp;gt;&lt;br /&gt;
LayoutCourRepeat=Array(&lt;br /&gt;
   numero de pasadas de A,&lt;br /&gt;
   numero de pasadas de B,&lt;br /&gt;
   numero de pasadas de C&lt;br /&gt;
)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:134--&amp;gt;&lt;br /&gt;
NOTA: El número total de pasadas ha de ser igual a la suma de pasadas de los bloques de repeticiones. Es decir:&lt;br /&gt;
NumCourses=LayoutCourRepeat(0)+...+LayoutCourRepeat(LayoutCourNLayouts-1)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:135--&amp;gt;&lt;br /&gt;
Luego para codificar que se desea 1 repetición de A, 6 repeticiones de B y una repeticion de C se haria de la siguiente manera:&lt;br /&gt;
&lt;br /&gt;
                         &amp;lt;!--T:136--&amp;gt;&lt;br /&gt;
idx  |  LayoutCourWhich | LayoutCourTimes | Significado&lt;br /&gt;
                      --------+------------------+-----------------+------------------&lt;br /&gt;
                        _     |                  |                 |&lt;br /&gt;
                       /  0   |         1        |       1         | Bloque 1 (A) repetir una vez&lt;br /&gt;
                       |      |                  |                 |&lt;br /&gt;
                       |  1   |         2        |       6         | Bloque 2 (B) repetir 6 veces&lt;br /&gt;
                       |      |                  |                 |&lt;br /&gt;
                       |  2   |         3        |       1         | Bloque 3 (C) repetir una vez&lt;br /&gt;
LayoutCourNRepeats=6  &amp;lt;       |                  |                 |&lt;br /&gt;
                       |  3   |         1        |       1         | Bloque 1 (A) repetir una vez&lt;br /&gt;
                       |      |                  |                 |&lt;br /&gt;
                       |  4   |         2        |       6         | Bloque 2 (B) repetir 6 veces&lt;br /&gt;
                       |      |                  |                 |&lt;br /&gt;
                       \_ 5   |         3        |       1         | Bloque 3 (C) repetir una vez&lt;br /&gt;
                              |                  |                 |&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:137--&amp;gt;&lt;br /&gt;
*LayoutJacqNRepeats int32&lt;br /&gt;
Numero de repeticiones de agujas. Solo afecta el jacquard. Sigue el mismo sistema que las repeticiones de pasadas.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:138--&amp;gt;&lt;br /&gt;
*LayoutJacqNLayouts int32&lt;br /&gt;
Numero de bloques de agujas a repetir&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:139--&amp;gt;&lt;br /&gt;
*LayoutJacqRepeat int32(LayoutJacqNLayouts)&lt;br /&gt;
Numero de agujas que contiene cada bloque a repetir&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:140--&amp;gt;&lt;br /&gt;
*LayoutJacqWhich int32(LayoutJacqNRepeats)&lt;br /&gt;
indice del bloque que a repetir&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:141--&amp;gt;&lt;br /&gt;
*LayoutJacqTimes int32(LayoutJacqNRepeats)&lt;br /&gt;
numero de veces que se ha de repetir el bloque.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:142--&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;/div&gt;</summary>
		<author><name>Pascual</name></author>
	</entry>
	<entry>
		<id>https://wiki.cadt.com/index.php?title=Drf-reader&amp;diff=3152</id>
		<title>Drf-reader</title>
		<link rel="alternate" type="text/html" href="https://wiki.cadt.com/index.php?title=Drf-reader&amp;diff=3152"/>
		<updated>2016-10-05T17:10:14Z</updated>

		<summary type="html">&lt;p&gt;Pascual: /* DLL_EXPORTS */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;languages/&amp;gt;&lt;br /&gt;
[[Category:SAPO]]&lt;br /&gt;
[[Category:Devel]]&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== DLL_EXPORTS === &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;void drf_clear_errors()&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Descr:&lt;br /&gt;
&amp;lt;!--T:1--&amp;gt;&lt;br /&gt;
Borra todos los mensajes de error del almacenamiento interno de la librería dinámica.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;int drf_get_num_errors()&amp;lt;/code&amp;gt;&lt;br /&gt;
Descr:&lt;br /&gt;
&amp;lt;!--T:2--&amp;gt;&lt;br /&gt;
Obtiene el número de mensajes de error almacenados por la librería dinámica.&lt;br /&gt;
&lt;br /&gt;
Return:&lt;br /&gt;
&amp;lt;!--T:3--&amp;gt;&lt;br /&gt;
Número de mensajes almacenados.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;const char* drf_get_error(int idx)&amp;lt;/code&amp;gt;&lt;br /&gt;
Descr:&lt;br /&gt;
&amp;lt;!--T:4--&amp;gt;&lt;br /&gt;
Obtiene el mensaje de error indicado por idx (referenciado a 0).&lt;br /&gt;
&lt;br /&gt;
Params:&lt;br /&gt;
idx:&lt;br /&gt;
&amp;lt;!--T:5--&amp;gt;&lt;br /&gt;
Número de mensaje a obtener. Rango entre: 0 y (drf_get_num_errors()-1) ambos incluidos.&lt;br /&gt;
&lt;br /&gt;
Return:&lt;br /&gt;
&amp;lt;!--T:6--&amp;gt;&lt;br /&gt;
Éxito: Puntero a una cadena de caracteres ASCII terminada por el byte NUL (&#039;\0&#039;)&lt;br /&gt;
Error: NULL en caso que el valor de idx esté fuera de rango.&lt;br /&gt;
&lt;br /&gt;
int drf_to_json(char *path,FILE *json,int options)&lt;br /&gt;
Descr:&lt;br /&gt;
&amp;lt;!--T:7--&amp;gt;&lt;br /&gt;
Serializa a JSON un archivo DRF.&lt;br /&gt;
&lt;br /&gt;
Params:&lt;br /&gt;
path:&lt;br /&gt;
Ruta al fichero DRF a serializar en formato Windows ANSI.&lt;br /&gt;
json:&lt;br /&gt;
puntero FILE ya abierto y con la escritura habilitada.&lt;br /&gt;
options:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:8--&amp;gt;&lt;br /&gt;
Selecciona que información se serializará. Valores possibles:&lt;br /&gt;
&lt;br /&gt;
   DRF_GET_GENERIC_INFO&lt;br /&gt;
   DRF_GET_MACHINE_INFO&lt;br /&gt;
   DRF_GET_DRAFT_INFO&lt;br /&gt;
   DRF_GET_ALL_INFO&lt;br /&gt;
&lt;br /&gt;
o una combinación de los valores anteriores via or bit a bit&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:9--&amp;gt;&lt;br /&gt;
Return: Éxito : retorna valor igual a 0&lt;br /&gt;
        Error : retorna valor diferente de 0&lt;br /&gt;
&lt;br /&gt;
=== TAGS ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:11--&amp;gt;&lt;br /&gt;
Codificación a JSON de los datos:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:12--&amp;gt;&lt;br /&gt;
Internamente el DRF guarda la información como una lista de tags. Cada tag puede contener uno o varios elementos del mismo tipo.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:13--&amp;gt;&lt;br /&gt;
Al codificar un DRF a JSON se codifica como un objeto donde se usa el nombre del tag como clave y el contenido de éste como valor.&lt;br /&gt;
En caso que el tag pueda contener más de un valor, la librería serializa el contenido como un vector.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:14--&amp;gt;&lt;br /&gt;
Como el formato DRF soporta más tipos que el JSON, la librería los convertirá a un tipo soportado por el JSON. La siguiente tabla muestra a que &lt;br /&gt;
tipo del JSON se convierte cada tipo del DRF &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    DRF  | JSON   &lt;br /&gt;
  -------+--------&lt;br /&gt;
  byte   | &lt;br /&gt;
  int16  | int&lt;br /&gt;
  int32  |&lt;br /&gt;
  -------+-------&lt;br /&gt;
  float  | float&lt;br /&gt;
  -------+-------&lt;br /&gt;
  string | string*&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:16--&amp;gt;&lt;br /&gt;
*) Todos los strings contienen solo caracteres ASCII (encoding:ASCII-7)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== TAGS GENERIC INFO ==== &amp;lt;!--T:17--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:18--&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:19--&amp;gt;&lt;br /&gt;
*Software string&lt;br /&gt;
Nombre del programa que ha generado el fichero .DRF&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:20--&amp;gt;&lt;br /&gt;
*DrawName string&lt;br /&gt;
Referencia del dibujo (max. 256 carac).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:21--&amp;gt;&lt;br /&gt;
*Company string&lt;br /&gt;
Compañía que ha creado el dibujo (max. 30 carac).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:22--&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== TAGS MACHINE INFO ==== &amp;lt;!--T:23--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:25--&amp;gt;&lt;br /&gt;
*Machine string&lt;br /&gt;
Referencia de la máquina. (max. 30 carac) &lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:26--&amp;gt;&lt;br /&gt;
*MachineType string&lt;br /&gt;
Modelo de la máquina. Sólo es válido un modelo definido en el sistema de diseño. (p.e. LEAVERS)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:27--&amp;gt;&lt;br /&gt;
*Description string&lt;br /&gt;
Descripción o información adicional de la máquina.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:28--&amp;gt;&lt;br /&gt;
*Serial string&lt;br /&gt;
Num. serie de la máquina. (max. 30 carac) . Puede contener carácteres no numéricos.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:29--&amp;gt;&lt;br /&gt;
*Version int32 [RASCHEL SU]&lt;br /&gt;
Versión de la máquina raschel SU (versión 1 .. 4).&lt;br /&gt;
   versión 1 . Sin ahorrador de memoria&lt;br /&gt;
   versión 2 . Con ahorrador de memoria (repeticiones)&lt;br /&gt;
   versión 3 . Sin ahorrador de memoria + información empresa.&lt;br /&gt;
   versión 4 . Con ahorrador de memoria (repeciciones) + información empresa.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:30--&amp;gt;&lt;br /&gt;
*Jacquard int32&lt;br /&gt;
Número de barras de Jacquard independientes. Valores posibles: &lt;br /&gt;
   0 : No jacquard&lt;br /&gt;
   1 : 1 jacquard o fina barra simple&lt;br /&gt;
   2 : 2 jacquard raschel o fina barra doble.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:31--&amp;gt;&lt;br /&gt;
*Fronture int32 [RASCHEL DOUBLE NEEDLE BAR]&lt;br /&gt;
Número de fonturas de la máquina&lt;br /&gt;
   1 : 1 fontura&lt;br /&gt;
   2 : 2 fontures (delante / detrás)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:32--&amp;gt;&lt;br /&gt;
*BarsRepeat int32&lt;br /&gt;
Altura del diseño.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:33--&amp;gt;&lt;br /&gt;
*NumRepeats int32&lt;br /&gt;
Num de repeticiones en el diseño.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:34--&amp;gt;&lt;br /&gt;
*NumBars int32&lt;br /&gt;
Numero de barras que tiene el telar.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:35--&amp;gt;&lt;br /&gt;
*Plate int32&lt;br /&gt;
En máquinas raschel (textronic), indica la posición de la plancha.&lt;br /&gt;
En máquinas leavers indica donde empiezan los brodeurs.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:36--&amp;gt;&lt;br /&gt;
*JacqNeedles int32&lt;br /&gt;
Numero de agujas de Jacquard del telar.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:37--&amp;gt;&lt;br /&gt;
*MachNeedles int32&lt;br /&gt;
Numero total de agujas del telar.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:38--&amp;gt;&lt;br /&gt;
*BarsOffset int32&lt;br /&gt;
Desplazamiento de barras (orillos=zona perdida)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:39--&amp;gt;&lt;br /&gt;
*JacqOffset int32&lt;br /&gt;
Deplazamiento de las agujas de jacquard en el telar.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:40--&amp;gt;&lt;br /&gt;
*MaxDisp int32 [RASCHEL SU]&lt;br /&gt;
Deplazamiento máximo general de las barras para máquinas raschel SU.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:41--&amp;gt;&lt;br /&gt;
*Proximity int32&lt;br /&gt;
Para máquinas raschel, distáncia máxima a la que se pueden acercar dos barras del mismo grupo.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:42--&amp;gt;&lt;br /&gt;
*ProximityCollindant int32&lt;br /&gt;
Para máquinas raschel, distáncia máxima a la que se pueden acercar dos barras del mismo grupo colindantes.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:43--&amp;gt;&lt;br /&gt;
*JacqRt int32&lt;br /&gt;
Deplazamiento Rt del jacquard:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:44--&amp;gt;&lt;br /&gt;
para máquinas raschel:&lt;br /&gt;
   no jacquard: rt = 0&lt;br /&gt;
   jacquard simple o doble: rt = 1&lt;br /&gt;
Indica cuántas agujas se desplaza la lectura del jacaquard en las pasadas alternadas.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:45--&amp;gt;&lt;br /&gt;
para máquinas leavers&lt;br /&gt;
   no fina barra:      0&lt;br /&gt;
   fina barra simple: -1&lt;br /&gt;
   fina barra doble:   0&lt;br /&gt;
Indica cuántas agujas se desplaza la lectura del jacquard (desde la posición derecha de la máquina en las pasadas alternadas).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:46--&amp;gt;&lt;br /&gt;
*JacqRtCourse int32&lt;br /&gt;
Indica que pasadas se aplica el valor JacqRt.&lt;br /&gt;
   0:pasadas pares&lt;br /&gt;
   1: pasadas impares&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:47--&amp;gt;&lt;br /&gt;
*FinalGauge float&lt;br /&gt;
Galga de producto tejido aplicando encongimiento (medida en agujas/pulgada)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:48--&amp;gt;&lt;br /&gt;
*FinalQuality float&lt;br /&gt;
Calidad de producto tejido aplicando elasticidad (medida en pasadas/centímetro).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:49--&amp;gt;&lt;br /&gt;
*RealGauge float&lt;br /&gt;
Galga de máquina (medida en agujas/pulgada)-&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:50--&amp;gt;&lt;br /&gt;
*RealQuality float&lt;br /&gt;
Calidad de máquina (medida en pasadas/centímetro).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:51--&amp;gt;&lt;br /&gt;
*Shrinkage float&lt;br /&gt;
Porcentage de encongimiento en agujas (0-100%)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:52--&amp;gt;&lt;br /&gt;
*Elasticity float&lt;br /&gt;
Porcentage de elasticidad en pasadas (0-100%)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:53--&amp;gt;&lt;br /&gt;
*BarNumBar int32(NumBars)&lt;br /&gt;
Numero de cada una de las barras del telar (valor numérico consecutivo)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:54--&amp;gt;&lt;br /&gt;
*BarName string(NumBars)&lt;br /&gt;
Nombre o identificador de cada una de las barras del telar&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:55--&amp;gt;&lt;br /&gt;
*BarGroup int32(NumBars)&lt;br /&gt;
En máquinas raschel el número de grupo de la barra.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:56--&amp;gt;&lt;br /&gt;
*BarStop int32(NumBars)&lt;br /&gt;
Posición 0 de la barra.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:57--&amp;gt;&lt;br /&gt;
*BarUtil int32(NumBars)&lt;br /&gt;
Visibilidad de la barra en el sistema de diseño.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:58--&amp;gt;&lt;br /&gt;
*BarType int32(NumBars)&lt;br /&gt;
Tipo de hilo por defecto de la barra.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:59--&amp;gt;&lt;br /&gt;
*BarMaxGimp int32&lt;br /&gt;
Guimpada máxima en agujas de la barra.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:60--&amp;gt;&lt;br /&gt;
*BarDrive int32&lt;br /&gt;
En máquinas raschel SU, el número de getribe de la barra.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:61--&amp;gt;&lt;br /&gt;
*BarFactor int32&lt;br /&gt;
En máquinas raschel SU, multiplicador de la barra.&lt;br /&gt;
1: factor de 1 agulla&lt;br /&gt;
2: factor de 2 agulles,&lt;br /&gt;
4: factor de 4 agulles.&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:62--&amp;gt;&lt;br /&gt;
*BarInvert int32&lt;br /&gt;
En máquinas raschel SU, les barres invertides. &lt;br /&gt;
1: barra invertida.&lt;br /&gt;
0: barra no invertida.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:63--&amp;gt;&lt;br /&gt;
*BarWork int32&lt;br /&gt;
Trabajo de la barra en el sistema de diseño.&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;!--T:64--&amp;gt;&lt;br /&gt;
0: Chainette&lt;br /&gt;
   1: Jacquard     [1]&lt;br /&gt;
   2: Brodeur&lt;br /&gt;
   3: Gros&lt;br /&gt;
   4: Fin&lt;br /&gt;
   5: Brillant&lt;br /&gt;
   6: Picot&lt;br /&gt;
   7: Corde&lt;br /&gt;
   8: Lycra&lt;br /&gt;
   9: Fond&lt;br /&gt;
  10: Bloc&lt;br /&gt;
  11: Cord&lt;br /&gt;
  12: Guimp&lt;br /&gt;
  13: Nul&lt;br /&gt;
  14: Jacq 0/2,6/4 [1]&lt;br /&gt;
  15: Jacq 0/2,8/6 [1]&lt;br /&gt;
  16: Fine Bar.  [sup]&lt;br /&gt;
  17: Braquette&amp;quot;&lt;br /&gt;
  18: Jacquard     [2]&lt;br /&gt;
  19: Jacq 0/2,6/4 [2]&lt;br /&gt;
  20: Jacq 0/2,8/6 [2]&lt;br /&gt;
  21: Fine Bar.  [inf]&lt;br /&gt;
  22: Jacquard&lt;br /&gt;
  23: Fine Barre&lt;br /&gt;
  24: Fallplate&lt;br /&gt;
  25: Embrodery&lt;br /&gt;
  26: EFS&lt;br /&gt;
  27: Reservé 1&lt;br /&gt;
  28: Reservé 2&lt;br /&gt;
  29: Jacq 0/2,6/4&lt;br /&gt;
  30: Jacq 0/2,8/6&lt;br /&gt;
  31: Bord&lt;br /&gt;
  32: Lisieres&lt;br /&gt;
  33: Romaines&lt;br /&gt;
  34: Sonnette&lt;br /&gt;
  35: Guimp devant&lt;br /&gt;
  36: Petite Corde&lt;br /&gt;
  37: Fileur&lt;br /&gt;
  38: Separation&lt;br /&gt;
  39: Corde Termo&lt;br /&gt;
  40: Solv rom&lt;br /&gt;
  41: Vis&lt;br /&gt;
  42: Jacquard     [3]&lt;br /&gt;
  43: Jacquard     [4]&lt;br /&gt;
  44: Space Fabric&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:65--&amp;gt;&lt;br /&gt;
*BarKnit&lt;br /&gt;
En máquines raschel textronic tipous de lligada:&lt;br /&gt;
  0 : no planxa&lt;br /&gt;
  1 : lligada 1 (mecanica)&lt;br /&gt;
  2 : lligada 2 (binaria)&lt;br /&gt;
  3 : lligada 3 (mecánica (2))&lt;br /&gt;
  4 : lligada 4 (binària (2))&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:66--&amp;gt;&lt;br /&gt;
*BarTimes&lt;br /&gt;
En máquines raschel textonic temps de la lligada&lt;br /&gt;
  0 : no planxa&lt;br /&gt;
  2 : temps 2 (p.e) 0202 0202 0202&lt;br /&gt;
  4 : temps 4 (p.e) 0220 0220 0220&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:67--&amp;gt;&lt;br /&gt;
*BarMode&lt;br /&gt;
En máquines raschel textronic el mode la la barra:&lt;br /&gt;
  0 : mode A (p.e 0220)&lt;br /&gt;
  1 : mode B (p.e 2002)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:68--&amp;gt;&lt;br /&gt;
*BarModif int32&lt;br /&gt;
En máquines raschel textronic indica que la barra no es pot deslligar&lt;br /&gt;
  0 : no es pot deslligar&lt;br /&gt;
  1 : si es pot deslligar&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:69--&amp;gt;&lt;br /&gt;
*BarTension int32&lt;br /&gt;
Tensió de la barra a les simulacions.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:70--&amp;gt;&lt;br /&gt;
*BarNumFingers int32(NumBars)&lt;br /&gt;
Número de pasadors de la barra&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:71--&amp;gt;&lt;br /&gt;
*BarModeDrop int32(NumBars)&lt;br /&gt;
Ponderación de cada uno de los 7 bits que se usan para indicar el desplazamiento de la barra. Valores:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;!--T:72--&amp;gt;&lt;br /&gt;
Valor | B7 | B6 | B5 | B4 | B3 | B2 | B1&lt;br /&gt;
 ------+----+----+----+----+----+----+----&lt;br /&gt;
    0  |  8 |  8 |  8 |  4 |  2 |  1 |1/2&lt;br /&gt;
 ------+----+----+----+----+----+----+----&lt;br /&gt;
    1  | 16 |  8 |  8 |  4 |  2 |  1 |1/2&lt;br /&gt;
 ------+----+----+----+----+----+----+----&lt;br /&gt;
    2  | 16 | 16 |  8 |  4 |  2 |  1 |1/2&lt;br /&gt;
 ------+----+----+----+----+----+----+----&lt;br /&gt;
    3  | 32 | 16 |  8 |  4 |  2 |  1 |1/2&lt;br /&gt;
 ------+----+----+----+----+----+----+----&lt;br /&gt;
    4  |  8 |  8 |  8 |  8 |  4 |  2 | 1&lt;br /&gt;
 ------+----+----+----+----+----+----+----&lt;br /&gt;
    5  | 16 |  8 |  8 |  8 |  4 |  2 | 1&lt;br /&gt;
 ------+----+----+----+----+----+----+----&lt;br /&gt;
    6  |  4 |  4 |  4 |  4 |  2 |  1 | 1&lt;br /&gt;
 ------+----+----+----+----+----+----+----&lt;br /&gt;
    7  |  0 |  0 |  0 |  1 |  2 |  1 |1/2&lt;br /&gt;
 ------+----+----+----+----+----+----+----&lt;br /&gt;
    8  |  4 |  4 |  4 |  4 |  2 |  1 |1/2&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:73--&amp;gt;&lt;br /&gt;
*BarMaxDesp int32(NumBars)&lt;br /&gt;
Desplazamiento máximo de la barra en agujas&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:74--&amp;gt;&lt;br /&gt;
*BarActive byte(NumBars)&lt;br /&gt;
Sólo para maquinas EL. Indica si la barra esta en uso o no.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:75--&amp;gt;&lt;br /&gt;
*BarHalvesUp byte(NumBars)&lt;br /&gt;
Si en la pasada se incrementa la posición de la barra en BarHalvesUp agujas o más, entonces , se añade media aguja a la posición final.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:76--&amp;gt;&lt;br /&gt;
*BarHalvesDn byte(NumBars)&lt;br /&gt;
Si en la pasada se decrementa la posición de la barra en BarHalvesDwn agujas o más, entonces , se le resta media aguja a la posición final.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:77--&amp;gt;&lt;br /&gt;
*BarString int32(NumBars)&lt;br /&gt;
Valors:&lt;br /&gt;
0:&lt;br /&gt;
1:ple&lt;br /&gt;
2:1f 1x&lt;br /&gt;
3:1x 1f&lt;br /&gt;
4:buit&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:78--&amp;gt;&lt;br /&gt;
*BarFronture int32(NumBars)&lt;br /&gt;
Solo se usa en las máquinas de doble frontura. Da la frontura en la que empieza a trabajar la barra.Valores:&lt;br /&gt;
0: primera forntura&lt;br /&gt;
1: segunda frontura&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:79--&amp;gt;&lt;br /&gt;
*BarDropsUtil int32(7*NumBars)&lt;br /&gt;
indica como se deben perforar los 7 posiciones correspondientes a la barra:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:80--&amp;gt;&lt;br /&gt;
Valor:&lt;br /&gt;
0: Usado. Siempre a 1. Es decir: no perforar nunca&lt;br /&gt;
1: Usado, Se perforara o no en funcion del desplazamiento de la barra&lt;br /&gt;
2: Usado. Siemre a 0. Es decir, se perfora siempre&lt;br /&gt;
3: No usado. No se perfora&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:81--&amp;gt;&lt;br /&gt;
*FingerStop int32(num_fingers) num_fingers=BarNumFingers(0) + ... + BarNumFingers(NumBars-1)&lt;br /&gt;
Stop del pasador relativo al stop de la barra.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:82--&amp;gt;&lt;br /&gt;
*FingerType int32(num_fingers) num_fingers=BarNumFingers(0) + ... + BarNumFingers(NumBars-1)&lt;br /&gt;
Tipo de pasador.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:83--&amp;gt;&lt;br /&gt;
*CGF1Card int32&lt;br /&gt;
ha de estar a 0.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:84--&amp;gt;&lt;br /&gt;
*CGF1Type int32&lt;br /&gt;
Número de columnas útiles en el cartón.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:85--&amp;gt;&lt;br /&gt;
*CGF1Taille int32&lt;br /&gt;
Número de columnas totales que caben del cartón.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:86--&amp;gt;&lt;br /&gt;
*CGF1Numlines int32&lt;br /&gt;
numero de entradas de las que consta la especificación del cartón.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:87--&amp;gt;&lt;br /&gt;
*CGF1Script string(CGF1Numlines)&lt;br /&gt;
Lista de cadenas de caracteres que detallan como se ha de perforar  cada columna del cartón empezando por la columna de mas a la derecha.&lt;br /&gt;
Cada cadena de caracteres tiene el formato: &amp;lt;codigo de tipo&amp;gt; &amp;lt;espacio&amp;gt; &amp;lt;numero de repeticiones&amp;gt;. Ex: &amp;quot;LC 1&amp;quot;.&lt;br /&gt;
Los codigos de tipo validos son:&lt;br /&gt;
   LC: Laçage&lt;br /&gt;
   TC: Trou de centrage&lt;br /&gt;
   TS: Trou de centrage simple&lt;br /&gt;
   EL: Element vide&lt;br /&gt;
   GF: Gros fil&lt;br /&gt;
   VB: Value&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:88--&amp;gt;&lt;br /&gt;
*CGF1Descrip string(CGF1Numlines)&lt;br /&gt;
Descripción de cada entada del cartón.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:89--&amp;gt;&lt;br /&gt;
Ex:&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;!--T:90--&amp;gt;&lt;br /&gt;
CGF1Script | CGF1Descrip&lt;br /&gt;
 ------------+--------------&lt;br /&gt;
   &amp;quot;LC 1&amp;quot;    |  &amp;quot;Laçage&amp;quot;&lt;br /&gt;
   &amp;quot;TC 1&amp;quot;    |  &amp;quot;Trou de centrage&amp;quot;&lt;br /&gt;
   &amp;quot;GF 6&amp;quot;    |  &amp;quot;braquettes&amp;quot;  &lt;br /&gt;
   &amp;quot;GF 4&amp;quot;    |  &amp;quot;stum&amp;quot;                                                                                                      &lt;br /&gt;
   &amp;quot;GF 30&amp;quot;   |  &amp;quot;guimpes&amp;quot;                                                                                                    &lt;br /&gt;
   &amp;quot;TC 1&amp;quot;    |  &amp;quot;Trou de centrage&amp;quot;                                                                                            &lt;br /&gt;
   &amp;quot;LC 1&amp;quot;    |  &amp;quot;Laçage&amp;quot;                                                                                                       &lt;br /&gt;
   &amp;quot;GF 26&amp;quot;   |  &amp;quot;guimpes&amp;quot;                                                                                                &lt;br /&gt;
   &amp;quot;GF 4&amp;quot;    |  &amp;quot;stum&amp;quot;                                                                                                   &lt;br /&gt;
   &amp;quot;GF 6&amp;quot;    |  &amp;quot;braquettes&amp;quot;                                                                                               &lt;br /&gt;
   &amp;quot;GF 3&amp;quot;    |  &amp;quot;brodeus&amp;quot;                                                                                                  &lt;br /&gt;
   &amp;quot;TC 1&amp;quot;    |  &amp;quot;Trou de centrage&amp;quot;                                                                                         &lt;br /&gt;
   &amp;quot;LC 1&amp;quot;    |  &amp;quot;Laçage&amp;quot;                                                                                                      &lt;br /&gt;
   &amp;quot;GF 39&amp;quot;   |  &amp;quot;brodeus&amp;quot;                                                                                                 &lt;br /&gt;
   &amp;quot;TC 1&amp;quot;    |  &amp;quot;Trou de centrage&amp;quot;                                                                                           &lt;br /&gt;
   &amp;quot;LC 1&amp;quot;    |  &amp;quot;Laçage&amp;quot;                                                                                                    &lt;br /&gt;
                                                                                                                           &lt;br /&gt;
&amp;lt;div style=&amp;quot;font-size:7pt;color:blue;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;                                                                                                                          &lt;br /&gt;
  L T                GF39                   L T G   GF6  GF4          GF26            L T               GF30           GF4  GF6  T L&lt;br /&gt;
  C C _____________________________________ C C F  ____  __  ________________________ C C ____________________________  __  ____ C C&lt;br /&gt;
  1 1/                                     \1 1/3\/    \/  \/                        \1 1/                            \/  \/    \1 1&lt;br /&gt;
/------------------------------------------------------------------------------------------------------------------------------------\&lt;br /&gt;
|    OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO.  OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO.  OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO    |&lt;br /&gt;
| O  .O.O.O.OOOOOOO.OOO.OOOOOO.O.O.OOOOOOOOOO  OOOOOOOOOOO..O..OO...O.OO.....O..O..OOOO  OO...O...OOO.OOOOO...O.....O..OO..OOOOOO  O |&lt;br /&gt;
|    OOOOO.OO.O...OOO..O..OO.OO.OOOO.O..OO.O.  OOOOOO...OOOO.O.OOOO..O.OO.OOO..O.O.O...  ..OOO.OO..O.OO....O.O..O.OOOOOOOOOOOO...    |&lt;br /&gt;
|  ().OO.OO...OOOOOOOO.OO...O.OOOO..OO....O..()O..OOOOOOOOOOO.O....OO..O..OOO..OO.O.O..()OO.....OOO...OO..OO.O.OOO.OO.OOOOOOOOOOO()  |&lt;br /&gt;
|    ........................................  ...............OO..OO..O.......O........  ...........O...O...O.O...O...O..........    |&lt;br /&gt;
| O  .O....OO.O.O....O.O.OOO..O.O.OO.O..OOO.O  ..O...........OOO.OOO.OOOOOOO.OOO.OOO.OO  OOOOOOOOOOOOOOOOOOOO.OOOOOOOOO..........  O |&lt;br /&gt;
|    O.OOOOOOO.O.OOOO.O.OOOOOO.O.OOOO.OO.OOO.  OOO..........OOOOOOOOOOOOOOOOOOOOOOOOOO.  OOOOOOOOOOOOOOOOOOOOOOOOOOOOOO..........    |&lt;br /&gt;
\------------------------------------------------------------------------------------------------------------------------------------/    &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:91--&amp;gt;&lt;br /&gt;
*CGF2Card int32&lt;br /&gt;
ha de estar a 0.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:92--&amp;gt;&lt;br /&gt;
*CGF2Type int32&lt;br /&gt;
Número de columnas útiles en el cartón.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:93--&amp;gt;&lt;br /&gt;
*CGF2Taille int32&lt;br /&gt;
Número de columnas totales que caben del cartón.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:94--&amp;gt;&lt;br /&gt;
*CGF2Numlines int32&lt;br /&gt;
numero de entradas de las que consta la especificación del cartón.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:95--&amp;gt;&lt;br /&gt;
*CGF2Script string(CGF2Numlines)&lt;br /&gt;
Especificación del cartón. Formateado igual que CGF1Script.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:96--&amp;gt;&lt;br /&gt;
*CGF2Descrip string(CGF2Numlines)&lt;br /&gt;
Descripción de cada entada del cartón.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:97--&amp;gt;&lt;br /&gt;
*CFBCard int32&lt;br /&gt;
ha de estar a 1.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:98--&amp;gt;&lt;br /&gt;
*CFBType int32&lt;br /&gt;
Número de columnas útiles en el cartón.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:99--&amp;gt;&lt;br /&gt;
*CFBTaille int32&lt;br /&gt;
Número de columnas totales que caben del cartón multiplicadas por 8.Ex:&lt;br /&gt;
si el cartón tiene 75 columnas CFBTaille=75*8=600&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:100--&amp;gt;&lt;br /&gt;
*CFBNumlines int32&lt;br /&gt;
numero de entradas de las que consta la especificación del cartón.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:101--&amp;gt;&lt;br /&gt;
*CFBScript string(CFBNumlines)&lt;br /&gt;
Especificación del cartón. Formateado igual que CGF1Script. Excepto que los tipos aceptados&lt;br /&gt;
son:&lt;br /&gt;
   LC: Laçage&lt;br /&gt;
   TC: Trou de centrage&lt;br /&gt;
   TS: Trou de centrage simple&lt;br /&gt;
   EL: Element vide&lt;br /&gt;
   FB: Fine barre&lt;br /&gt;
   VB: Value&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:102--&amp;gt;&lt;br /&gt;
Es decir el tipo &amp;quot;GF&amp;quot; no existe para este tag y en su lugar hay el tipo &amp;quot;FB&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:103--&amp;gt;&lt;br /&gt;
*CFBDescrip string(CFBNumlines)&lt;br /&gt;
Descripción de cada entada del cartón.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:104--&amp;gt;&lt;br /&gt;
*CFBNGaits int32&lt;br /&gt;
Número de entradas para mapear las repeticiones de agujas de Fine Barre a los cartones en función de la repetición.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:105--&amp;gt;&lt;br /&gt;
*CFBGaitNRepeat int32(CFBNGaits)&lt;br /&gt;
Número de repetición a mapear&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:106--&amp;gt;&lt;br /&gt;
*CFBGaitNBar int32(CFBNGaits)&lt;br /&gt;
Número de aguja a mapear&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:107--&amp;gt;&lt;br /&gt;
*CFBGaitNGait int32(CFBNGaits)&lt;br /&gt;
Indice de agujero en el cartón&lt;br /&gt;
&lt;br /&gt;
==== TAGS DRAFT DATA ==== &amp;lt;!--T:109--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:110--&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:111--&amp;gt;&lt;br /&gt;
*NumCourses int32&lt;br /&gt;
Numero de pasadas del dibujo sin tener en cuenta las repeticiones.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:112--&amp;gt;&lt;br /&gt;
*BarNeedle int16(NumCourses*NumBars)&lt;br /&gt;
Despazamientos medidos en agujas de las barras en cada pasada. Ordenados de la siguiente manera:&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;!--T:113--&amp;gt;&lt;br /&gt;
BarNeedle(0)              Desplazamiento barra 1 en la primera pasada.&lt;br /&gt;
   BarNeedle(1)              Desplazamiento barra 1 en la segunda pasada.&lt;br /&gt;
   .&lt;br /&gt;
   .&lt;br /&gt;
   BarNeedle(NumCourses-1)   Desplazamiento barra 1 en la última pasada.&lt;br /&gt;
   BarNeedle(NumCourses)     Desplazamiento barra 2 en la primera pasada.&lt;br /&gt;
   .&lt;br /&gt;
   .&lt;br /&gt;
   BarNeedel(NumCourses*2-1) Desplazamiento barra 2 en la última pasada.&lt;br /&gt;
   BarNeedle(NumCourses)     Desplazamiento barra 3 en la primera pasada.&lt;br /&gt;
   .&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:114--&amp;gt;&lt;br /&gt;
*BarNeedleB int16(NumCourses*NumBars)&lt;br /&gt;
Solo se utiliza en maquinas de doble frontura. Es equivalente a BarNeedle pero contiene la información&lt;br /&gt;
para la segunda frontura.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:115--&amp;gt;&lt;br /&gt;
*BarHalves byte(NumCourses*NumBars)&lt;br /&gt;
Incremento de 1/2 aguja en el movimiento de la barra introducido manualmente por el diseñador desde el menú de Bareme&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:116--&amp;gt;&lt;br /&gt;
*BarKnitting byte(NumCourses*NumBars)&lt;br /&gt;
Indica en las maquinas que hacen 2 movimientos por pasada que movimiento se realiza&lt;br /&gt;
Valores:&lt;br /&gt;
 0 : Movimiento 0 0 . No liga&lt;br /&gt;
 1 : Movimeinto 0 1 . Liga&lt;br /&gt;
 2 : Movimeinto 1 0 . Liga&lt;br /&gt;
 3 : Movimeinto 1 1 . No liga&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:117--&amp;gt;&lt;br /&gt;
*BarKnittingB byte(NumCourses*NumBars)&lt;br /&gt;
Solo se utiliza en maquinas de doble frontura. Es equivalente a BarKnitting pero contiene la información&lt;br /&gt;
para la segunda frontura.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:118--&amp;gt;&lt;br /&gt;
*Layout_JacqData byte(NumCourses*JacqNeedles*Jacquard)&lt;br /&gt;
Cada byte guarda un bit de Jacquard. Valores:&lt;br /&gt;
0: T&lt;br /&gt;
1: H&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:119--&amp;gt;&lt;br /&gt;
*Layout_FrontureData byte(NumCourses*JacqNeedles*Jacquard)&lt;br /&gt;
Solo se utiliza en maquinas de doble frontura. Es equivalente a Layout_JacqData pero contiene la información&lt;br /&gt;
para la segunda frontura.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:120--&amp;gt;&lt;br /&gt;
*Layout_WBData byte(NumCourses*JacqNeedles*Jacquard)&lt;br /&gt;
Solo se utiliza en maquinas CLIPTRONIC . Contiene los datos para la barra de Embrodery(WB) en el mismo formato que&lt;br /&gt;
Layout_JacqData.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:121--&amp;gt;&lt;br /&gt;
*LayoutCourNRepeats int32&lt;br /&gt;
Numero de repeticiones de pasadas. Las repeticiones de pasadas afectan por igual las barras de dibujo y el jacquard.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:122--&amp;gt;&lt;br /&gt;
*LayoutCourNLayouts int32&lt;br /&gt;
Numero de bloques de pasadas a repetir&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:123--&amp;gt;&lt;br /&gt;
*LayoutCourRepeat int32(LayoutCourNLayouts)&lt;br /&gt;
Numero de pasadas que contiene cada bloque a repetir&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:124--&amp;gt;&lt;br /&gt;
*LayoutCourWhich int32(LayoutCourNRepeats)&lt;br /&gt;
indice del bloque que a repetir&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:125--&amp;gt;&lt;br /&gt;
*LayoutCourTimes int32(LayoutCourNRepeats)&lt;br /&gt;
numero de veces que se ha de repetir el bloque. Ejemplo:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:126--&amp;gt;&lt;br /&gt;
Normalmente como los dibujos suelen ser bastante repetitivos, para ahorrar trabajo y memoria no se guardan todas las pasadas&lt;br /&gt;
del dibujo. En un dibujo como el siguiente :&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;!--T:127--&amp;gt;&lt;br /&gt;
+------------------------------------------------------------------------------------------+&lt;br /&gt;
    |  ,~.~._,~.~._,~.~._,~.~._,~.~._,~.~._,~.~.    ,~.~._,~.~._,~.~._,~.~._,~.~._,~.~._,~.~.  | &lt;br /&gt;
    | / O.O   O.O   O.O   O.O   O.O   O.O   O.O \  / O.O   O.O   O.O   O.O   O.O   O.O   O.O \ | &lt;br /&gt;
    |( O:@:O O:@:O O:@:O O:@:O O:@:O O:@:O O:@:O )( O:@:O O:@:O O:@:O O:@:O O:@:O O:@:O O:@:O )| &lt;br /&gt;
    | \ O&#039;O   O&#039;O   O&#039;O   O&#039;O   O&#039;O   O&#039;O   O&#039;O /  \ O&#039;O   O&#039;O   O&#039;O   O&#039;O   O&#039;O   O&#039;O   O&#039;O / | &lt;br /&gt;
    |  )   . ,   . ,   . ,   . ,   . ,   . ,   (    )   . ,   . ,   . ,   . ,   . ,   . ,   (  | &lt;br /&gt;
/\  | (  * -@- * -@- * -@- * -@- * -@- * -@- *  )  (  * -@- * -@- * -@- * -@- * -@- * -@- *  ) | &lt;br /&gt;
 A  |  )   &#039; `   &#039; `   &#039; `   &#039; `   &#039; `   &#039; `   (    )   &#039; `   &#039; `   &#039; `   &#039; `   &#039; `   &#039; `   (  | &lt;br /&gt;
 g  | / O.O   O.O   O.O   O.O   O.O   O.O   O.O \  / O.O   O.O   O.O   O.O   O.O   O.O   O.O \ | &lt;br /&gt;
 u  |( O:@:O O:@:O O:@:O O:@:O O:@:O O:@:O O:@:O )( O:@:O O:@:O O:@:O O:@:O O:@:O O:@:O O:@:O )| &lt;br /&gt;
 j  | \ O&#039;O   O&#039;O   O&#039;O   O&#039;O   O&#039;O   O&#039;O   O&#039;O /  \ O&#039;O   O&#039;O   O&#039;O   O&#039;O   O&#039;O   O&#039;O   O&#039;O / | &lt;br /&gt;
 a  |  ·~·~·^·~·~·^·~·~·^·~·~·^·~·~·^·~·~·^·~·~·    ·~·~·^·~·~·^·~·~·^·~·~·^·~·~·^·~·~·^·~·~·  | &lt;br /&gt;
 s  +------------------------------------------------------------------------------------------+&lt;br /&gt;
     Pasadas &amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:128--&amp;gt;&lt;br /&gt;
Si se mira lo que hay guardado en el archivo se encontraría algo similar a :&lt;br /&gt;
                     &lt;br /&gt;
    +---------------+&lt;br /&gt;
    |  ,~.~._,~.~.  |&lt;br /&gt;
    | / O.O   O.O \ |&lt;br /&gt;
    |( O:@:O O:@:O )|&lt;br /&gt;
    | \ O&#039;O   O&#039;O / |&lt;br /&gt;
    |  )   . ,   (  |&lt;br /&gt;
/\  | (  * -@- *  ) | &lt;br /&gt;
 A  |  )   &#039; `   (  |&lt;br /&gt;
 g  | / O.O   O.O \ |&lt;br /&gt;
 u  |( O:@:O O:@:O )|&lt;br /&gt;
 j  | \ O&#039;O   O&#039;O / |&lt;br /&gt;
 a  |  ·~·~·^·~·~·  |&lt;br /&gt;
 s  +---------------+&lt;br /&gt;
     Pasadas &amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:129--&amp;gt;&lt;br /&gt;
Esto pasa por que se ha guardado solo una vez cada bloque que se repite. En este caso los bloques que se han usado:&lt;br /&gt;
&lt;br /&gt;
     &amp;lt;!--T:130--&amp;gt;&lt;br /&gt;
A      B        C&lt;br /&gt;
  +----+ +------+ +-----+&lt;br /&gt;
  |  ,~| |.~._,~| |.~.  | &lt;br /&gt;
  | / O| |.O   O| |.O \ | &lt;br /&gt;
  |( O:| |@:O O:| |@:O )| &lt;br /&gt;
  | \ O| |&#039;O   O| |&#039;O / | &lt;br /&gt;
  |  ) | |  . , | |  (  | &lt;br /&gt;
  | (  | |* -@- | |*  ) |&lt;br /&gt;
  |  ) | |  &#039; ` | |  (  | &lt;br /&gt;
  | / O| |.O   O| |.O \ | &lt;br /&gt;
  |( O:| |@:O O:| |@:O )|&lt;br /&gt;
  | \ O| |&#039;O   O| |&#039;O / |  &lt;br /&gt;
  |  ·~| |·~·^·~| |·~·  | &lt;br /&gt;
  +----+ +------+ +-----+&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:131--&amp;gt;&lt;br /&gt;
Se puede ver con facilidad que la sequencia de bloques para obtener el dibujo es: A B B B B B B C A B B B B B B C&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:132--&amp;gt;&lt;br /&gt;
LayoutCourNLayouts=3 pues hay tres bloques distintos ( A , B , C )&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:133--&amp;gt;&lt;br /&gt;
LayoutCourRepeat=Array(&lt;br /&gt;
   numero de pasadas de A,&lt;br /&gt;
   numero de pasadas de B,&lt;br /&gt;
   numero de pasadas de C&lt;br /&gt;
)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:134--&amp;gt;&lt;br /&gt;
NOTA: El número total de pasadas ha de ser igual a la suma de pasadas de los bloques de repeticiones. Es decir:&lt;br /&gt;
NumCourses=LayoutCourRepeat(0)+...+LayoutCourRepeat(LayoutCourNLayouts-1)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:135--&amp;gt;&lt;br /&gt;
Luego para codificar que se desea 1 repetición de A, 6 repeticiones de B y una repeticion de C se haria de la siguiente manera:&lt;br /&gt;
&lt;br /&gt;
                         &amp;lt;!--T:136--&amp;gt;&lt;br /&gt;
idx  |  LayoutCourWhich | LayoutCourTimes | Significado&lt;br /&gt;
                      --------+------------------+-----------------+------------------&lt;br /&gt;
                        _     |                  |                 |&lt;br /&gt;
                       /  0   |         1        |       1         | Bloque 1 (A) repetir una vez&lt;br /&gt;
                       |      |                  |                 |&lt;br /&gt;
                       |  1   |         2        |       6         | Bloque 2 (B) repetir 6 veces&lt;br /&gt;
                       |      |                  |                 |&lt;br /&gt;
                       |  2   |         3        |       1         | Bloque 3 (C) repetir una vez&lt;br /&gt;
LayoutCourNRepeats=6  &amp;lt;       |                  |                 |&lt;br /&gt;
                       |  3   |         1        |       1         | Bloque 1 (A) repetir una vez&lt;br /&gt;
                       |      |                  |                 |&lt;br /&gt;
                       |  4   |         2        |       6         | Bloque 2 (B) repetir 6 veces&lt;br /&gt;
                       |      |                  |                 |&lt;br /&gt;
                       \_ 5   |         3        |       1         | Bloque 3 (C) repetir una vez&lt;br /&gt;
                              |                  |                 |&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:137--&amp;gt;&lt;br /&gt;
*LayoutJacqNRepeats int32&lt;br /&gt;
Numero de repeticiones de agujas. Solo afecta el jacquard. Sigue el mismo sistema que las repeticiones de pasadas.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:138--&amp;gt;&lt;br /&gt;
*LayoutJacqNLayouts int32&lt;br /&gt;
Numero de bloques de agujas a repetir&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:139--&amp;gt;&lt;br /&gt;
*LayoutJacqRepeat int32(LayoutJacqNLayouts)&lt;br /&gt;
Numero de agujas que contiene cada bloque a repetir&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:140--&amp;gt;&lt;br /&gt;
*LayoutJacqWhich int32(LayoutJacqNRepeats)&lt;br /&gt;
indice del bloque que a repetir&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:141--&amp;gt;&lt;br /&gt;
*LayoutJacqTimes int32(LayoutJacqNRepeats)&lt;br /&gt;
numero de veces que se ha de repetir el bloque.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:142--&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;/div&gt;</summary>
		<author><name>Pascual</name></author>
	</entry>
	<entry>
		<id>https://wiki.cadt.com/index.php?title=Drf-reader&amp;diff=2981</id>
		<title>Drf-reader</title>
		<link rel="alternate" type="text/html" href="https://wiki.cadt.com/index.php?title=Drf-reader&amp;diff=2981"/>
		<updated>2016-10-05T09:44:49Z</updated>

		<summary type="html">&lt;p&gt;Pascual: /* TAGS MACHINE INFO */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:SAPO]]&lt;br /&gt;
[[Category:Devel]]&lt;br /&gt;
&lt;br /&gt;
=== DLL_EXPORTS ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
void drf_clear_errors()&lt;br /&gt;
Descr:Borra todos los mensajes de error del almacenamiento interno de la librería dinámica.&lt;br /&gt;
&lt;br /&gt;
int drf_get_num_errors();&lt;br /&gt;
Descr:Obtiene el número de mensajes de error almacenados por la librería dinámica.&lt;br /&gt;
Return:número de mensajes almacenados.&lt;br /&gt;
&lt;br /&gt;
const char* drf_get_error(int idx)&lt;br /&gt;
Descr:Obtiene el mensaje de error indicado por idx (referenciado a 0).&lt;br /&gt;
p:idx: Número de mensaje a obtener. Rango entre: 0 y (drf_get_num_errors()-1) ambos incluidos.&lt;br /&gt;
Return: Éxito: Puntero a una cadena de caracteres ASCII terminada por el byte NUL (&#039;\0&#039;)&lt;br /&gt;
        Error: NULL en caso que el valor de idx esté fuera de rango.&lt;br /&gt;
&lt;br /&gt;
int drf_to_json(char *path,FILE *json,int options)&lt;br /&gt;
Descr:Serializa a JSON un archivo DRF.&lt;br /&gt;
p:path: Ruta al fichero DRF a serializar en formato Windows ANSI.&lt;br /&gt;
p:json: puntero FILE ya abierto y con la escritura habilitada.&lt;br /&gt;
p:options: Selecciona que información se serializará. Valores possibles:&lt;br /&gt;
   DRF_GET_GENERIC_INFO&lt;br /&gt;
   DRF_GET_MACHINE_INFO&lt;br /&gt;
   DRF_GET_DRAFT_INFO&lt;br /&gt;
   DRF_GET_ALL_INFO&lt;br /&gt;
o una combinación de los valores anteriores via or bit a bit&lt;br /&gt;
&lt;br /&gt;
Return: Éxito : retorna valor igual a 0&lt;br /&gt;
        Error : retorna valor diferente de 0&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== TAGS ===&lt;br /&gt;
&lt;br /&gt;
Codificación a JSON de los datos:&lt;br /&gt;
&lt;br /&gt;
Internamente el DRF guarda la información como una lista de tags. Cada tag puede contener uno o varios elementos del mismo tipo.&lt;br /&gt;
&lt;br /&gt;
Al codificar un DRF a JSON se codifica como un objeto donde se usa el nombre del tag como clave y el contenido de éste como valor.&lt;br /&gt;
En caso que el tag pueda contener más de un valor, la librería serializa el contenido como un vector.&lt;br /&gt;
&lt;br /&gt;
Como el formato DRF soporta más tipos que el JSON, la librería los convertirá a un tipo soportado por el JSON. La siguiente tabla muestra a que &lt;br /&gt;
tipo del JSON se convierte cada tipo del DRF &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    DRF  | JSON   &lt;br /&gt;
  -------+--------&lt;br /&gt;
  byte   | &lt;br /&gt;
  int16  | int&lt;br /&gt;
  int32  |&lt;br /&gt;
  -------+-------&lt;br /&gt;
  float  | float&lt;br /&gt;
  -------+-------&lt;br /&gt;
  string | string*&lt;br /&gt;
&lt;br /&gt;
*) Todos los strings contienen solo caracteres ASCII (encoding:ASCII-7)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== TAGS GENERIC INFO ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Software string&lt;br /&gt;
Nombre del programa que ha generado el fichero .DRF&lt;br /&gt;
&lt;br /&gt;
*DrawName string&lt;br /&gt;
Referencia del dibujo (max. 256 carac).&lt;br /&gt;
&lt;br /&gt;
*Company string&lt;br /&gt;
Compañía que ha creado el dibujo (max. 30 carac).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== TAGS MACHINE INFO ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Machine string&lt;br /&gt;
Referencia de la máquina. (max. 30 carac) &lt;br /&gt;
&lt;br /&gt;
*MachineType string&lt;br /&gt;
Modelo de la máquina. Sólo es válido un modelo definido en el sistema de diseño. (p.e. LEAVERS)&lt;br /&gt;
&lt;br /&gt;
*Description string&lt;br /&gt;
Descripción o información adicional de la máquina.&lt;br /&gt;
&lt;br /&gt;
*Serial string&lt;br /&gt;
Num. serie de la máquina. (max. 30 carac) . Puede contener carácteres no numéricos.&lt;br /&gt;
&lt;br /&gt;
*Version int32 [RASCHEL SU]&lt;br /&gt;
Versión de la máquina raschel SU (versión 1 .. 4).&lt;br /&gt;
   versión 1 . Sin ahorrador de memoria&lt;br /&gt;
   versión 2 . Con ahorrador de memoria (repeticiones)&lt;br /&gt;
   versión 3 . Sin ahorrador de memoria + información empresa.&lt;br /&gt;
   versión 4 . Con ahorrador de memoria (repeciciones) + información empresa.&lt;br /&gt;
&lt;br /&gt;
*Jacquard int32&lt;br /&gt;
Número de barras de Jacquard independientes. Valores posibles: &lt;br /&gt;
   0 : No jacquard&lt;br /&gt;
   1 : 1 jacquard o fina barra simple&lt;br /&gt;
   2 : 2 jacquard raschel o fina barra doble.&lt;br /&gt;
&lt;br /&gt;
*Fronture int32 [RASCHEL DOUBLE NEEDLE BAR]&lt;br /&gt;
Número de fonturas de la máquina&lt;br /&gt;
   1 : 1 fontura&lt;br /&gt;
   2 : 2 fontures (delante / detrás)&lt;br /&gt;
&lt;br /&gt;
*BarsRepeat int32&lt;br /&gt;
Altura del diseño.&lt;br /&gt;
&lt;br /&gt;
*NumRepeats int32&lt;br /&gt;
Num de repeticiones en el diseño.&lt;br /&gt;
&lt;br /&gt;
*NumBars int32&lt;br /&gt;
Numero de barras que tiene el telar.&lt;br /&gt;
&lt;br /&gt;
*Plate int32&lt;br /&gt;
En máquinas raschel (textronic), indica la posición de la plancha.&lt;br /&gt;
En máquinas leavers indica donde empiezan los brodeurs.&lt;br /&gt;
&lt;br /&gt;
*JacqNeedles int32&lt;br /&gt;
Numero de agujas de Jacquard del telar.&lt;br /&gt;
&lt;br /&gt;
*MachNeedles int32&lt;br /&gt;
Numero total de agujas del telar.&lt;br /&gt;
&lt;br /&gt;
*BarsOffset int32&lt;br /&gt;
Desplazamiento de barras (orillos=zona perdida)&lt;br /&gt;
&lt;br /&gt;
*JacqOffset int32&lt;br /&gt;
Deplazamiento de las agujas de jacquard en el telar.&lt;br /&gt;
&lt;br /&gt;
*MaxDisp int32 [RASCHEL SU]&lt;br /&gt;
Deplazamiento máximo general de las barras para máquinas raschel SU.&lt;br /&gt;
&lt;br /&gt;
*Proximity int32&lt;br /&gt;
Para máquinas raschel, distáncia máxima a la que se pueden acercar dos barras del mismo grupo.&lt;br /&gt;
&lt;br /&gt;
*ProximityCollindant int32&lt;br /&gt;
Para máquinas raschel, distáncia máxima a la que se pueden acercar dos barras del mismo grupo colindantes.&lt;br /&gt;
&lt;br /&gt;
*JacqRt int32&lt;br /&gt;
Deplazamiento Rt del jacquard:&lt;br /&gt;
&lt;br /&gt;
para máquinas raschel:&lt;br /&gt;
   no jacquard: rt = 0&lt;br /&gt;
   jacquard simple o doble: rt = 1&lt;br /&gt;
Indica cuántas agujas se desplaza la lectura del jacaquard en las pasadas alternadas.&lt;br /&gt;
&lt;br /&gt;
para máquinas leavers&lt;br /&gt;
   no fina barra:      0&lt;br /&gt;
   fina barra simple: -1&lt;br /&gt;
   fina barra doble:   0&lt;br /&gt;
Indica cuántas agujas se desplaza la lectura del jacquard (desde la posición derecha de la máquina en las pasadas alternadas).&lt;br /&gt;
&lt;br /&gt;
*JacqRtCourse int32&lt;br /&gt;
Indica que pasadas se aplica el valor JacqRt.&lt;br /&gt;
   0:pasadas pares&lt;br /&gt;
   1: pasadas impares&lt;br /&gt;
&lt;br /&gt;
*FinalGauge float&lt;br /&gt;
Galga de producto tejido aplicando encongimiento (medida en agujas/pulgada)&lt;br /&gt;
&lt;br /&gt;
*FinalQuality float&lt;br /&gt;
Calidad de producto tejido aplicando elasticidad (medida en pasadas/centímetro).&lt;br /&gt;
&lt;br /&gt;
*RealGauge float&lt;br /&gt;
Galga de máquina (medida en agujas/pulgada)-&lt;br /&gt;
&lt;br /&gt;
*RealQuality float&lt;br /&gt;
Calidad de máquina (medida en pasadas/centímetro).&lt;br /&gt;
&lt;br /&gt;
*Shrinkage float&lt;br /&gt;
Porcentage de encongimiento en agujas (0-100%)&lt;br /&gt;
&lt;br /&gt;
*Elasticity float&lt;br /&gt;
Porcentage de elasticidad en pasadas (0-100%)&lt;br /&gt;
&lt;br /&gt;
*BarNumBar int32(NumBars)&lt;br /&gt;
Numero de cada una de las barras del telar (valor numérico consecutivo)&lt;br /&gt;
&lt;br /&gt;
*BarName string(NumBars)&lt;br /&gt;
Nombre o identificador de cada una de las barras del telar&lt;br /&gt;
&lt;br /&gt;
*BarGroup int32(NumBars)&lt;br /&gt;
En máquinas raschel el número de grupo de la barra.&lt;br /&gt;
&lt;br /&gt;
*BarStop int32(NumBars)&lt;br /&gt;
Posición 0 de la barra.&lt;br /&gt;
&lt;br /&gt;
*BarUtil int32(NumBars)&lt;br /&gt;
Visibilidad de la barra en el sistema de diseño.&lt;br /&gt;
&lt;br /&gt;
*BarType int32(NumBars)&lt;br /&gt;
Tipo de hilo por defecto de la barra.&lt;br /&gt;
&lt;br /&gt;
*BarMaxGimp int32&lt;br /&gt;
Guimpada máxima en agujas de la barra.&lt;br /&gt;
&lt;br /&gt;
*BarDrive int32&lt;br /&gt;
En máquinas raschel SU, el número de getribe de la barra.&lt;br /&gt;
&lt;br /&gt;
*BarFactor int32&lt;br /&gt;
En máquinas raschel SU, multiplicador de la barra.&lt;br /&gt;
1: factor de 1 agulla&lt;br /&gt;
2: factor de 2 agulles,&lt;br /&gt;
4: factor de 4 agulles.&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*BarInvert int32&lt;br /&gt;
En máquinas raschel SU, les barres invertides. &lt;br /&gt;
1: barra invertida.&lt;br /&gt;
0: barra no invertida.&lt;br /&gt;
&lt;br /&gt;
*BarWork int32&lt;br /&gt;
Trabajo de la barra en el sistema de diseño.&lt;br /&gt;
&lt;br /&gt;
   0: Chainette&lt;br /&gt;
   1: Jacquard     [1]&lt;br /&gt;
   2: Brodeur&lt;br /&gt;
   3: Gros&lt;br /&gt;
   4: Fin&lt;br /&gt;
   5: Brillant&lt;br /&gt;
   6: Picot&lt;br /&gt;
   7: Corde&lt;br /&gt;
   8: Lycra&lt;br /&gt;
   9: Fond&lt;br /&gt;
  10: Bloc&lt;br /&gt;
  11: Cord&lt;br /&gt;
  12: Guimp&lt;br /&gt;
  13: Nul&lt;br /&gt;
  14: Jacq 0/2,6/4 [1]&lt;br /&gt;
  15: Jacq 0/2,8/6 [1]&lt;br /&gt;
  16: Fine Bar.  [sup]&lt;br /&gt;
  17: Braquette&amp;quot;&lt;br /&gt;
  18: Jacquard     [2]&lt;br /&gt;
  19: Jacq 0/2,6/4 [2]&lt;br /&gt;
  20: Jacq 0/2,8/6 [2]&lt;br /&gt;
  21: Fine Bar.  [inf]&lt;br /&gt;
  22: Jacquard&lt;br /&gt;
  23: Fine Barre&lt;br /&gt;
  24: Fallplate&lt;br /&gt;
  25: Embrodery&lt;br /&gt;
  26: EFS&lt;br /&gt;
  27: Reservé 1&lt;br /&gt;
  28: Reservé 2&lt;br /&gt;
  29: Jacq 0/2,6/4&lt;br /&gt;
  30: Jacq 0/2,8/6&lt;br /&gt;
  31: Bord&lt;br /&gt;
  32: Lisieres&lt;br /&gt;
  33: Romaines&lt;br /&gt;
  34: Sonnette&lt;br /&gt;
  35: Guimp devant&lt;br /&gt;
  36: Petite Corde&lt;br /&gt;
  37: Fileur&lt;br /&gt;
  38: Separation&lt;br /&gt;
  39: Corde Termo&lt;br /&gt;
  40: Solv rom&lt;br /&gt;
  41: Vis&lt;br /&gt;
  42: Jacquard     [3]&lt;br /&gt;
  43: Jacquard     [4]&lt;br /&gt;
  44: Space Fabric&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*BarKnit&lt;br /&gt;
En máquines raschel textronic tipous de lligada:&lt;br /&gt;
  0 : no planxa&lt;br /&gt;
  1 : lligada 1 (mecanica)&lt;br /&gt;
  2 : lligada 2 (binaria)&lt;br /&gt;
  3 : lligada 3 (mecánica (2))&lt;br /&gt;
  4 : lligada 4 (binària (2))&lt;br /&gt;
&lt;br /&gt;
*BarTimes&lt;br /&gt;
En máquines raschel textonic temps de la lligada&lt;br /&gt;
  0 : no planxa&lt;br /&gt;
  2 : temps 2 (p.e) 0202 0202 0202&lt;br /&gt;
  4 : temps 4 (p.e) 0220 0220 0220&lt;br /&gt;
&lt;br /&gt;
*BarMode&lt;br /&gt;
En máquines raschel textronic el mode la la barra:&lt;br /&gt;
  0 : mode A (p.e 0220)&lt;br /&gt;
  1 : mode B (p.e 2002)&lt;br /&gt;
&lt;br /&gt;
*BarModif int32&lt;br /&gt;
En máquines raschel textronic indica que la barra no es pot deslligar&lt;br /&gt;
  0 : no es pot deslligar&lt;br /&gt;
  1 : si es pot deslligar&lt;br /&gt;
&lt;br /&gt;
*BarTension int32&lt;br /&gt;
Tensió de la barra a les simulacions.&lt;br /&gt;
&lt;br /&gt;
*BarNumFingers int32(NumBars)&lt;br /&gt;
Número de pasadors de la barra&lt;br /&gt;
&lt;br /&gt;
*BarModeDrop int32(NumBars)&lt;br /&gt;
Ponderación de cada uno de los 7 bits que se usan para indicar el desplazamiento de la barra. Valores:&lt;br /&gt;
&lt;br /&gt;
 Valor | B7 | B6 | B5 | B4 | B3 | B2 | B1&lt;br /&gt;
 ------+----+----+----+----+----+----+----&lt;br /&gt;
    0  |  8 |  8 |  8 |  4 |  2 |  1 |1/2&lt;br /&gt;
 ------+----+----+----+----+----+----+----&lt;br /&gt;
    1  | 16 |  8 |  8 |  4 |  2 |  1 |1/2&lt;br /&gt;
 ------+----+----+----+----+----+----+----&lt;br /&gt;
    2  | 16 | 16 |  8 |  4 |  2 |  1 |1/2&lt;br /&gt;
 ------+----+----+----+----+----+----+----&lt;br /&gt;
    3  | 32 | 16 |  8 |  4 |  2 |  1 |1/2&lt;br /&gt;
 ------+----+----+----+----+----+----+----&lt;br /&gt;
    4  |  8 |  8 |  8 |  8 |  4 |  2 | 1&lt;br /&gt;
 ------+----+----+----+----+----+----+----&lt;br /&gt;
    5  | 16 |  8 |  8 |  8 |  4 |  2 | 1&lt;br /&gt;
 ------+----+----+----+----+----+----+----&lt;br /&gt;
    6  |  4 |  4 |  4 |  4 |  2 |  1 | 1&lt;br /&gt;
 ------+----+----+----+----+----+----+----&lt;br /&gt;
    7  |  0 |  0 |  0 |  1 |  2 |  1 |1/2&lt;br /&gt;
 ------+----+----+----+----+----+----+----&lt;br /&gt;
    8  |  4 |  4 |  4 |  4 |  2 |  1 |1/2&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*BarMaxDesp int32(NumBars)&lt;br /&gt;
Desplazamiento máximo de la barra en agujas&lt;br /&gt;
&lt;br /&gt;
*BarActive byte(NumBars)&lt;br /&gt;
Sólo para maquinas EL. Indica si la barra esta en uso o no.&lt;br /&gt;
&lt;br /&gt;
*BarHalvesUp byte(NumBars)&lt;br /&gt;
Si en la pasada se incrementa la posición de la barra en BarHalvesUp agujas o más, entonces , se añade media aguja a la posición final.&lt;br /&gt;
&lt;br /&gt;
*BarHalvesDn byte(NumBars)&lt;br /&gt;
Si en la pasada se decrementa la posición de la barra en BarHalvesDwn agujas o más, entonces , se le resta media aguja a la posición final.&lt;br /&gt;
&lt;br /&gt;
*BarString int32(NumBars)&lt;br /&gt;
Valors:&lt;br /&gt;
0:&lt;br /&gt;
1:ple&lt;br /&gt;
2:1f 1x&lt;br /&gt;
3:1x 1f&lt;br /&gt;
4:buit&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*BarFronture int32(NumBars)&lt;br /&gt;
Solo se usa en las máquinas de doble frontura. Da la frontura en la que empieza a trabajar la barra.Valores:&lt;br /&gt;
0: primera forntura&lt;br /&gt;
1: segunda frontura&lt;br /&gt;
&lt;br /&gt;
*BarDropsUtil int32(7*NumBars)&lt;br /&gt;
indica como se deben perforar los 7 posiciones correspondientes a la barra:&lt;br /&gt;
&lt;br /&gt;
Valor:&lt;br /&gt;
0: Usado. Siempre a 1. Es decir: no perforar nunca&lt;br /&gt;
1: Usado, Se perforara o no en funcion del desplazamiento de la barra&lt;br /&gt;
2: Usado. Siemre a 0. Es decir, se perfora siempre&lt;br /&gt;
3: No usado. No se perfora&lt;br /&gt;
&lt;br /&gt;
*FingerStop int32(num_fingers) num_fingers=BarNumFingers(0) + ... + BarNumFingers(NumBars-1)&lt;br /&gt;
Stop del pasador relativo al stop de la barra.&lt;br /&gt;
&lt;br /&gt;
*FingerType int32(num_fingers) num_fingers=BarNumFingers(0) + ... + BarNumFingers(NumBars-1)&lt;br /&gt;
Tipo de pasador.&lt;br /&gt;
&lt;br /&gt;
*CGF1Card int32&lt;br /&gt;
ha de estar a 0.&lt;br /&gt;
&lt;br /&gt;
*CGF1Type int32&lt;br /&gt;
Número de columnas útiles en el cartón.&lt;br /&gt;
&lt;br /&gt;
*CGF1Taille int32&lt;br /&gt;
Número de columnas totales que caben del cartón.&lt;br /&gt;
&lt;br /&gt;
*CGF1Numlines int32&lt;br /&gt;
numero de entradas de las que consta la especificación del cartón.&lt;br /&gt;
&lt;br /&gt;
*CGF1Script string(CGF1Numlines)&lt;br /&gt;
Lista de cadenas de caracteres que detallan como se ha de perforar  cada columna del cartón empezando por la columna de mas a la derecha.&lt;br /&gt;
Cada cadena de caracteres tiene el formato: &amp;lt;codigo de tipo&amp;gt; &amp;lt;espacio&amp;gt; &amp;lt;numero de repeticiones&amp;gt;. Ex: &amp;quot;LC 1&amp;quot;.&lt;br /&gt;
Los codigos de tipo validos son:&lt;br /&gt;
   LC: Laçage&lt;br /&gt;
   TC: Trou de centrage&lt;br /&gt;
   TS: Trou de centrage simple&lt;br /&gt;
   EL: Element vide&lt;br /&gt;
   GF: Gros fil&lt;br /&gt;
   VB: Value&lt;br /&gt;
&lt;br /&gt;
*CGF1Descrip string(CGF1Numlines)&lt;br /&gt;
Descripción de cada entada del cartón.&lt;br /&gt;
&lt;br /&gt;
Ex:&lt;br /&gt;
&lt;br /&gt;
  CGF1Script | CGF1Descrip&lt;br /&gt;
 ------------+--------------&lt;br /&gt;
   &amp;quot;LC 1&amp;quot;    |  &amp;quot;Laçage&amp;quot;&lt;br /&gt;
   &amp;quot;TC 1&amp;quot;    |  &amp;quot;Trou de centrage&amp;quot;&lt;br /&gt;
   &amp;quot;GF 6&amp;quot;    |  &amp;quot;braquettes&amp;quot;  &lt;br /&gt;
   &amp;quot;GF 4&amp;quot;    |  &amp;quot;stum&amp;quot;                                                                                                      &lt;br /&gt;
   &amp;quot;GF 30&amp;quot;   |  &amp;quot;guimpes&amp;quot;                                                                                                    &lt;br /&gt;
   &amp;quot;TC 1&amp;quot;    |  &amp;quot;Trou de centrage&amp;quot;                                                                                            &lt;br /&gt;
   &amp;quot;LC 1&amp;quot;    |  &amp;quot;Laçage&amp;quot;                                                                                                       &lt;br /&gt;
   &amp;quot;GF 26&amp;quot;   |  &amp;quot;guimpes&amp;quot;                                                                                                &lt;br /&gt;
   &amp;quot;GF 4&amp;quot;    |  &amp;quot;stum&amp;quot;                                                                                                   &lt;br /&gt;
   &amp;quot;GF 6&amp;quot;    |  &amp;quot;braquettes&amp;quot;                                                                                               &lt;br /&gt;
   &amp;quot;GF 3&amp;quot;    |  &amp;quot;brodeus&amp;quot;                                                                                                  &lt;br /&gt;
   &amp;quot;TC 1&amp;quot;    |  &amp;quot;Trou de centrage&amp;quot;                                                                                         &lt;br /&gt;
   &amp;quot;LC 1&amp;quot;    |  &amp;quot;Laçage&amp;quot;                                                                                                      &lt;br /&gt;
   &amp;quot;GF 39&amp;quot;   |  &amp;quot;brodeus&amp;quot;                                                                                                 &lt;br /&gt;
   &amp;quot;TC 1&amp;quot;    |  &amp;quot;Trou de centrage&amp;quot;                                                                                           &lt;br /&gt;
   &amp;quot;LC 1&amp;quot;    |  &amp;quot;Laçage&amp;quot;                                                                                                    &lt;br /&gt;
                                                                                                                           &lt;br /&gt;
                                                                                                                          &lt;br /&gt;
  L T                GF39                   L T G   GF6  GF4          GF26            L T               GF30           GF4  GF6  T L&lt;br /&gt;
  C C _____________________________________ C C F  ____  __  ________________________ C C ____________________________  __  ____ C C&lt;br /&gt;
  1 1/                                     \1 1/3\/    \/  \/                        \1 1/                            \/  \/    \1 1&lt;br /&gt;
/------------------------------------------------------------------------------------------------------------------------------------\&lt;br /&gt;
|    OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO.  OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO.  OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO    |&lt;br /&gt;
| O  .O.O.O.OOOOOOO.OOO.OOOOOO.O.O.OOOOOOOOOO  OOOOOOOOOOO..O..OO...O.OO.....O..O..OOOO  OO...O...OOO.OOOOO...O.....O..OO..OOOOOO  O |&lt;br /&gt;
|    OOOOO.OO.O...OOO..O..OO.OO.OOOO.O..OO.O.  OOOOOO...OOOO.O.OOOO..O.OO.OOO..O.O.O...  ..OOO.OO..O.OO....O.O..O.OOOOOOOOOOOO...    |&lt;br /&gt;
|  ().OO.OO...OOOOOOOO.OO...O.OOOO..OO....O..()O..OOOOOOOOOOO.O....OO..O..OOO..OO.O.O..()OO.....OOO...OO..OO.O.OOO.OO.OOOOOOOOOOO()  |&lt;br /&gt;
|    ........................................  ...............OO..OO..O.......O........  ...........O...O...O.O...O...O..........    |&lt;br /&gt;
| O  .O....OO.O.O....O.O.OOO..O.O.OO.O..OOO.O  ..O...........OOO.OOO.OOOOOOO.OOO.OOO.OO  OOOOOOOOOOOOOOOOOOOO.OOOOOOOOO..........  O |&lt;br /&gt;
|    O.OOOOOOO.O.OOOO.O.OOOOOO.O.OOOO.OO.OOO.  OOO..........OOOOOOOOOOOOOOOOOOOOOOOOOO.  OOOOOOOOOOOOOOOOOOOOOOOOOOOOOO..........    |&lt;br /&gt;
\------------------------------------------------------------------------------------------------------------------------------------/    &lt;br /&gt;
&lt;br /&gt;
*CGF2Card int32&lt;br /&gt;
ha de estar a 0.&lt;br /&gt;
&lt;br /&gt;
*CGF2Type int32&lt;br /&gt;
Número de columnas útiles en el cartón.&lt;br /&gt;
&lt;br /&gt;
*CGF2Taille int32&lt;br /&gt;
Número de columnas totales que caben del cartón.&lt;br /&gt;
&lt;br /&gt;
*CGF2Numlines int32&lt;br /&gt;
numero de entradas de las que consta la especificación del cartón.&lt;br /&gt;
&lt;br /&gt;
*CGF2Script string(CGF2Numlines)&lt;br /&gt;
Especificación del cartón. Formateado igual que CGF1Script.&lt;br /&gt;
&lt;br /&gt;
*CGF2Descrip string(CGF2Numlines)&lt;br /&gt;
Descripción de cada entada del cartón.&lt;br /&gt;
&lt;br /&gt;
*CFBCard int32&lt;br /&gt;
ha de estar a 1.&lt;br /&gt;
&lt;br /&gt;
*CFBType int32&lt;br /&gt;
Número de columnas útiles en el cartón.&lt;br /&gt;
&lt;br /&gt;
*CFBTaille int32&lt;br /&gt;
Número de columnas totales que caben del cartón multiplicadas por 8.Ex:&lt;br /&gt;
si el cartón tiene 75 columnas CFBTaille=75*8=600&lt;br /&gt;
&lt;br /&gt;
*CFBNumlines int32&lt;br /&gt;
numero de entradas de las que consta la especificación del cartón.&lt;br /&gt;
&lt;br /&gt;
*CFBScript string(CFBNumlines)&lt;br /&gt;
Especificación del cartón. Formateado igual que CGF1Script. Excepto que los tipos aceptados&lt;br /&gt;
son:&lt;br /&gt;
   LC: Laçage&lt;br /&gt;
   TC: Trou de centrage&lt;br /&gt;
   TS: Trou de centrage simple&lt;br /&gt;
   EL: Element vide&lt;br /&gt;
   FB: Fine barre&lt;br /&gt;
   VB: Value&lt;br /&gt;
&lt;br /&gt;
Es decir el tipo &amp;quot;GF&amp;quot; no existe para este tag y en su lugar hay el tipo &amp;quot;FB&amp;quot;&lt;br /&gt;
&lt;br /&gt;
*CFBDescrip string(CFBNumlines)&lt;br /&gt;
Descripción de cada entada del cartón.&lt;br /&gt;
&lt;br /&gt;
*CFBNGaits int32&lt;br /&gt;
Número de entradas para mapear las repeticiones de agujas de Fine Barre a los cartones en función de la repetición.&lt;br /&gt;
&lt;br /&gt;
*CFBGaitNRepeat int32(CFBNGaits)&lt;br /&gt;
Número de repetición a mapear&lt;br /&gt;
&lt;br /&gt;
*CFBGaitNBar int32(CFBNGaits)&lt;br /&gt;
Número de aguja a mapear&lt;br /&gt;
&lt;br /&gt;
*CFBGaitNGait int32(CFBNGaits)&lt;br /&gt;
Indice de agujero en el cartón&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== TAGS DRAFT DATA ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*NumCourses int32&lt;br /&gt;
Numero de pasadas del dibujo sin tener en cuenta las repeticiones.&lt;br /&gt;
&lt;br /&gt;
*BarNeedle int16(NumCourses*NumBars)&lt;br /&gt;
Despazamientos medidos en agujas de las barras en cada pasada. Ordenados de la siguiente manera:&lt;br /&gt;
&lt;br /&gt;
   BarNeedle(0)              Desplazamiento barra 1 en la primera pasada.&lt;br /&gt;
   BarNeedle(1)              Desplazamiento barra 1 en la segunda pasada.&lt;br /&gt;
   .&lt;br /&gt;
   .&lt;br /&gt;
   BarNeedle(NumCourses-1)   Desplazamiento barra 1 en la última pasada.&lt;br /&gt;
   BarNeedle(NumCourses)     Desplazamiento barra 2 en la primera pasada.&lt;br /&gt;
   .&lt;br /&gt;
   .&lt;br /&gt;
   BarNeedel(NumCourses*2-1) Desplazamiento barra 2 en la última pasada.&lt;br /&gt;
   BarNeedle(NumCourses)     Desplazamiento barra 3 en la primera pasada.&lt;br /&gt;
   .&lt;br /&gt;
&lt;br /&gt;
*BarNeedleB int16(NumCourses*NumBars)&lt;br /&gt;
Solo se utiliza en maquinas de doble frontura. Es equivalente a BarNeedle pero contiene la información&lt;br /&gt;
para la segunda frontura.&lt;br /&gt;
&lt;br /&gt;
*BarHalves byte(NumCourses*NumBars)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*BarKnitting byte(NumCourses*NumBars)&lt;br /&gt;
Valores:&lt;br /&gt;
 0 :&lt;br /&gt;
 1 :&lt;br /&gt;
 2 :&lt;br /&gt;
 3 :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*BarKnittingB byte(NumCourses*NumBars)&lt;br /&gt;
Solo se utiliza en maquinas de doble frontura. Es equivalente a BarKnitting pero contiene la información&lt;br /&gt;
para la segunda frontura.&lt;br /&gt;
&lt;br /&gt;
*Layout_JacqData byte(NumCourses*JacqNeedles*Jacquard)&lt;br /&gt;
Bits de Jacquard.Valores:&lt;br /&gt;
0: T&lt;br /&gt;
1: H&lt;br /&gt;
&lt;br /&gt;
*Layout_FrontureData byte(NumCourses*JacqNeedles*Jacquard)&lt;br /&gt;
Solo se utiliza en maquinas de doble frontura. Es equivalente a Layout_JacqData pero contiene la información&lt;br /&gt;
para la segunda frontura.&lt;br /&gt;
&lt;br /&gt;
*Layout_WBData byte(NumCourses*JacqNeedles*Jacquard)&lt;br /&gt;
Solo se utiliza en maquinas CLIPTRONIC . Contiene los datos para la barra de Embrodery(WB) en el mismo formato que&lt;br /&gt;
Layout_JacqData.&lt;br /&gt;
&lt;br /&gt;
*LayoutCourNRepeats int32&lt;br /&gt;
Numero de repeticiones de pasadas. Las repeticiones de pasadas afectan por igual las barras de dibujo y el jacquard.&lt;br /&gt;
&lt;br /&gt;
*LayoutCourNLayouts int32&lt;br /&gt;
Numero de bloques de pasadas a repetir&lt;br /&gt;
&lt;br /&gt;
*LayoutCourRepeat int32(LayoutCourNLayouts)&lt;br /&gt;
Numero de pasadas que contiene cada bloque a repetir&lt;br /&gt;
&lt;br /&gt;
*LayoutCourWhich int32(LayoutCourNRepeats)&lt;br /&gt;
indice del bloque que a repetir&lt;br /&gt;
&lt;br /&gt;
*LayoutCourTimes int32(LayoutCourNRepeats)&lt;br /&gt;
numero de veces que se ha de repetir el bloque. Ejemplo:&lt;br /&gt;
&lt;br /&gt;
Normalmente como los dibujos suelen ser bastante repetitivos, para ahorrar trabajo y memoria no se guardan todas las pasadas&lt;br /&gt;
del dibujo. En un dibujo como el siguiente :&lt;br /&gt;
&lt;br /&gt;
    +------------------------------------------------------------------------------------------+&lt;br /&gt;
    |  ,~.~._,~.~._,~.~._,~.~._,~.~._,~.~._,~.~.    ,~.~._,~.~._,~.~._,~.~._,~.~._,~.~._,~.~.  | &lt;br /&gt;
    | / O.O   O.O   O.O   O.O   O.O   O.O   O.O \  / O.O   O.O   O.O   O.O   O.O   O.O   O.O \ | &lt;br /&gt;
    |( O:@:O O:@:O O:@:O O:@:O O:@:O O:@:O O:@:O )( O:@:O O:@:O O:@:O O:@:O O:@:O O:@:O O:@:O )| &lt;br /&gt;
    | \ O&#039;O   O&#039;O   O&#039;O   O&#039;O   O&#039;O   O&#039;O   O&#039;O /  \ O&#039;O   O&#039;O   O&#039;O   O&#039;O   O&#039;O   O&#039;O   O&#039;O / | &lt;br /&gt;
    |  )   . ,   . ,   . ,   . ,   . ,   . ,   (    )   . ,   . ,   . ,   . ,   . ,   . ,   (  | &lt;br /&gt;
/\  | (  * -@- * -@- * -@- * -@- * -@- * -@- *  )  (  * -@- * -@- * -@- * -@- * -@- * -@- *  ) | &lt;br /&gt;
 A  |  )   &#039; `   &#039; `   &#039; `   &#039; `   &#039; `   &#039; `   (    )   &#039; `   &#039; `   &#039; `   &#039; `   &#039; `   &#039; `   (  | &lt;br /&gt;
 g  | / O.O   O.O   O.O   O.O   O.O   O.O   O.O \  / O.O   O.O   O.O   O.O   O.O   O.O   O.O \ | &lt;br /&gt;
 u  |( O:@:O O:@:O O:@:O O:@:O O:@:O O:@:O O:@:O )( O:@:O O:@:O O:@:O O:@:O O:@:O O:@:O O:@:O )| &lt;br /&gt;
 j  | \ O&#039;O   O&#039;O   O&#039;O   O&#039;O   O&#039;O   O&#039;O   O&#039;O /  \ O&#039;O   O&#039;O   O&#039;O   O&#039;O   O&#039;O   O&#039;O   O&#039;O / | &lt;br /&gt;
 a  |  ·~·~·^·~·~·^·~·~·^·~·~·^·~·~·^·~·~·^·~·~·    ·~·~·^·~·~·^·~·~·^·~·~·^·~·~·^·~·~·^·~·~·  | &lt;br /&gt;
 s  +------------------------------------------------------------------------------------------+&lt;br /&gt;
     Pasadas &amp;gt;&lt;br /&gt;
&lt;br /&gt;
Si se mira lo que hay guardado en el archivo se encontraría algo similar a :&lt;br /&gt;
                     &lt;br /&gt;
    +---------------+&lt;br /&gt;
    |  ,~.~._,~.~.  |&lt;br /&gt;
    | / O.O   O.O \ |&lt;br /&gt;
    |( O:@:O O:@:O )|&lt;br /&gt;
    | \ O&#039;O   O&#039;O / |&lt;br /&gt;
    |  )   . ,   (  |&lt;br /&gt;
/\  | (  * -@- *  ) | &lt;br /&gt;
 A  |  )   &#039; `   (  |&lt;br /&gt;
 g  | / O.O   O.O \ |&lt;br /&gt;
 u  |( O:@:O O:@:O )|&lt;br /&gt;
 j  | \ O&#039;O   O&#039;O / |&lt;br /&gt;
 a  |  ·~·~·^·~·~·  |&lt;br /&gt;
 s  +---------------+&lt;br /&gt;
     Pasadas &amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Esto pasa por que se ha guardado solo una vez cada bloque que se repite. En este caso los bloques que se han usado:&lt;br /&gt;
&lt;br /&gt;
     A      B        C&lt;br /&gt;
  +----+ +------+ +-----+&lt;br /&gt;
  |  ,~| |.~._,~| |.~.  | &lt;br /&gt;
  | / O| |.O   O| |.O \ | &lt;br /&gt;
  |( O:| |@:O O:| |@:O )| &lt;br /&gt;
  | \ O| |&#039;O   O| |&#039;O / | &lt;br /&gt;
  |  ) | |  . , | |  (  | &lt;br /&gt;
  | (  | |* -@- | |*  ) |&lt;br /&gt;
  |  ) | |  &#039; ` | |  (  | &lt;br /&gt;
  | / O| |.O   O| |.O \ | &lt;br /&gt;
  |( O:| |@:O O:| |@:O )|&lt;br /&gt;
  | \ O| |&#039;O   O| |&#039;O / |  &lt;br /&gt;
  |  ·~| |·~·^·~| |·~·  | &lt;br /&gt;
  +----+ +------+ +-----+&lt;br /&gt;
&lt;br /&gt;
Se puede ver con facilidad que la sequencia de bloques para obtener el dibujo es: A B B B B B B C A B B B B B B C&lt;br /&gt;
&lt;br /&gt;
LayoutCourNLayouts=3 pues hay tres bloques distintos ( A , B , C )&lt;br /&gt;
&lt;br /&gt;
LayoutCourRepeat=Array(&lt;br /&gt;
   numero de pasadas de A,&lt;br /&gt;
   numero de pasadas de B,&lt;br /&gt;
   numero de pasadas de C&lt;br /&gt;
)&lt;br /&gt;
&lt;br /&gt;
NOTA: El número total de pasadas ha de ser igual a la suma de pasadas de los bloques de repeticiones. Es decir:&lt;br /&gt;
NumCourses=LayoutCourRepeat(0)+...+LayoutCourRepeat(LayoutCourNLayouts-1)&lt;br /&gt;
&lt;br /&gt;
Luego para codificar que se desea 1 repetición de A, 6 repeticiones de B y una repeticion de C se haria de la siguiente manera:&lt;br /&gt;
&lt;br /&gt;
                         idx  |  LayoutCourWhich | LayoutCourTimes | Significado&lt;br /&gt;
                      --------+------------------+-----------------+------------------&lt;br /&gt;
                        _     |                  |                 |&lt;br /&gt;
                       /  0   |         1        |       1         | Bloque 1 (A) repetir una vez&lt;br /&gt;
                       |      |                  |                 |&lt;br /&gt;
                       |  1   |         2        |       6         | Bloque 2 (B) repetir 6 veces&lt;br /&gt;
                       |      |                  |                 |&lt;br /&gt;
                       |  2   |         3        |       1         | Bloque 3 (C) repetir una vez&lt;br /&gt;
LayoutCourNRepeats=6  &amp;lt;       |                  |                 |&lt;br /&gt;
                       |  3   |         1        |       1         | Bloque 1 (A) repetir una vez&lt;br /&gt;
                       |      |                  |                 |&lt;br /&gt;
                       |  4   |         2        |       6         | Bloque 2 (B) repetir 6 veces&lt;br /&gt;
                       |      |                  |                 |&lt;br /&gt;
                       \_ 5   |         3        |       1         | Bloque 3 (C) repetir una vez&lt;br /&gt;
                              |                  |                 |&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*LayoutJacqNRepeats int32&lt;br /&gt;
Numero de repeticiones de agujas. Solo afecta el jacquard. Sigue el mismo sistema que las repeticiones de pasadas.&lt;br /&gt;
&lt;br /&gt;
*LayoutJacqNLayouts int32&lt;br /&gt;
Numero de bloques de agujas a repetir&lt;br /&gt;
&lt;br /&gt;
*LayoutJacqRepeat int32(LayoutJacqNLayouts)&lt;br /&gt;
Numero de agujas que contiene cada bloque a repetir&lt;br /&gt;
&lt;br /&gt;
*LayoutJacqWhich int32(LayoutJacqNRepeats)&lt;br /&gt;
indice del bloque que a repetir&lt;br /&gt;
&lt;br /&gt;
*LayoutJacqTimes int32(LayoutJacqNRepeats)&lt;br /&gt;
numero de veces que se ha de repetir el bloque.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Pascual</name></author>
	</entry>
	<entry>
		<id>https://wiki.cadt.com/index.php?title=Drf-reader&amp;diff=2978</id>
		<title>Drf-reader</title>
		<link rel="alternate" type="text/html" href="https://wiki.cadt.com/index.php?title=Drf-reader&amp;diff=2978"/>
		<updated>2016-10-05T09:19:52Z</updated>

		<summary type="html">&lt;p&gt;Pascual: /* TAGS */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:SAPO]]&lt;br /&gt;
[[Category:Devel]]&lt;br /&gt;
&lt;br /&gt;
=== DLL_EXPORTS ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
void drf_clear_errors()&lt;br /&gt;
Descr:Borra todos los mensajes de error del almacenamiento interno de la librería dinámica.&lt;br /&gt;
&lt;br /&gt;
int drf_get_num_errors();&lt;br /&gt;
Descr:Obtiene el número de mensajes de error almacenados por la librería dinámica.&lt;br /&gt;
Return:número de mensajes almacenados.&lt;br /&gt;
&lt;br /&gt;
const char* drf_get_error(int idx)&lt;br /&gt;
Descr:Obtiene el mensaje de error indicado por idx (referenciado a 0).&lt;br /&gt;
p:idx: Número de mensaje a obtener. Rango entre: 0 y (drf_get_num_errors()-1) ambos incluidos.&lt;br /&gt;
Return: Éxito: Puntero a una cadena de caracteres ASCII terminada por el byte NUL (&#039;\0&#039;)&lt;br /&gt;
        Error: NULL en caso que el valor de idx esté fuera de rango.&lt;br /&gt;
&lt;br /&gt;
int drf_to_json(char *path,FILE *json,int options)&lt;br /&gt;
Descr:Serializa a JSON un archivo DRF.&lt;br /&gt;
p:path: Ruta al fichero DRF a serializar en formato Windows ANSI.&lt;br /&gt;
p:json: puntero FILE ya abierto y con la escritura habilitada.&lt;br /&gt;
p:options: Selecciona que información se serializará. Valores possibles:&lt;br /&gt;
   DRF_GET_GENERIC_INFO&lt;br /&gt;
   DRF_GET_MACHINE_INFO&lt;br /&gt;
   DRF_GET_DRAFT_INFO&lt;br /&gt;
   DRF_GET_ALL_INFO&lt;br /&gt;
&lt;br /&gt;
Return: Éxito : retorna valor igual a 0&lt;br /&gt;
        Error : retorna valor diferente de 0&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== TAGS ===&lt;br /&gt;
&lt;br /&gt;
Codificación a JSON de los datos:&lt;br /&gt;
&lt;br /&gt;
Internamente el DRF guarda la información como una lista de tags. Cada tag puede contener uno o varios elementos del mismo tipo.&lt;br /&gt;
&lt;br /&gt;
Al codificar un DRF a JSON se codifica como un objeto donde se usa el nombre del tag como clave y el contenido de éste como valor.&lt;br /&gt;
En caso que el tag pueda contener más de un valor, la librería serializa el contenido como un vector.&lt;br /&gt;
&lt;br /&gt;
Como el formato DRF soporta más tipos que el JSON, la librería los convertirá a un tipo soportado por el JSON. La siguiente tabla muestra a que &lt;br /&gt;
tipo del JSON se convierte cada tipo del DRF &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    DRF  | JSON   &lt;br /&gt;
  -------+--------&lt;br /&gt;
  byte   | &lt;br /&gt;
  int16  | int&lt;br /&gt;
  int32  |&lt;br /&gt;
  -------+-------&lt;br /&gt;
  float  | float&lt;br /&gt;
  -------+-------&lt;br /&gt;
  string | string*&lt;br /&gt;
&lt;br /&gt;
*) Todos los strings contienen solo caracteres ASCII (encoding:ASCII-7)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== TAGS GENERIC INFO ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Software string&lt;br /&gt;
Nombre del programa que ha generado el fichero .DRF&lt;br /&gt;
&lt;br /&gt;
*DrawName string&lt;br /&gt;
Referencia del dibujo (max. 256 carac).&lt;br /&gt;
&lt;br /&gt;
*Company string&lt;br /&gt;
Compañía que ha creado el dibujo (max. 30 carac).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== TAGS MACHINE INFO ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Machine string&lt;br /&gt;
Referencia de la máquina. (max. 30 carac) &lt;br /&gt;
&lt;br /&gt;
*MachineType string&lt;br /&gt;
Modelo de la máquina. Sólo es válido un modelo definido en el sistema de diseño. (p.e. LEAVERS)&lt;br /&gt;
&lt;br /&gt;
*Description string&lt;br /&gt;
Descripción o información adicional de la máquina.&lt;br /&gt;
&lt;br /&gt;
*Serial string&lt;br /&gt;
Num. serie de la máquina. (max. 30 carac) . Puede contener carácteres no numéricos.&lt;br /&gt;
&lt;br /&gt;
*Version int32&lt;br /&gt;
Versión de la máquina raschel SU (versión 1 .. 4).&lt;br /&gt;
   versión 1 . Sin ahorrador de memoria&lt;br /&gt;
   versión 2 . Con ahorrador de memoria (repeticiones)&lt;br /&gt;
   versión 3 . Sin ahorrador de memoria + información empresa.&lt;br /&gt;
   versión 4 . Con ahorrador de memoria (repeciciones) + información empresa.&lt;br /&gt;
&lt;br /&gt;
*Jacquard int32&lt;br /&gt;
Número de barras de Jacquard independientes. Valores posibles: &lt;br /&gt;
   0 : No jacquard&lt;br /&gt;
   1 : 1 jacquard o fina barra simple&lt;br /&gt;
   2 : 2 jacquard raschel o fina barra doble.&lt;br /&gt;
&lt;br /&gt;
*Fronture int32&lt;br /&gt;
Número de fonturas de la máquina&lt;br /&gt;
   1 : 1 fontura&lt;br /&gt;
   2 : 2 fontures (delante / detrás)&lt;br /&gt;
&lt;br /&gt;
*BarsRepeat int32&lt;br /&gt;
Altura del diseño.&lt;br /&gt;
&lt;br /&gt;
*NumRepeats int32&lt;br /&gt;
Num de repeticiones en el diseño.&lt;br /&gt;
&lt;br /&gt;
*NumBars int32&lt;br /&gt;
Numero de barras que tiene el telar.&lt;br /&gt;
&lt;br /&gt;
*Plate int32&lt;br /&gt;
En máquinas raschel (textronic), indica la posición de la plancha.&lt;br /&gt;
En máquinas leavers indica donde empiezan los brodeurs.&lt;br /&gt;
&lt;br /&gt;
*JacqNeedles int32&lt;br /&gt;
Numero de agujas de Jacquard del telar.&lt;br /&gt;
&lt;br /&gt;
*MachNeedles int32&lt;br /&gt;
Numero total de agujas del telar.&lt;br /&gt;
&lt;br /&gt;
*BarsOffset int32&lt;br /&gt;
Desplazamiento de barras (orillos=zona perdida)&lt;br /&gt;
&lt;br /&gt;
*JacqOffset int32&lt;br /&gt;
Deplazamiento de las agujas de jacquard en el telar.&lt;br /&gt;
&lt;br /&gt;
*MaxDisp int32&lt;br /&gt;
Deplazamiento máximo general de las barras para máquinas raschel SU.&lt;br /&gt;
&lt;br /&gt;
*Proximity int32&lt;br /&gt;
Para máquinas raschel, distáncia máxima a la que se pueden acercar dos barras del mismo grupo.&lt;br /&gt;
&lt;br /&gt;
*ProximityCollindant int32&lt;br /&gt;
Para máquinas raschel, distáncia máxima a la que se pueden acercar dos barras del mismo grupo colindantes.&lt;br /&gt;
&lt;br /&gt;
*JacqRt int32&lt;br /&gt;
Deplazamiento Rt del jacquard:&lt;br /&gt;
&lt;br /&gt;
para máquinas raschel:&lt;br /&gt;
   no jacquard: rt = 0&lt;br /&gt;
   jacquard simple o doble: rt = 1&lt;br /&gt;
Indica cuántas agujas se desplaza la lectura del jacaquard en las pasadas alternadas.&lt;br /&gt;
&lt;br /&gt;
para máquinas leavers&lt;br /&gt;
   no fina barra:      0&lt;br /&gt;
   fina barra simple: -1&lt;br /&gt;
   fina barra doble:   0&lt;br /&gt;
Indica cuántas agujas se desplaza la lectura del jacquard (desde la posición derecha de la máquina en las pasadas alternadas).&lt;br /&gt;
&lt;br /&gt;
*JacqRtCourse int32&lt;br /&gt;
Indica que pasadas se aplica el valor JacqRt.&lt;br /&gt;
   0:pasadas pares&lt;br /&gt;
   1: pasadas impares&lt;br /&gt;
&lt;br /&gt;
*FinalGauge float&lt;br /&gt;
Galga de producto tejido aplicando encongimiento (medida en agujas/pulgada)&lt;br /&gt;
&lt;br /&gt;
*FinalQuality float&lt;br /&gt;
Calidad de producto tejido aplicando elasticidad (medida en pasadas/centímetro).&lt;br /&gt;
&lt;br /&gt;
*RealGauge float&lt;br /&gt;
Galga de máquina (medida en agujas/pulgada)-&lt;br /&gt;
&lt;br /&gt;
*RealQuality float&lt;br /&gt;
Calidad de máquina (medida en pasadas/centímetro).&lt;br /&gt;
&lt;br /&gt;
*Shrinkage float&lt;br /&gt;
Porcentage de encongimiento en agujas (0-100%)&lt;br /&gt;
&lt;br /&gt;
*Elasticity float&lt;br /&gt;
Porcentage de elasticidad en pasadas (0-100%)&lt;br /&gt;
&lt;br /&gt;
*BarNumBar int32(NumBars)&lt;br /&gt;
Numero de cada una de las barras del telar (valor numérico consecutivo)&lt;br /&gt;
&lt;br /&gt;
*BarName string(NumBars)&lt;br /&gt;
Nombre o identificador de cada una de las barras del telar&lt;br /&gt;
&lt;br /&gt;
*BarGroup int32(NumBars)&lt;br /&gt;
En máquinas raschel el número de grupo de la barra.&lt;br /&gt;
&lt;br /&gt;
*BarStop int32(NumBars)&lt;br /&gt;
Posición 0 de la barra.&lt;br /&gt;
&lt;br /&gt;
*BarUtil int32(NumBars)&lt;br /&gt;
Visibilidad de la barra en el sistema de diseño.&lt;br /&gt;
&lt;br /&gt;
*BarType int32(NumBars)&lt;br /&gt;
Tipo de hilo por defecto de la barra.&lt;br /&gt;
&lt;br /&gt;
*BarMaxGimp int32&lt;br /&gt;
Guimpada máxima en agujas de la barra.&lt;br /&gt;
&lt;br /&gt;
*BarDrive int32&lt;br /&gt;
En máquinas raschel SU, el número de getribe de la barra.&lt;br /&gt;
&lt;br /&gt;
*BarFactor int32&lt;br /&gt;
En máquinas raschel SU, multiplicador de la barra.&lt;br /&gt;
1: factor de 1 agulla&lt;br /&gt;
2: factor de 2 agulles,&lt;br /&gt;
4: factor de 4 agulles.&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*BarInvert int32&lt;br /&gt;
En máquinas raschel SU, les barres invertides. &lt;br /&gt;
1: barra invertida.&lt;br /&gt;
0: barra no invertida.&lt;br /&gt;
&lt;br /&gt;
*BarWork int32&lt;br /&gt;
Trabajo de la barra en el sistema de diseño.&lt;br /&gt;
&lt;br /&gt;
   0: Chainette&lt;br /&gt;
   1: Jacquard     [1]&lt;br /&gt;
   2: Brodeur&lt;br /&gt;
   3: Gros&lt;br /&gt;
   4: Fin&lt;br /&gt;
   5: Brillant&lt;br /&gt;
   6: Picot&lt;br /&gt;
   7: Corde&lt;br /&gt;
   8: Lycra&lt;br /&gt;
   9: Fond&lt;br /&gt;
  10: Bloc&lt;br /&gt;
  11: Cord&lt;br /&gt;
  12: Guimp&lt;br /&gt;
  13: Nul&lt;br /&gt;
  14: Jacq 0/2,6/4 [1]&lt;br /&gt;
  15: Jacq 0/2,8/6 [1]&lt;br /&gt;
  16: Fine Bar.  [sup]&lt;br /&gt;
  17: Braquette&amp;quot;&lt;br /&gt;
  18: Jacquard     [2]&lt;br /&gt;
  19: Jacq 0/2,6/4 [2]&lt;br /&gt;
  20: Jacq 0/2,8/6 [2]&lt;br /&gt;
  21: Fine Bar.  [inf]&lt;br /&gt;
  22: Jacquard&lt;br /&gt;
  23: Fine Barre&lt;br /&gt;
  24: Fallplate&lt;br /&gt;
  25: Embrodery&lt;br /&gt;
  26: EFS&lt;br /&gt;
  27: Reservé 1&lt;br /&gt;
  28: Reservé 2&lt;br /&gt;
  29: Jacq 0/2,6/4&lt;br /&gt;
  30: Jacq 0/2,8/6&lt;br /&gt;
  31: Bord&lt;br /&gt;
  32: Lisieres&lt;br /&gt;
  33: Romaines&lt;br /&gt;
  34: Sonnette&lt;br /&gt;
  35: Guimp devant&lt;br /&gt;
  36: Petite Corde&lt;br /&gt;
  37: Fileur&lt;br /&gt;
  38: Separation&lt;br /&gt;
  39: Corde Termo&lt;br /&gt;
  40: Solv rom&lt;br /&gt;
  41: Vis&lt;br /&gt;
  42: Jacquard     [3]&lt;br /&gt;
  43: Jacquard     [4]&lt;br /&gt;
  44: Space Fabric&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*BarKnit&lt;br /&gt;
En máquines raschel textronic tipous de lligada:&lt;br /&gt;
  0 : no planxa&lt;br /&gt;
  1 : lligada 1 (mecanica)&lt;br /&gt;
  2 : lligada 2 (binaria)&lt;br /&gt;
  3 : lligada 3 (mecánica (2))&lt;br /&gt;
  4 : lligada 4 (binària (2))&lt;br /&gt;
&lt;br /&gt;
*BarTimes&lt;br /&gt;
En máquines raschel textonic temps de la lligada&lt;br /&gt;
  0 : no planxa&lt;br /&gt;
  2 : temps 2 (p.e) 0202 0202 0202&lt;br /&gt;
  4 : temps 4 (p.e) 0220 0220 0220&lt;br /&gt;
&lt;br /&gt;
*BarMode&lt;br /&gt;
En máquines raschel textronic el mode la la barra:&lt;br /&gt;
  0 : mode A (p.e 0220)&lt;br /&gt;
  1 : mode B (p.e 2002)&lt;br /&gt;
&lt;br /&gt;
*BarModif int32&lt;br /&gt;
En máquines raschel textronic indica que la barra no es pot deslligar&lt;br /&gt;
  0 : no es pot deslligar&lt;br /&gt;
  1 : si es pot deslligar&lt;br /&gt;
&lt;br /&gt;
*BarTension int32&lt;br /&gt;
Tensió de la barra a les simulacions.&lt;br /&gt;
&lt;br /&gt;
*BarNumFingers int32(NumBars)&lt;br /&gt;
Número de pasadors de la barra&lt;br /&gt;
&lt;br /&gt;
*BarModeDrop int32(NumBars)&lt;br /&gt;
Ponderación de cada uno de los 7 bits que se usan para indicar el desplazamiento de la barra. Valores:&lt;br /&gt;
&lt;br /&gt;
 Valor | B7 | B6 | B5 | B4 | B3 | B2 | B1&lt;br /&gt;
 ------+----+----+----+----+----+----+----&lt;br /&gt;
    0  |  8 |  8 |  8 |  4 |  2 |  1 |1/2&lt;br /&gt;
 ------+----+----+----+----+----+----+----&lt;br /&gt;
    1  | 16 |  8 |  8 |  4 |  2 |  1 |1/2&lt;br /&gt;
 ------+----+----+----+----+----+----+----&lt;br /&gt;
    2  | 16 | 16 |  8 |  4 |  2 |  1 |1/2&lt;br /&gt;
 ------+----+----+----+----+----+----+----&lt;br /&gt;
    3  | 32 | 16 |  8 |  4 |  2 |  1 |1/2&lt;br /&gt;
 ------+----+----+----+----+----+----+----&lt;br /&gt;
    4  |  8 |  8 |  8 |  8 |  4 |  2 | 1&lt;br /&gt;
 ------+----+----+----+----+----+----+----&lt;br /&gt;
    5  | 16 |  8 |  8 |  8 |  4 |  2 | 1&lt;br /&gt;
 ------+----+----+----+----+----+----+----&lt;br /&gt;
    6  |  4 |  4 |  4 |  4 |  2 |  1 | 1&lt;br /&gt;
 ------+----+----+----+----+----+----+----&lt;br /&gt;
    7  |  0 |  0 |  0 |  1 |  2 |  1 |1/2&lt;br /&gt;
 ------+----+----+----+----+----+----+----&lt;br /&gt;
    8  |  4 |  4 |  4 |  4 |  2 |  1 |1/2&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*BarMaxDesp int32(NumBars)&lt;br /&gt;
Desplazamiento máximo de la barra en agujas&lt;br /&gt;
&lt;br /&gt;
*BarActive byte(NumBars)&lt;br /&gt;
Sólo para maquinas EL. Indica si la barra esta en uso o no.&lt;br /&gt;
&lt;br /&gt;
*BarHalvesUp byte(NumBars)&lt;br /&gt;
Si en la pasada se incrementa la posición de la barra en BarHalvesUp agujas o más, entonces , se añade media aguja a la posición final.&lt;br /&gt;
&lt;br /&gt;
*BarHalvesDn byte(NumBars)&lt;br /&gt;
Si en la pasada se decrementa la posición de la barra en BarHalvesDwn agujas o más, entonces , se le resta media aguja a la posición final.&lt;br /&gt;
&lt;br /&gt;
*BarString int32(NumBars)&lt;br /&gt;
Valors:&lt;br /&gt;
0:&lt;br /&gt;
1:ple&lt;br /&gt;
2:1f 1x&lt;br /&gt;
3:1x 1f&lt;br /&gt;
4:buit&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*BarFronture int32(NumBars)&lt;br /&gt;
Solo se usa en las máquinas de doble frontura. Da la frontura en la que empieza a trabajar la barra.Valores:&lt;br /&gt;
0: primera forntura&lt;br /&gt;
1: segunda frontura&lt;br /&gt;
&lt;br /&gt;
*BarDropsUtil int32(7*NumBars)&lt;br /&gt;
indica como se deben perforar los 7 posiciones correspondientes a la barra:&lt;br /&gt;
&lt;br /&gt;
Valor:&lt;br /&gt;
0: Usado. Siempre a 1. Es decir: no perforar nunca&lt;br /&gt;
1: Usado, Se perforara o no en funcion del desplazamiento de la barra&lt;br /&gt;
2: Usado. Siemre a 0. Es decir, se perfora siempre&lt;br /&gt;
3: No usado. No se perfora&lt;br /&gt;
&lt;br /&gt;
*FingerStop int32(num_fingers) num_fingers=BarNumFingers(0) + ... + BarNumFingers(NumBars-1)&lt;br /&gt;
Stop del pasador relativo al stop de la barra.&lt;br /&gt;
&lt;br /&gt;
*FingerType int32(num_fingers) num_fingers=BarNumFingers(0) + ... + BarNumFingers(NumBars-1)&lt;br /&gt;
Tipo de pasador.&lt;br /&gt;
&lt;br /&gt;
*CGF1Card int32&lt;br /&gt;
ha de estar a 0.&lt;br /&gt;
&lt;br /&gt;
*CGF1Type int32&lt;br /&gt;
Número de columnas útiles en el cartón.&lt;br /&gt;
&lt;br /&gt;
*CGF1Taille int32&lt;br /&gt;
Número de columnas totales que caben del cartón.&lt;br /&gt;
&lt;br /&gt;
*CGF1Numlines int32&lt;br /&gt;
numero de entradas de las que consta la especificación del cartón.&lt;br /&gt;
&lt;br /&gt;
*CGF1Script string(CGF1Numlines)&lt;br /&gt;
Lista de cadenas de caracteres que detallan como se ha de perforar  cada columna del cartón empezando por la columna de mas a la derecha.&lt;br /&gt;
Cada cadena de caracteres tiene el formato: &amp;lt;codigo de tipo&amp;gt; &amp;lt;espacio&amp;gt; &amp;lt;numero de repeticiones&amp;gt;. Ex: &amp;quot;LC 1&amp;quot;.&lt;br /&gt;
Los codigos de tipo validos son:&lt;br /&gt;
   LC: Laçage&lt;br /&gt;
   TC: Trou de centrage&lt;br /&gt;
   TS: Trou de centrage simple&lt;br /&gt;
   EL: Element vide&lt;br /&gt;
   GF: Gros fil&lt;br /&gt;
   VB: Value&lt;br /&gt;
&lt;br /&gt;
*CGF1Descrip string(CGF1Numlines)&lt;br /&gt;
Descripción de cada entada del cartón.&lt;br /&gt;
&lt;br /&gt;
Ex:&lt;br /&gt;
&lt;br /&gt;
  CGF1Script | CGF1Descrip&lt;br /&gt;
 ------------+--------------&lt;br /&gt;
   &amp;quot;LC 1&amp;quot;    |  &amp;quot;Laçage&amp;quot;&lt;br /&gt;
   &amp;quot;TC 1&amp;quot;    |  &amp;quot;Trou de centrage&amp;quot;&lt;br /&gt;
   &amp;quot;GF 6&amp;quot;    |  &amp;quot;braquettes&amp;quot;  &lt;br /&gt;
   &amp;quot;GF 4&amp;quot;    |  &amp;quot;stum&amp;quot;                                                                                                      &lt;br /&gt;
   &amp;quot;GF 30&amp;quot;   |  &amp;quot;guimpes&amp;quot;                                                                                                    &lt;br /&gt;
   &amp;quot;TC 1&amp;quot;    |  &amp;quot;Trou de centrage&amp;quot;                                                                                            &lt;br /&gt;
   &amp;quot;LC 1&amp;quot;    |  &amp;quot;Laçage&amp;quot;                                                                                                       &lt;br /&gt;
   &amp;quot;GF 26&amp;quot;   |  &amp;quot;guimpes&amp;quot;                                                                                                &lt;br /&gt;
   &amp;quot;GF 4&amp;quot;    |  &amp;quot;stum&amp;quot;                                                                                                   &lt;br /&gt;
   &amp;quot;GF 6&amp;quot;    |  &amp;quot;braquettes&amp;quot;                                                                                               &lt;br /&gt;
   &amp;quot;GF 3&amp;quot;    |  &amp;quot;brodeus&amp;quot;                                                                                                  &lt;br /&gt;
   &amp;quot;TC 1&amp;quot;    |  &amp;quot;Trou de centrage&amp;quot;                                                                                         &lt;br /&gt;
   &amp;quot;LC 1&amp;quot;    |  &amp;quot;Laçage&amp;quot;                                                                                                      &lt;br /&gt;
   &amp;quot;GF 39&amp;quot;   |  &amp;quot;brodeus&amp;quot;                                                                                                 &lt;br /&gt;
   &amp;quot;TC 1&amp;quot;    |  &amp;quot;Trou de centrage&amp;quot;                                                                                           &lt;br /&gt;
   &amp;quot;LC 1&amp;quot;    |  &amp;quot;Laçage&amp;quot;                                                                                                    &lt;br /&gt;
                                                                                                                           &lt;br /&gt;
                                                                                                                          &lt;br /&gt;
  L T                GF39                   L T G   GF6  GF4          GF26            L T               GF30           GF4  GF6  T L&lt;br /&gt;
  C C _____________________________________ C C F  ____  __  ________________________ C C ____________________________  __  ____ C C&lt;br /&gt;
  1 1/                                     \1 1/3\/    \/  \/                        \1 1/                            \/  \/    \1 1&lt;br /&gt;
/------------------------------------------------------------------------------------------------------------------------------------\&lt;br /&gt;
|    OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO.  OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO.  OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO    |&lt;br /&gt;
| O  .O.O.O.OOOOOOO.OOO.OOOOOO.O.O.OOOOOOOOOO  OOOOOOOOOOO..O..OO...O.OO.....O..O..OOOO  OO...O...OOO.OOOOO...O.....O..OO..OOOOOO  O |&lt;br /&gt;
|    OOOOO.OO.O...OOO..O..OO.OO.OOOO.O..OO.O.  OOOOOO...OOOO.O.OOOO..O.OO.OOO..O.O.O...  ..OOO.OO..O.OO....O.O..O.OOOOOOOOOOOO...    |&lt;br /&gt;
|  ().OO.OO...OOOOOOOO.OO...O.OOOO..OO....O..()O..OOOOOOOOOOO.O....OO..O..OOO..OO.O.O..()OO.....OOO...OO..OO.O.OOO.OO.OOOOOOOOOOO()  |&lt;br /&gt;
|    ........................................  ...............OO..OO..O.......O........  ...........O...O...O.O...O...O..........    |&lt;br /&gt;
| O  .O....OO.O.O....O.O.OOO..O.O.OO.O..OOO.O  ..O...........OOO.OOO.OOOOOOO.OOO.OOO.OO  OOOOOOOOOOOOOOOOOOOO.OOOOOOOOO..........  O |&lt;br /&gt;
|    O.OOOOOOO.O.OOOO.O.OOOOOO.O.OOOO.OO.OOO.  OOO..........OOOOOOOOOOOOOOOOOOOOOOOOOO.  OOOOOOOOOOOOOOOOOOOOOOOOOOOOOO..........    |&lt;br /&gt;
\------------------------------------------------------------------------------------------------------------------------------------/    &lt;br /&gt;
&lt;br /&gt;
*CGF2Card int32&lt;br /&gt;
ha de estar a 0.&lt;br /&gt;
&lt;br /&gt;
*CGF2Type int32&lt;br /&gt;
Número de columnas útiles en el cartón.&lt;br /&gt;
&lt;br /&gt;
*CGF2Taille int32&lt;br /&gt;
Número de columnas totales que caben del cartón.&lt;br /&gt;
&lt;br /&gt;
*CGF2Numlines int32&lt;br /&gt;
numero de entradas de las que consta la especificación del cartón.&lt;br /&gt;
&lt;br /&gt;
*CGF2Script string(CGF2Numlines)&lt;br /&gt;
Especificación del cartón. Formateado igual que CGF1Script.&lt;br /&gt;
&lt;br /&gt;
*CGF2Descrip string(CGF2Numlines)&lt;br /&gt;
Descripción de cada entada del cartón.&lt;br /&gt;
&lt;br /&gt;
*CFBCard int32&lt;br /&gt;
ha de estar a 1.&lt;br /&gt;
&lt;br /&gt;
*CFBType int32&lt;br /&gt;
Número de columnas útiles en el cartón.&lt;br /&gt;
&lt;br /&gt;
*CFBTaille int32&lt;br /&gt;
Número de columnas totales que caben del cartón multiplicadas por 8.Ex:&lt;br /&gt;
si el cartón tiene 75 columnas CFBTaille=75*8=600&lt;br /&gt;
&lt;br /&gt;
*CFBNumlines int32&lt;br /&gt;
numero de entradas de las que consta la especificación del cartón.&lt;br /&gt;
&lt;br /&gt;
*CFBScript string(CFBNumlines)&lt;br /&gt;
Especificación del cartón. Formateado igual que CGF1Script. Excepto que los tipos aceptados&lt;br /&gt;
son:&lt;br /&gt;
   LC: Laçage&lt;br /&gt;
   TC: Trou de centrage&lt;br /&gt;
   TS: Trou de centrage simple&lt;br /&gt;
   EL: Element vide&lt;br /&gt;
   FB: Fine barre&lt;br /&gt;
   VB: Value&lt;br /&gt;
&lt;br /&gt;
Es decir el tipo &amp;quot;GF&amp;quot; no existe para este tag y en su lugar hay el tipo &amp;quot;FB&amp;quot;&lt;br /&gt;
&lt;br /&gt;
*CFBDescrip string(CFBNumlines)&lt;br /&gt;
Descripción de cada entada del cartón.&lt;br /&gt;
&lt;br /&gt;
*CFBNGaits int32&lt;br /&gt;
Número de entradas para mapear las repeticiones de agujas de Fine Barre a los cartones en función de la repetición.&lt;br /&gt;
&lt;br /&gt;
*CFBGaitNRepeat int32(CFBNGaits)&lt;br /&gt;
Número de repetición a mapear&lt;br /&gt;
&lt;br /&gt;
*CFBGaitNBar int32(CFBNGaits)&lt;br /&gt;
Número de aguja a mapear&lt;br /&gt;
&lt;br /&gt;
*CFBGaitNGait int32(CFBNGaits)&lt;br /&gt;
Indice de agujero en el cartón&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== TAGS DRAFT DATA ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*NumCourses int32&lt;br /&gt;
Numero de pasadas del dibujo sin tener en cuenta las repeticiones.&lt;br /&gt;
&lt;br /&gt;
*BarNeedle int16(NumCourses*NumBars)&lt;br /&gt;
Despazamientos medidos en agujas de las barras en cada pasada. Ordenados de la siguiente manera:&lt;br /&gt;
&lt;br /&gt;
   BarNeedle(0)              Desplazamiento barra 1 en la primera pasada.&lt;br /&gt;
   BarNeedle(1)              Desplazamiento barra 1 en la segunda pasada.&lt;br /&gt;
   .&lt;br /&gt;
   .&lt;br /&gt;
   BarNeedle(NumCourses-1)   Desplazamiento barra 1 en la última pasada.&lt;br /&gt;
   BarNeedle(NumCourses)     Desplazamiento barra 2 en la primera pasada.&lt;br /&gt;
   .&lt;br /&gt;
   .&lt;br /&gt;
   BarNeedel(NumCourses*2-1) Desplazamiento barra 2 en la última pasada.&lt;br /&gt;
   BarNeedle(NumCourses)     Desplazamiento barra 3 en la primera pasada.&lt;br /&gt;
   .&lt;br /&gt;
&lt;br /&gt;
*BarNeedleB int16(NumCourses*NumBars)&lt;br /&gt;
Solo se utiliza en maquinas de doble frontura. Es equivalente a BarNeedle pero contiene la información&lt;br /&gt;
para la segunda frontura.&lt;br /&gt;
&lt;br /&gt;
*BarHalves int8(NumCourses*NumBars)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*BarKnitting int8(NumCourses*NumBars)&lt;br /&gt;
Valores:&lt;br /&gt;
 0 :&lt;br /&gt;
 1 :&lt;br /&gt;
 2 :&lt;br /&gt;
 3 :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*BarKnittingB int8(NumCourses*NumBars)&lt;br /&gt;
Solo se utiliza en maquinas de doble frontura. Es equivalente a BarKnitting pero contiene la información&lt;br /&gt;
para la segunda frontura.&lt;br /&gt;
&lt;br /&gt;
*Layout_JacqData byte(NumCourses*JacqNeedles*Jacquard)&lt;br /&gt;
Bits de Jacquard.Valores:&lt;br /&gt;
0: T&lt;br /&gt;
1: H&lt;br /&gt;
&lt;br /&gt;
*Layout_FrontureData byte(NumCourses*JacqNeedles*Jacquard)&lt;br /&gt;
Solo se utiliza en maquinas de doble frontura. Es equivalente a Layout_JacqData pero contiene la información&lt;br /&gt;
para la segunda frontura.&lt;br /&gt;
&lt;br /&gt;
*Layout_WBData byte(NumCourses*JacqNeedles*Jacquard)&lt;br /&gt;
Solo se utiliza en maquinas CLIPTRONIC . Contiene los datos para la barra de Embrodery(WB) en el mismo formato que&lt;br /&gt;
Layout_JacqData.&lt;br /&gt;
&lt;br /&gt;
*LayoutCourNRepeats int32&lt;br /&gt;
Numero de repeticiones de pasadas. Las repeticiones de pasadas afectan por igual las barras de dibujo y el jacquard.&lt;br /&gt;
&lt;br /&gt;
*LayoutCourNLayouts int32&lt;br /&gt;
Numero de bloques de pasadas a repetir&lt;br /&gt;
&lt;br /&gt;
*LayoutCourRepeat int32(LayoutCourNLayouts)&lt;br /&gt;
Numero de pasadas que contiene cada bloque a repetir&lt;br /&gt;
&lt;br /&gt;
*LayoutCourWhich int32(LayoutCourNRepeats)&lt;br /&gt;
indice del bloque que a repetir&lt;br /&gt;
&lt;br /&gt;
*LayoutCourTimes int32(LayoutCourNRepeats)&lt;br /&gt;
numero de veces que se ha de repetir el bloque. Ejemplo:&lt;br /&gt;
&lt;br /&gt;
Normalmente como los dibujos suelen ser bastante repetitivos, para ahorrar trabajo y memoria no se guardan todas las pasadas&lt;br /&gt;
del dibujo. En un dibujo como el siguiente :&lt;br /&gt;
&lt;br /&gt;
    +------------------------------------------------------------------------------------------+&lt;br /&gt;
    |  ,~.~._,~.~._,~.~._,~.~._,~.~._,~.~._,~.~.    ,~.~._,~.~._,~.~._,~.~._,~.~._,~.~._,~.~.  | &lt;br /&gt;
    | / O.O   O.O   O.O   O.O   O.O   O.O   O.O \  / O.O   O.O   O.O   O.O   O.O   O.O   O.O \ | &lt;br /&gt;
    |( O:@:O O:@:O O:@:O O:@:O O:@:O O:@:O O:@:O )( O:@:O O:@:O O:@:O O:@:O O:@:O O:@:O O:@:O )| &lt;br /&gt;
    | \ O&#039;O   O&#039;O   O&#039;O   O&#039;O   O&#039;O   O&#039;O   O&#039;O /  \ O&#039;O   O&#039;O   O&#039;O   O&#039;O   O&#039;O   O&#039;O   O&#039;O / | &lt;br /&gt;
    |  )   . ,   . ,   . ,   . ,   . ,   . ,   (    )   . ,   . ,   . ,   . ,   . ,   . ,   (  | &lt;br /&gt;
/\  | (  * -@- * -@- * -@- * -@- * -@- * -@- *  )  (  * -@- * -@- * -@- * -@- * -@- * -@- *  ) | &lt;br /&gt;
 A  |  )   &#039; `   &#039; `   &#039; `   &#039; `   &#039; `   &#039; `   (    )   &#039; `   &#039; `   &#039; `   &#039; `   &#039; `   &#039; `   (  | &lt;br /&gt;
 g  | / O.O   O.O   O.O   O.O   O.O   O.O   O.O \  / O.O   O.O   O.O   O.O   O.O   O.O   O.O \ | &lt;br /&gt;
 u  |( O:@:O O:@:O O:@:O O:@:O O:@:O O:@:O O:@:O )( O:@:O O:@:O O:@:O O:@:O O:@:O O:@:O O:@:O )| &lt;br /&gt;
 j  | \ O&#039;O   O&#039;O   O&#039;O   O&#039;O   O&#039;O   O&#039;O   O&#039;O /  \ O&#039;O   O&#039;O   O&#039;O   O&#039;O   O&#039;O   O&#039;O   O&#039;O / | &lt;br /&gt;
 a  |  ·~·~·^·~·~·^·~·~·^·~·~·^·~·~·^·~·~·^·~·~·    ·~·~·^·~·~·^·~·~·^·~·~·^·~·~·^·~·~·^·~·~·  | &lt;br /&gt;
 s  +------------------------------------------------------------------------------------------+&lt;br /&gt;
     Pasadas &amp;gt;&lt;br /&gt;
&lt;br /&gt;
Si se mira lo que hay guardado en el archivo se encontraría algo similar a :&lt;br /&gt;
                     &lt;br /&gt;
    +---------------+&lt;br /&gt;
    |  ,~.~._,~.~.  |&lt;br /&gt;
    | / O.O   O.O \ |&lt;br /&gt;
    |( O:@:O O:@:O )|&lt;br /&gt;
    | \ O&#039;O   O&#039;O / |&lt;br /&gt;
    |  )   . ,   (  |&lt;br /&gt;
/\  | (  * -@- *  ) | &lt;br /&gt;
 A  |  )   &#039; `   (  |&lt;br /&gt;
 g  | / O.O   O.O \ |&lt;br /&gt;
 u  |( O:@:O O:@:O )|&lt;br /&gt;
 j  | \ O&#039;O   O&#039;O / |&lt;br /&gt;
 a  |  ·~·~·^·~·~·  |&lt;br /&gt;
 s  +---------------+&lt;br /&gt;
     Pasadas &amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Esto pasa por que se ha guardado solo una vez cada bloque que se repite. En este caso los bloques que se han usado:&lt;br /&gt;
&lt;br /&gt;
     A      B        C&lt;br /&gt;
  +----+ +------+ +-----+&lt;br /&gt;
  |  ,~| |.~._,~| |.~.  | &lt;br /&gt;
  | / O| |.O   O| |.O \ | &lt;br /&gt;
  |( O:| |@:O O:| |@:O )| &lt;br /&gt;
  | \ O| |&#039;O   O| |&#039;O / | &lt;br /&gt;
  |  ) | |  . , | |  (  | &lt;br /&gt;
  | (  | |* -@- | |*  ) |&lt;br /&gt;
  |  ) | |  &#039; ` | |  (  | &lt;br /&gt;
  | / O| |.O   O| |.O \ | &lt;br /&gt;
  |( O:| |@:O O:| |@:O )|&lt;br /&gt;
  | \ O| |&#039;O   O| |&#039;O / |  &lt;br /&gt;
  |  ·~| |·~·^·~| |·~·  | &lt;br /&gt;
  +----+ +------+ +-----+&lt;br /&gt;
&lt;br /&gt;
Se puede ver con facilidad que la sequencia de bloques para obtener el dibujo es: A B B B B B B C A B B B B B B C&lt;br /&gt;
&lt;br /&gt;
LayoutCourNLayouts=3 pues hay tres bloques distintos ( A , B , C )&lt;br /&gt;
&lt;br /&gt;
LayoutCourRepeat=Array(&lt;br /&gt;
   numero de pasadas de A,&lt;br /&gt;
   numero de pasadas de B,&lt;br /&gt;
   numero de pasadas de C&lt;br /&gt;
)&lt;br /&gt;
&lt;br /&gt;
NOTA: El número total de pasadas ha de ser igual a la suma de pasadas de los bloques de repeticiones. Es decir:&lt;br /&gt;
NumCourses=LayoutCourRepeat(0)+...+LayoutCourRepeat(LayoutCourNLayouts-1)&lt;br /&gt;
&lt;br /&gt;
Luego para codificar que se desea 1 repetición de A, 6 repeticiones de B y una repeticion de C se haria de la siguiente manera:&lt;br /&gt;
&lt;br /&gt;
                         idx  |  LayoutCourWhich | LayoutCourTimes | Significado&lt;br /&gt;
                      --------+------------------+-----------------+------------------&lt;br /&gt;
                        _     |                  |                 |&lt;br /&gt;
                       /  0   |         1        |       1         | Bloque 1 (A) repetir una vez&lt;br /&gt;
                       |      |                  |                 |&lt;br /&gt;
                       |  1   |         2        |       6         | Bloque 2 (B) repetir 6 veces&lt;br /&gt;
                       |      |                  |                 |&lt;br /&gt;
                       |  2   |         3        |       1         | Bloque 3 (C) repetir una vez&lt;br /&gt;
LayoutCourNRepeats=6  &amp;lt;       |                  |                 |&lt;br /&gt;
                       |  3   |         1        |       1         | Bloque 1 (A) repetir una vez&lt;br /&gt;
                       |      |                  |                 |&lt;br /&gt;
                       |  4   |         2        |       6         | Bloque 2 (B) repetir 6 veces&lt;br /&gt;
                       |      |                  |                 |&lt;br /&gt;
                       \_ 5   |         3        |       1         | Bloque 3 (C) repetir una vez&lt;br /&gt;
                              |                  |                 |&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*LayoutJacqNRepeats int32&lt;br /&gt;
Numero de repeticiones de agujas. Solo afecta el jacquard. Sigue el mismo sistema que las repeticiones de pasadas.&lt;br /&gt;
&lt;br /&gt;
*LayoutJacqNLayouts int32&lt;br /&gt;
Numero de bloques de agujas a repetir&lt;br /&gt;
&lt;br /&gt;
*LayoutJacqRepeat int32(LayoutJacqNLayouts)&lt;br /&gt;
Numero de agujas que contiene cada bloque a repetir&lt;br /&gt;
&lt;br /&gt;
*LayoutJacqWhich int32(LayoutJacqNRepeats)&lt;br /&gt;
indice del bloque que a repetir&lt;br /&gt;
&lt;br /&gt;
*LayoutJacqTimes int32(LayoutJacqNRepeats)&lt;br /&gt;
numero de veces que se ha de repetir el bloque.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Pascual</name></author>
	</entry>
	<entry>
		<id>https://wiki.cadt.com/index.php?title=Drf-reader&amp;diff=2977</id>
		<title>Drf-reader</title>
		<link rel="alternate" type="text/html" href="https://wiki.cadt.com/index.php?title=Drf-reader&amp;diff=2977"/>
		<updated>2016-10-05T09:16:05Z</updated>

		<summary type="html">&lt;p&gt;Pascual: /* DLL_EXPORTS */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:SAPO]]&lt;br /&gt;
[[Category:Devel]]&lt;br /&gt;
&lt;br /&gt;
=== DLL_EXPORTS ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
void drf_clear_errors()&lt;br /&gt;
Descr:Borra todos los mensajes de error del almacenamiento interno de la librería dinámica.&lt;br /&gt;
&lt;br /&gt;
int drf_get_num_errors();&lt;br /&gt;
Descr:Obtiene el número de mensajes de error almacenados por la librería dinámica.&lt;br /&gt;
Return:número de mensajes almacenados.&lt;br /&gt;
&lt;br /&gt;
const char* drf_get_error(int idx)&lt;br /&gt;
Descr:Obtiene el mensaje de error indicado por idx (referenciado a 0).&lt;br /&gt;
p:idx: Número de mensaje a obtener. Rango entre: 0 y (drf_get_num_errors()-1) ambos incluidos.&lt;br /&gt;
Return: Éxito: Puntero a una cadena de caracteres ASCII terminada por el byte NUL (&#039;\0&#039;)&lt;br /&gt;
        Error: NULL en caso que el valor de idx esté fuera de rango.&lt;br /&gt;
&lt;br /&gt;
int drf_to_json(char *path,FILE *json,int options)&lt;br /&gt;
Descr:Serializa a JSON un archivo DRF.&lt;br /&gt;
p:path: Ruta al fichero DRF a serializar en formato Windows ANSI.&lt;br /&gt;
p:json: puntero FILE ya abierto y con la escritura habilitada.&lt;br /&gt;
p:options: Selecciona que información se serializará. Valores possibles:&lt;br /&gt;
   DRF_GET_GENERIC_INFO&lt;br /&gt;
   DRF_GET_MACHINE_INFO&lt;br /&gt;
   DRF_GET_DRAFT_INFO&lt;br /&gt;
   DRF_GET_ALL_INFO&lt;br /&gt;
&lt;br /&gt;
Return: Éxito : retorna valor igual a 0&lt;br /&gt;
        Error : retorna valor diferente de 0&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== TAGS ===&lt;br /&gt;
&lt;br /&gt;
Codificación a JSON de los datos:&lt;br /&gt;
&lt;br /&gt;
Internamente el DRF guarda la información como una lista de tags. cada tag puede contener uno o varios elementos del mismo tipo.&lt;br /&gt;
&lt;br /&gt;
Al codificar un DRF a JSON se codifica como un objeto. Donde se usa el nombre del tag como clave y el contenido de esta como valor.&lt;br /&gt;
En caso que el tag pueda contener mas de un valor, se serializa como vector.&lt;br /&gt;
&lt;br /&gt;
Como el DRF tiene mas tipos que el JSON estos se han de convertir a un tipo soportado por el JSON. La siguiente tabla muestra a que &lt;br /&gt;
tipo del JSON se convierte cada tipo del DRF &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    DRF  | JSON   &lt;br /&gt;
  -------+--------&lt;br /&gt;
  byte   | &lt;br /&gt;
  int16  | int&lt;br /&gt;
  int32  |&lt;br /&gt;
  -------+-------&lt;br /&gt;
  float  | float&lt;br /&gt;
  -------+-------&lt;br /&gt;
  string | string*&lt;br /&gt;
&lt;br /&gt;
*) Todos los strings contienen solo caracteres ASCII (encoding:ASCII-7)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== TAGS GENERIC INFO ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Software string&lt;br /&gt;
Nombre del programa que ha generado el fichero .DRF&lt;br /&gt;
&lt;br /&gt;
*DrawName string&lt;br /&gt;
Referencia del dibujo (max. 256 carac).&lt;br /&gt;
&lt;br /&gt;
*Company string&lt;br /&gt;
Compañía que ha creado el dibujo (max. 30 carac).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== TAGS MACHINE INFO ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Machine string&lt;br /&gt;
Referencia de la máquina. (max. 30 carac) &lt;br /&gt;
&lt;br /&gt;
*MachineType string&lt;br /&gt;
Modelo de la máquina. Sólo es válido un modelo definido en el sistema de diseño. (p.e. LEAVERS)&lt;br /&gt;
&lt;br /&gt;
*Description string&lt;br /&gt;
Descripción o información adicional de la máquina.&lt;br /&gt;
&lt;br /&gt;
*Serial string&lt;br /&gt;
Num. serie de la máquina. (max. 30 carac) . Puede contener carácteres no numéricos.&lt;br /&gt;
&lt;br /&gt;
*Version int32&lt;br /&gt;
Versión de la máquina raschel SU (versión 1 .. 4).&lt;br /&gt;
   versión 1 . Sin ahorrador de memoria&lt;br /&gt;
   versión 2 . Con ahorrador de memoria (repeticiones)&lt;br /&gt;
   versión 3 . Sin ahorrador de memoria + información empresa.&lt;br /&gt;
   versión 4 . Con ahorrador de memoria (repeciciones) + información empresa.&lt;br /&gt;
&lt;br /&gt;
*Jacquard int32&lt;br /&gt;
Número de barras de Jacquard independientes. Valores posibles: &lt;br /&gt;
   0 : No jacquard&lt;br /&gt;
   1 : 1 jacquard o fina barra simple&lt;br /&gt;
   2 : 2 jacquard raschel o fina barra doble.&lt;br /&gt;
&lt;br /&gt;
*Fronture int32&lt;br /&gt;
Número de fonturas de la máquina&lt;br /&gt;
   1 : 1 fontura&lt;br /&gt;
   2 : 2 fontures (delante / detrás)&lt;br /&gt;
&lt;br /&gt;
*BarsRepeat int32&lt;br /&gt;
Altura del diseño.&lt;br /&gt;
&lt;br /&gt;
*NumRepeats int32&lt;br /&gt;
Num de repeticiones en el diseño.&lt;br /&gt;
&lt;br /&gt;
*NumBars int32&lt;br /&gt;
Numero de barras que tiene el telar.&lt;br /&gt;
&lt;br /&gt;
*Plate int32&lt;br /&gt;
En máquinas raschel (textronic), indica la posición de la plancha.&lt;br /&gt;
En máquinas leavers indica donde empiezan los brodeurs.&lt;br /&gt;
&lt;br /&gt;
*JacqNeedles int32&lt;br /&gt;
Numero de agujas de Jacquard del telar.&lt;br /&gt;
&lt;br /&gt;
*MachNeedles int32&lt;br /&gt;
Numero total de agujas del telar.&lt;br /&gt;
&lt;br /&gt;
*BarsOffset int32&lt;br /&gt;
Desplazamiento de barras (orillos=zona perdida)&lt;br /&gt;
&lt;br /&gt;
*JacqOffset int32&lt;br /&gt;
Deplazamiento de las agujas de jacquard en el telar.&lt;br /&gt;
&lt;br /&gt;
*MaxDisp int32&lt;br /&gt;
Deplazamiento máximo general de las barras para máquinas raschel SU.&lt;br /&gt;
&lt;br /&gt;
*Proximity int32&lt;br /&gt;
Para máquinas raschel, distáncia máxima a la que se pueden acercar dos barras del mismo grupo.&lt;br /&gt;
&lt;br /&gt;
*ProximityCollindant int32&lt;br /&gt;
Para máquinas raschel, distáncia máxima a la que se pueden acercar dos barras del mismo grupo colindantes.&lt;br /&gt;
&lt;br /&gt;
*JacqRt int32&lt;br /&gt;
Deplazamiento Rt del jacquard:&lt;br /&gt;
&lt;br /&gt;
para máquinas raschel:&lt;br /&gt;
   no jacquard: rt = 0&lt;br /&gt;
   jacquard simple o doble: rt = 1&lt;br /&gt;
Indica cuántas agujas se desplaza la lectura del jacaquard en las pasadas alternadas.&lt;br /&gt;
&lt;br /&gt;
para máquinas leavers&lt;br /&gt;
   no fina barra:      0&lt;br /&gt;
   fina barra simple: -1&lt;br /&gt;
   fina barra doble:   0&lt;br /&gt;
Indica cuántas agujas se desplaza la lectura del jacquard (desde la posición derecha de la máquina en las pasadas alternadas).&lt;br /&gt;
&lt;br /&gt;
*JacqRtCourse int32&lt;br /&gt;
Indica que pasadas se aplica el valor JacqRt.&lt;br /&gt;
   0:pasadas pares&lt;br /&gt;
   1: pasadas impares&lt;br /&gt;
&lt;br /&gt;
*FinalGauge float&lt;br /&gt;
Galga de producto tejido aplicando encongimiento (medida en agujas/pulgada)&lt;br /&gt;
&lt;br /&gt;
*FinalQuality float&lt;br /&gt;
Calidad de producto tejido aplicando elasticidad (medida en pasadas/centímetro).&lt;br /&gt;
&lt;br /&gt;
*RealGauge float&lt;br /&gt;
Galga de máquina (medida en agujas/pulgada)-&lt;br /&gt;
&lt;br /&gt;
*RealQuality float&lt;br /&gt;
Calidad de máquina (medida en pasadas/centímetro).&lt;br /&gt;
&lt;br /&gt;
*Shrinkage float&lt;br /&gt;
Porcentage de encongimiento en agujas (0-100%)&lt;br /&gt;
&lt;br /&gt;
*Elasticity float&lt;br /&gt;
Porcentage de elasticidad en pasadas (0-100%)&lt;br /&gt;
&lt;br /&gt;
*BarNumBar int32(NumBars)&lt;br /&gt;
Numero de cada una de las barras del telar (valor numérico consecutivo)&lt;br /&gt;
&lt;br /&gt;
*BarName string(NumBars)&lt;br /&gt;
Nombre o identificador de cada una de las barras del telar&lt;br /&gt;
&lt;br /&gt;
*BarGroup int32(NumBars)&lt;br /&gt;
En máquinas raschel el número de grupo de la barra.&lt;br /&gt;
&lt;br /&gt;
*BarStop int32(NumBars)&lt;br /&gt;
Posición 0 de la barra.&lt;br /&gt;
&lt;br /&gt;
*BarUtil int32(NumBars)&lt;br /&gt;
Visibilidad de la barra en el sistema de diseño.&lt;br /&gt;
&lt;br /&gt;
*BarType int32(NumBars)&lt;br /&gt;
Tipo de hilo por defecto de la barra.&lt;br /&gt;
&lt;br /&gt;
*BarMaxGimp int32&lt;br /&gt;
Guimpada máxima en agujas de la barra.&lt;br /&gt;
&lt;br /&gt;
*BarDrive int32&lt;br /&gt;
En máquinas raschel SU, el número de getribe de la barra.&lt;br /&gt;
&lt;br /&gt;
*BarFactor int32&lt;br /&gt;
En máquinas raschel SU, multiplicador de la barra.&lt;br /&gt;
1: factor de 1 agulla&lt;br /&gt;
2: factor de 2 agulles,&lt;br /&gt;
4: factor de 4 agulles.&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*BarInvert int32&lt;br /&gt;
En máquinas raschel SU, les barres invertides. &lt;br /&gt;
1: barra invertida.&lt;br /&gt;
0: barra no invertida.&lt;br /&gt;
&lt;br /&gt;
*BarWork int32&lt;br /&gt;
Trabajo de la barra en el sistema de diseño.&lt;br /&gt;
&lt;br /&gt;
   0: Chainette&lt;br /&gt;
   1: Jacquard     [1]&lt;br /&gt;
   2: Brodeur&lt;br /&gt;
   3: Gros&lt;br /&gt;
   4: Fin&lt;br /&gt;
   5: Brillant&lt;br /&gt;
   6: Picot&lt;br /&gt;
   7: Corde&lt;br /&gt;
   8: Lycra&lt;br /&gt;
   9: Fond&lt;br /&gt;
  10: Bloc&lt;br /&gt;
  11: Cord&lt;br /&gt;
  12: Guimp&lt;br /&gt;
  13: Nul&lt;br /&gt;
  14: Jacq 0/2,6/4 [1]&lt;br /&gt;
  15: Jacq 0/2,8/6 [1]&lt;br /&gt;
  16: Fine Bar.  [sup]&lt;br /&gt;
  17: Braquette&amp;quot;&lt;br /&gt;
  18: Jacquard     [2]&lt;br /&gt;
  19: Jacq 0/2,6/4 [2]&lt;br /&gt;
  20: Jacq 0/2,8/6 [2]&lt;br /&gt;
  21: Fine Bar.  [inf]&lt;br /&gt;
  22: Jacquard&lt;br /&gt;
  23: Fine Barre&lt;br /&gt;
  24: Fallplate&lt;br /&gt;
  25: Embrodery&lt;br /&gt;
  26: EFS&lt;br /&gt;
  27: Reservé 1&lt;br /&gt;
  28: Reservé 2&lt;br /&gt;
  29: Jacq 0/2,6/4&lt;br /&gt;
  30: Jacq 0/2,8/6&lt;br /&gt;
  31: Bord&lt;br /&gt;
  32: Lisieres&lt;br /&gt;
  33: Romaines&lt;br /&gt;
  34: Sonnette&lt;br /&gt;
  35: Guimp devant&lt;br /&gt;
  36: Petite Corde&lt;br /&gt;
  37: Fileur&lt;br /&gt;
  38: Separation&lt;br /&gt;
  39: Corde Termo&lt;br /&gt;
  40: Solv rom&lt;br /&gt;
  41: Vis&lt;br /&gt;
  42: Jacquard     [3]&lt;br /&gt;
  43: Jacquard     [4]&lt;br /&gt;
  44: Space Fabric&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*BarKnit&lt;br /&gt;
En máquines raschel textronic tipous de lligada:&lt;br /&gt;
  0 : no planxa&lt;br /&gt;
  1 : lligada 1 (mecanica)&lt;br /&gt;
  2 : lligada 2 (binaria)&lt;br /&gt;
  3 : lligada 3 (mecánica (2))&lt;br /&gt;
  4 : lligada 4 (binària (2))&lt;br /&gt;
&lt;br /&gt;
*BarTimes&lt;br /&gt;
En máquines raschel textonic temps de la lligada&lt;br /&gt;
  0 : no planxa&lt;br /&gt;
  2 : temps 2 (p.e) 0202 0202 0202&lt;br /&gt;
  4 : temps 4 (p.e) 0220 0220 0220&lt;br /&gt;
&lt;br /&gt;
*BarMode&lt;br /&gt;
En máquines raschel textronic el mode la la barra:&lt;br /&gt;
  0 : mode A (p.e 0220)&lt;br /&gt;
  1 : mode B (p.e 2002)&lt;br /&gt;
&lt;br /&gt;
*BarModif int32&lt;br /&gt;
En máquines raschel textronic indica que la barra no es pot deslligar&lt;br /&gt;
  0 : no es pot deslligar&lt;br /&gt;
  1 : si es pot deslligar&lt;br /&gt;
&lt;br /&gt;
*BarTension int32&lt;br /&gt;
Tensió de la barra a les simulacions.&lt;br /&gt;
&lt;br /&gt;
*BarNumFingers int32(NumBars)&lt;br /&gt;
Número de pasadors de la barra&lt;br /&gt;
&lt;br /&gt;
*BarModeDrop int32(NumBars)&lt;br /&gt;
Ponderación de cada uno de los 7 bits que se usan para indicar el desplazamiento de la barra. Valores:&lt;br /&gt;
&lt;br /&gt;
 Valor | B7 | B6 | B5 | B4 | B3 | B2 | B1&lt;br /&gt;
 ------+----+----+----+----+----+----+----&lt;br /&gt;
    0  |  8 |  8 |  8 |  4 |  2 |  1 |1/2&lt;br /&gt;
 ------+----+----+----+----+----+----+----&lt;br /&gt;
    1  | 16 |  8 |  8 |  4 |  2 |  1 |1/2&lt;br /&gt;
 ------+----+----+----+----+----+----+----&lt;br /&gt;
    2  | 16 | 16 |  8 |  4 |  2 |  1 |1/2&lt;br /&gt;
 ------+----+----+----+----+----+----+----&lt;br /&gt;
    3  | 32 | 16 |  8 |  4 |  2 |  1 |1/2&lt;br /&gt;
 ------+----+----+----+----+----+----+----&lt;br /&gt;
    4  |  8 |  8 |  8 |  8 |  4 |  2 | 1&lt;br /&gt;
 ------+----+----+----+----+----+----+----&lt;br /&gt;
    5  | 16 |  8 |  8 |  8 |  4 |  2 | 1&lt;br /&gt;
 ------+----+----+----+----+----+----+----&lt;br /&gt;
    6  |  4 |  4 |  4 |  4 |  2 |  1 | 1&lt;br /&gt;
 ------+----+----+----+----+----+----+----&lt;br /&gt;
    7  |  0 |  0 |  0 |  1 |  2 |  1 |1/2&lt;br /&gt;
 ------+----+----+----+----+----+----+----&lt;br /&gt;
    8  |  4 |  4 |  4 |  4 |  2 |  1 |1/2&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*BarMaxDesp int32(NumBars)&lt;br /&gt;
Desplazamiento máximo de la barra en agujas&lt;br /&gt;
&lt;br /&gt;
*BarActive byte(NumBars)&lt;br /&gt;
Sólo para maquinas EL. Indica si la barra esta en uso o no.&lt;br /&gt;
&lt;br /&gt;
*BarHalvesUp byte(NumBars)&lt;br /&gt;
Si en la pasada se incrementa la posición de la barra en BarHalvesUp agujas o más, entonces , se añade media aguja a la posición final.&lt;br /&gt;
&lt;br /&gt;
*BarHalvesDn byte(NumBars)&lt;br /&gt;
Si en la pasada se decrementa la posición de la barra en BarHalvesDwn agujas o más, entonces , se le resta media aguja a la posición final.&lt;br /&gt;
&lt;br /&gt;
*BarString int32(NumBars)&lt;br /&gt;
Valors:&lt;br /&gt;
0:&lt;br /&gt;
1:ple&lt;br /&gt;
2:1f 1x&lt;br /&gt;
3:1x 1f&lt;br /&gt;
4:buit&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*BarFronture int32(NumBars)&lt;br /&gt;
Solo se usa en las máquinas de doble frontura. Da la frontura en la que empieza a trabajar la barra.Valores:&lt;br /&gt;
0: primera forntura&lt;br /&gt;
1: segunda frontura&lt;br /&gt;
&lt;br /&gt;
*BarDropsUtil int32(7*NumBars)&lt;br /&gt;
indica como se deben perforar los 7 posiciones correspondientes a la barra:&lt;br /&gt;
&lt;br /&gt;
Valor:&lt;br /&gt;
0: Usado. Siempre a 1. Es decir: no perforar nunca&lt;br /&gt;
1: Usado, Se perforara o no en funcion del desplazamiento de la barra&lt;br /&gt;
2: Usado. Siemre a 0. Es decir, se perfora siempre&lt;br /&gt;
3: No usado. No se perfora&lt;br /&gt;
&lt;br /&gt;
*FingerStop int32(num_fingers) num_fingers=BarNumFingers(0) + ... + BarNumFingers(NumBars-1)&lt;br /&gt;
Stop del pasador relativo al stop de la barra.&lt;br /&gt;
&lt;br /&gt;
*FingerType int32(num_fingers) num_fingers=BarNumFingers(0) + ... + BarNumFingers(NumBars-1)&lt;br /&gt;
Tipo de pasador.&lt;br /&gt;
&lt;br /&gt;
*CGF1Card int32&lt;br /&gt;
ha de estar a 0.&lt;br /&gt;
&lt;br /&gt;
*CGF1Type int32&lt;br /&gt;
Número de columnas útiles en el cartón.&lt;br /&gt;
&lt;br /&gt;
*CGF1Taille int32&lt;br /&gt;
Número de columnas totales que caben del cartón.&lt;br /&gt;
&lt;br /&gt;
*CGF1Numlines int32&lt;br /&gt;
numero de entradas de las que consta la especificación del cartón.&lt;br /&gt;
&lt;br /&gt;
*CGF1Script string(CGF1Numlines)&lt;br /&gt;
Lista de cadenas de caracteres que detallan como se ha de perforar  cada columna del cartón empezando por la columna de mas a la derecha.&lt;br /&gt;
Cada cadena de caracteres tiene el formato: &amp;lt;codigo de tipo&amp;gt; &amp;lt;espacio&amp;gt; &amp;lt;numero de repeticiones&amp;gt;. Ex: &amp;quot;LC 1&amp;quot;.&lt;br /&gt;
Los codigos de tipo validos son:&lt;br /&gt;
   LC: Laçage&lt;br /&gt;
   TC: Trou de centrage&lt;br /&gt;
   TS: Trou de centrage simple&lt;br /&gt;
   EL: Element vide&lt;br /&gt;
   GF: Gros fil&lt;br /&gt;
   VB: Value&lt;br /&gt;
&lt;br /&gt;
*CGF1Descrip string(CGF1Numlines)&lt;br /&gt;
Descripción de cada entada del cartón.&lt;br /&gt;
&lt;br /&gt;
Ex:&lt;br /&gt;
&lt;br /&gt;
  CGF1Script | CGF1Descrip&lt;br /&gt;
 ------------+--------------&lt;br /&gt;
   &amp;quot;LC 1&amp;quot;    |  &amp;quot;Laçage&amp;quot;&lt;br /&gt;
   &amp;quot;TC 1&amp;quot;    |  &amp;quot;Trou de centrage&amp;quot;&lt;br /&gt;
   &amp;quot;GF 6&amp;quot;    |  &amp;quot;braquettes&amp;quot;  &lt;br /&gt;
   &amp;quot;GF 4&amp;quot;    |  &amp;quot;stum&amp;quot;                                                                                                      &lt;br /&gt;
   &amp;quot;GF 30&amp;quot;   |  &amp;quot;guimpes&amp;quot;                                                                                                    &lt;br /&gt;
   &amp;quot;TC 1&amp;quot;    |  &amp;quot;Trou de centrage&amp;quot;                                                                                            &lt;br /&gt;
   &amp;quot;LC 1&amp;quot;    |  &amp;quot;Laçage&amp;quot;                                                                                                       &lt;br /&gt;
   &amp;quot;GF 26&amp;quot;   |  &amp;quot;guimpes&amp;quot;                                                                                                &lt;br /&gt;
   &amp;quot;GF 4&amp;quot;    |  &amp;quot;stum&amp;quot;                                                                                                   &lt;br /&gt;
   &amp;quot;GF 6&amp;quot;    |  &amp;quot;braquettes&amp;quot;                                                                                               &lt;br /&gt;
   &amp;quot;GF 3&amp;quot;    |  &amp;quot;brodeus&amp;quot;                                                                                                  &lt;br /&gt;
   &amp;quot;TC 1&amp;quot;    |  &amp;quot;Trou de centrage&amp;quot;                                                                                         &lt;br /&gt;
   &amp;quot;LC 1&amp;quot;    |  &amp;quot;Laçage&amp;quot;                                                                                                      &lt;br /&gt;
   &amp;quot;GF 39&amp;quot;   |  &amp;quot;brodeus&amp;quot;                                                                                                 &lt;br /&gt;
   &amp;quot;TC 1&amp;quot;    |  &amp;quot;Trou de centrage&amp;quot;                                                                                           &lt;br /&gt;
   &amp;quot;LC 1&amp;quot;    |  &amp;quot;Laçage&amp;quot;                                                                                                    &lt;br /&gt;
                                                                                                                           &lt;br /&gt;
                                                                                                                          &lt;br /&gt;
  L T                GF39                   L T G   GF6  GF4          GF26            L T               GF30           GF4  GF6  T L&lt;br /&gt;
  C C _____________________________________ C C F  ____  __  ________________________ C C ____________________________  __  ____ C C&lt;br /&gt;
  1 1/                                     \1 1/3\/    \/  \/                        \1 1/                            \/  \/    \1 1&lt;br /&gt;
/------------------------------------------------------------------------------------------------------------------------------------\&lt;br /&gt;
|    OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO.  OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO.  OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO    |&lt;br /&gt;
| O  .O.O.O.OOOOOOO.OOO.OOOOOO.O.O.OOOOOOOOOO  OOOOOOOOOOO..O..OO...O.OO.....O..O..OOOO  OO...O...OOO.OOOOO...O.....O..OO..OOOOOO  O |&lt;br /&gt;
|    OOOOO.OO.O...OOO..O..OO.OO.OOOO.O..OO.O.  OOOOOO...OOOO.O.OOOO..O.OO.OOO..O.O.O...  ..OOO.OO..O.OO....O.O..O.OOOOOOOOOOOO...    |&lt;br /&gt;
|  ().OO.OO...OOOOOOOO.OO...O.OOOO..OO....O..()O..OOOOOOOOOOO.O....OO..O..OOO..OO.O.O..()OO.....OOO...OO..OO.O.OOO.OO.OOOOOOOOOOO()  |&lt;br /&gt;
|    ........................................  ...............OO..OO..O.......O........  ...........O...O...O.O...O...O..........    |&lt;br /&gt;
| O  .O....OO.O.O....O.O.OOO..O.O.OO.O..OOO.O  ..O...........OOO.OOO.OOOOOOO.OOO.OOO.OO  OOOOOOOOOOOOOOOOOOOO.OOOOOOOOO..........  O |&lt;br /&gt;
|    O.OOOOOOO.O.OOOO.O.OOOOOO.O.OOOO.OO.OOO.  OOO..........OOOOOOOOOOOOOOOOOOOOOOOOOO.  OOOOOOOOOOOOOOOOOOOOOOOOOOOOOO..........    |&lt;br /&gt;
\------------------------------------------------------------------------------------------------------------------------------------/    &lt;br /&gt;
&lt;br /&gt;
*CGF2Card int32&lt;br /&gt;
ha de estar a 0.&lt;br /&gt;
&lt;br /&gt;
*CGF2Type int32&lt;br /&gt;
Número de columnas útiles en el cartón.&lt;br /&gt;
&lt;br /&gt;
*CGF2Taille int32&lt;br /&gt;
Número de columnas totales que caben del cartón.&lt;br /&gt;
&lt;br /&gt;
*CGF2Numlines int32&lt;br /&gt;
numero de entradas de las que consta la especificación del cartón.&lt;br /&gt;
&lt;br /&gt;
*CGF2Script string(CGF2Numlines)&lt;br /&gt;
Especificación del cartón. Formateado igual que CGF1Script.&lt;br /&gt;
&lt;br /&gt;
*CGF2Descrip string(CGF2Numlines)&lt;br /&gt;
Descripción de cada entada del cartón.&lt;br /&gt;
&lt;br /&gt;
*CFBCard int32&lt;br /&gt;
ha de estar a 1.&lt;br /&gt;
&lt;br /&gt;
*CFBType int32&lt;br /&gt;
Número de columnas útiles en el cartón.&lt;br /&gt;
&lt;br /&gt;
*CFBTaille int32&lt;br /&gt;
Número de columnas totales que caben del cartón multiplicadas por 8.Ex:&lt;br /&gt;
si el cartón tiene 75 columnas CFBTaille=75*8=600&lt;br /&gt;
&lt;br /&gt;
*CFBNumlines int32&lt;br /&gt;
numero de entradas de las que consta la especificación del cartón.&lt;br /&gt;
&lt;br /&gt;
*CFBScript string(CFBNumlines)&lt;br /&gt;
Especificación del cartón. Formateado igual que CGF1Script. Excepto que los tipos aceptados&lt;br /&gt;
son:&lt;br /&gt;
   LC: Laçage&lt;br /&gt;
   TC: Trou de centrage&lt;br /&gt;
   TS: Trou de centrage simple&lt;br /&gt;
   EL: Element vide&lt;br /&gt;
   FB: Fine barre&lt;br /&gt;
   VB: Value&lt;br /&gt;
&lt;br /&gt;
Es decir el tipo &amp;quot;GF&amp;quot; no existe para este tag y en su lugar hay el tipo &amp;quot;FB&amp;quot;&lt;br /&gt;
&lt;br /&gt;
*CFBDescrip string(CFBNumlines)&lt;br /&gt;
Descripción de cada entada del cartón.&lt;br /&gt;
&lt;br /&gt;
*CFBNGaits int32&lt;br /&gt;
Número de entradas para mapear las repeticiones de agujas de Fine Barre a los cartones en función de la repetición.&lt;br /&gt;
&lt;br /&gt;
*CFBGaitNRepeat int32(CFBNGaits)&lt;br /&gt;
Número de repetición a mapear&lt;br /&gt;
&lt;br /&gt;
*CFBGaitNBar int32(CFBNGaits)&lt;br /&gt;
Número de aguja a mapear&lt;br /&gt;
&lt;br /&gt;
*CFBGaitNGait int32(CFBNGaits)&lt;br /&gt;
Indice de agujero en el cartón&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== TAGS DRAFT DATA ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*NumCourses int32&lt;br /&gt;
Numero de pasadas del dibujo sin tener en cuenta las repeticiones.&lt;br /&gt;
&lt;br /&gt;
*BarNeedle int16(NumCourses*NumBars)&lt;br /&gt;
Despazamientos medidos en agujas de las barras en cada pasada. Ordenados de la siguiente manera:&lt;br /&gt;
&lt;br /&gt;
   BarNeedle(0)              Desplazamiento barra 1 en la primera pasada.&lt;br /&gt;
   BarNeedle(1)              Desplazamiento barra 1 en la segunda pasada.&lt;br /&gt;
   .&lt;br /&gt;
   .&lt;br /&gt;
   BarNeedle(NumCourses-1)   Desplazamiento barra 1 en la última pasada.&lt;br /&gt;
   BarNeedle(NumCourses)     Desplazamiento barra 2 en la primera pasada.&lt;br /&gt;
   .&lt;br /&gt;
   .&lt;br /&gt;
   BarNeedel(NumCourses*2-1) Desplazamiento barra 2 en la última pasada.&lt;br /&gt;
   BarNeedle(NumCourses)     Desplazamiento barra 3 en la primera pasada.&lt;br /&gt;
   .&lt;br /&gt;
&lt;br /&gt;
*BarNeedleB int16(NumCourses*NumBars)&lt;br /&gt;
Solo se utiliza en maquinas de doble frontura. Es equivalente a BarNeedle pero contiene la información&lt;br /&gt;
para la segunda frontura.&lt;br /&gt;
&lt;br /&gt;
*BarHalves int8(NumCourses*NumBars)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*BarKnitting int8(NumCourses*NumBars)&lt;br /&gt;
Valores:&lt;br /&gt;
 0 :&lt;br /&gt;
 1 :&lt;br /&gt;
 2 :&lt;br /&gt;
 3 :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*BarKnittingB int8(NumCourses*NumBars)&lt;br /&gt;
Solo se utiliza en maquinas de doble frontura. Es equivalente a BarKnitting pero contiene la información&lt;br /&gt;
para la segunda frontura.&lt;br /&gt;
&lt;br /&gt;
*Layout_JacqData byte(NumCourses*JacqNeedles*Jacquard)&lt;br /&gt;
Bits de Jacquard.Valores:&lt;br /&gt;
0: T&lt;br /&gt;
1: H&lt;br /&gt;
&lt;br /&gt;
*Layout_FrontureData byte(NumCourses*JacqNeedles*Jacquard)&lt;br /&gt;
Solo se utiliza en maquinas de doble frontura. Es equivalente a Layout_JacqData pero contiene la información&lt;br /&gt;
para la segunda frontura.&lt;br /&gt;
&lt;br /&gt;
*Layout_WBData byte(NumCourses*JacqNeedles*Jacquard)&lt;br /&gt;
Solo se utiliza en maquinas CLIPTRONIC . Contiene los datos para la barra de Embrodery(WB) en el mismo formato que&lt;br /&gt;
Layout_JacqData.&lt;br /&gt;
&lt;br /&gt;
*LayoutCourNRepeats int32&lt;br /&gt;
Numero de repeticiones de pasadas. Las repeticiones de pasadas afectan por igual las barras de dibujo y el jacquard.&lt;br /&gt;
&lt;br /&gt;
*LayoutCourNLayouts int32&lt;br /&gt;
Numero de bloques de pasadas a repetir&lt;br /&gt;
&lt;br /&gt;
*LayoutCourRepeat int32(LayoutCourNLayouts)&lt;br /&gt;
Numero de pasadas que contiene cada bloque a repetir&lt;br /&gt;
&lt;br /&gt;
*LayoutCourWhich int32(LayoutCourNRepeats)&lt;br /&gt;
indice del bloque que a repetir&lt;br /&gt;
&lt;br /&gt;
*LayoutCourTimes int32(LayoutCourNRepeats)&lt;br /&gt;
numero de veces que se ha de repetir el bloque. Ejemplo:&lt;br /&gt;
&lt;br /&gt;
Normalmente como los dibujos suelen ser bastante repetitivos, para ahorrar trabajo y memoria no se guardan todas las pasadas&lt;br /&gt;
del dibujo. En un dibujo como el siguiente :&lt;br /&gt;
&lt;br /&gt;
    +------------------------------------------------------------------------------------------+&lt;br /&gt;
    |  ,~.~._,~.~._,~.~._,~.~._,~.~._,~.~._,~.~.    ,~.~._,~.~._,~.~._,~.~._,~.~._,~.~._,~.~.  | &lt;br /&gt;
    | / O.O   O.O   O.O   O.O   O.O   O.O   O.O \  / O.O   O.O   O.O   O.O   O.O   O.O   O.O \ | &lt;br /&gt;
    |( O:@:O O:@:O O:@:O O:@:O O:@:O O:@:O O:@:O )( O:@:O O:@:O O:@:O O:@:O O:@:O O:@:O O:@:O )| &lt;br /&gt;
    | \ O&#039;O   O&#039;O   O&#039;O   O&#039;O   O&#039;O   O&#039;O   O&#039;O /  \ O&#039;O   O&#039;O   O&#039;O   O&#039;O   O&#039;O   O&#039;O   O&#039;O / | &lt;br /&gt;
    |  )   . ,   . ,   . ,   . ,   . ,   . ,   (    )   . ,   . ,   . ,   . ,   . ,   . ,   (  | &lt;br /&gt;
/\  | (  * -@- * -@- * -@- * -@- * -@- * -@- *  )  (  * -@- * -@- * -@- * -@- * -@- * -@- *  ) | &lt;br /&gt;
 A  |  )   &#039; `   &#039; `   &#039; `   &#039; `   &#039; `   &#039; `   (    )   &#039; `   &#039; `   &#039; `   &#039; `   &#039; `   &#039; `   (  | &lt;br /&gt;
 g  | / O.O   O.O   O.O   O.O   O.O   O.O   O.O \  / O.O   O.O   O.O   O.O   O.O   O.O   O.O \ | &lt;br /&gt;
 u  |( O:@:O O:@:O O:@:O O:@:O O:@:O O:@:O O:@:O )( O:@:O O:@:O O:@:O O:@:O O:@:O O:@:O O:@:O )| &lt;br /&gt;
 j  | \ O&#039;O   O&#039;O   O&#039;O   O&#039;O   O&#039;O   O&#039;O   O&#039;O /  \ O&#039;O   O&#039;O   O&#039;O   O&#039;O   O&#039;O   O&#039;O   O&#039;O / | &lt;br /&gt;
 a  |  ·~·~·^·~·~·^·~·~·^·~·~·^·~·~·^·~·~·^·~·~·    ·~·~·^·~·~·^·~·~·^·~·~·^·~·~·^·~·~·^·~·~·  | &lt;br /&gt;
 s  +------------------------------------------------------------------------------------------+&lt;br /&gt;
     Pasadas &amp;gt;&lt;br /&gt;
&lt;br /&gt;
Si se mira lo que hay guardado en el archivo se encontraría algo similar a :&lt;br /&gt;
                     &lt;br /&gt;
    +---------------+&lt;br /&gt;
    |  ,~.~._,~.~.  |&lt;br /&gt;
    | / O.O   O.O \ |&lt;br /&gt;
    |( O:@:O O:@:O )|&lt;br /&gt;
    | \ O&#039;O   O&#039;O / |&lt;br /&gt;
    |  )   . ,   (  |&lt;br /&gt;
/\  | (  * -@- *  ) | &lt;br /&gt;
 A  |  )   &#039; `   (  |&lt;br /&gt;
 g  | / O.O   O.O \ |&lt;br /&gt;
 u  |( O:@:O O:@:O )|&lt;br /&gt;
 j  | \ O&#039;O   O&#039;O / |&lt;br /&gt;
 a  |  ·~·~·^·~·~·  |&lt;br /&gt;
 s  +---------------+&lt;br /&gt;
     Pasadas &amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Esto pasa por que se ha guardado solo una vez cada bloque que se repite. En este caso los bloques que se han usado:&lt;br /&gt;
&lt;br /&gt;
     A      B        C&lt;br /&gt;
  +----+ +------+ +-----+&lt;br /&gt;
  |  ,~| |.~._,~| |.~.  | &lt;br /&gt;
  | / O| |.O   O| |.O \ | &lt;br /&gt;
  |( O:| |@:O O:| |@:O )| &lt;br /&gt;
  | \ O| |&#039;O   O| |&#039;O / | &lt;br /&gt;
  |  ) | |  . , | |  (  | &lt;br /&gt;
  | (  | |* -@- | |*  ) |&lt;br /&gt;
  |  ) | |  &#039; ` | |  (  | &lt;br /&gt;
  | / O| |.O   O| |.O \ | &lt;br /&gt;
  |( O:| |@:O O:| |@:O )|&lt;br /&gt;
  | \ O| |&#039;O   O| |&#039;O / |  &lt;br /&gt;
  |  ·~| |·~·^·~| |·~·  | &lt;br /&gt;
  +----+ +------+ +-----+&lt;br /&gt;
&lt;br /&gt;
Se puede ver con facilidad que la sequencia de bloques para obtener el dibujo es: A B B B B B B C A B B B B B B C&lt;br /&gt;
&lt;br /&gt;
LayoutCourNLayouts=3 pues hay tres bloques distintos ( A , B , C )&lt;br /&gt;
&lt;br /&gt;
LayoutCourRepeat=Array(&lt;br /&gt;
   numero de pasadas de A,&lt;br /&gt;
   numero de pasadas de B,&lt;br /&gt;
   numero de pasadas de C&lt;br /&gt;
)&lt;br /&gt;
&lt;br /&gt;
NOTA: El número total de pasadas ha de ser igual a la suma de pasadas de los bloques de repeticiones. Es decir:&lt;br /&gt;
NumCourses=LayoutCourRepeat(0)+...+LayoutCourRepeat(LayoutCourNLayouts-1)&lt;br /&gt;
&lt;br /&gt;
Luego para codificar que se desea 1 repetición de A, 6 repeticiones de B y una repeticion de C se haria de la siguiente manera:&lt;br /&gt;
&lt;br /&gt;
                         idx  |  LayoutCourWhich | LayoutCourTimes | Significado&lt;br /&gt;
                      --------+------------------+-----------------+------------------&lt;br /&gt;
                        _     |                  |                 |&lt;br /&gt;
                       /  0   |         1        |       1         | Bloque 1 (A) repetir una vez&lt;br /&gt;
                       |      |                  |                 |&lt;br /&gt;
                       |  1   |         2        |       6         | Bloque 2 (B) repetir 6 veces&lt;br /&gt;
                       |      |                  |                 |&lt;br /&gt;
                       |  2   |         3        |       1         | Bloque 3 (C) repetir una vez&lt;br /&gt;
LayoutCourNRepeats=6  &amp;lt;       |                  |                 |&lt;br /&gt;
                       |  3   |         1        |       1         | Bloque 1 (A) repetir una vez&lt;br /&gt;
                       |      |                  |                 |&lt;br /&gt;
                       |  4   |         2        |       6         | Bloque 2 (B) repetir 6 veces&lt;br /&gt;
                       |      |                  |                 |&lt;br /&gt;
                       \_ 5   |         3        |       1         | Bloque 3 (C) repetir una vez&lt;br /&gt;
                              |                  |                 |&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*LayoutJacqNRepeats int32&lt;br /&gt;
Numero de repeticiones de agujas. Solo afecta el jacquard. Sigue el mismo sistema que las repeticiones de pasadas.&lt;br /&gt;
&lt;br /&gt;
*LayoutJacqNLayouts int32&lt;br /&gt;
Numero de bloques de agujas a repetir&lt;br /&gt;
&lt;br /&gt;
*LayoutJacqRepeat int32(LayoutJacqNLayouts)&lt;br /&gt;
Numero de agujas que contiene cada bloque a repetir&lt;br /&gt;
&lt;br /&gt;
*LayoutJacqWhich int32(LayoutJacqNRepeats)&lt;br /&gt;
indice del bloque que a repetir&lt;br /&gt;
&lt;br /&gt;
*LayoutJacqTimes int32(LayoutJacqNRepeats)&lt;br /&gt;
numero de veces que se ha de repetir el bloque.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Pascual</name></author>
	</entry>
	<entry>
		<id>https://wiki.cadt.com/index.php?title=Drf-reader&amp;diff=2976</id>
		<title>Drf-reader</title>
		<link rel="alternate" type="text/html" href="https://wiki.cadt.com/index.php?title=Drf-reader&amp;diff=2976"/>
		<updated>2016-10-05T09:15:52Z</updated>

		<summary type="html">&lt;p&gt;Pascual: /* DLL_EXPORTS */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:SAPO]]&lt;br /&gt;
[[Category:Devel]]&lt;br /&gt;
&lt;br /&gt;
=== DLL_EXPORTS ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
void drf_clear_errors()&lt;br /&gt;
Descr:Borra todos los mensajes de error del almacenamiento interno de la librería dinámica.&lt;br /&gt;
&lt;br /&gt;
int drf_get_num_errors();&lt;br /&gt;
Descr:Obtiene el número de mensajes de error almacenados por la librería dinámica.&lt;br /&gt;
Return:número de mensajes almacenados.&lt;br /&gt;
&lt;br /&gt;
const char* drf_get_error(int idx)&lt;br /&gt;
Descr:Obtiene el mensaje de error indicado por idx (referenciado a 0).&lt;br /&gt;
p:idx: Número de mensaje a obtener. Rango entre: 0 y (drf_get_num_errors()-1) ambos incluidos.&lt;br /&gt;
Return: Éxito: Puntero a una cadena de caracteres ASCII terminada por el byte NUL (&#039;\0&#039;)&lt;br /&gt;
        Error: NULL en caso que el valor de idx esté fuera de rango.&lt;br /&gt;
&lt;br /&gt;
int drf_to_json(char *path,FILE *json,int options)&lt;br /&gt;
Descr:Serializa a JSON un archivo DRF.&lt;br /&gt;
p:path: Ruta al fichero DRF a serializar en formato Windows ANSI.&lt;br /&gt;
p:json: puntero FILE ya abierto y con la escritura habilitada.&lt;br /&gt;
p:options: Selecciona que información se serializará. Valores possibles:&lt;br /&gt;
   DRF_GET_GENERIC_INFO&lt;br /&gt;
   DRF_GET_MACHINE_INFO&lt;br /&gt;
   DRF_GET_DRAFT_INFO&lt;br /&gt;
   DRF_GET_ALL_INFO&lt;br /&gt;
&lt;br /&gt;
Return: Éxito : retorna valor igual a 0&lt;br /&gt;
        Error : retorna valor diference de 0&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== TAGS ===&lt;br /&gt;
&lt;br /&gt;
Codificación a JSON de los datos:&lt;br /&gt;
&lt;br /&gt;
Internamente el DRF guarda la información como una lista de tags. cada tag puede contener uno o varios elementos del mismo tipo.&lt;br /&gt;
&lt;br /&gt;
Al codificar un DRF a JSON se codifica como un objeto. Donde se usa el nombre del tag como clave y el contenido de esta como valor.&lt;br /&gt;
En caso que el tag pueda contener mas de un valor, se serializa como vector.&lt;br /&gt;
&lt;br /&gt;
Como el DRF tiene mas tipos que el JSON estos se han de convertir a un tipo soportado por el JSON. La siguiente tabla muestra a que &lt;br /&gt;
tipo del JSON se convierte cada tipo del DRF &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    DRF  | JSON   &lt;br /&gt;
  -------+--------&lt;br /&gt;
  byte   | &lt;br /&gt;
  int16  | int&lt;br /&gt;
  int32  |&lt;br /&gt;
  -------+-------&lt;br /&gt;
  float  | float&lt;br /&gt;
  -------+-------&lt;br /&gt;
  string | string*&lt;br /&gt;
&lt;br /&gt;
*) Todos los strings contienen solo caracteres ASCII (encoding:ASCII-7)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== TAGS GENERIC INFO ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Software string&lt;br /&gt;
Nombre del programa que ha generado el fichero .DRF&lt;br /&gt;
&lt;br /&gt;
*DrawName string&lt;br /&gt;
Referencia del dibujo (max. 256 carac).&lt;br /&gt;
&lt;br /&gt;
*Company string&lt;br /&gt;
Compañía que ha creado el dibujo (max. 30 carac).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== TAGS MACHINE INFO ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Machine string&lt;br /&gt;
Referencia de la máquina. (max. 30 carac) &lt;br /&gt;
&lt;br /&gt;
*MachineType string&lt;br /&gt;
Modelo de la máquina. Sólo es válido un modelo definido en el sistema de diseño. (p.e. LEAVERS)&lt;br /&gt;
&lt;br /&gt;
*Description string&lt;br /&gt;
Descripción o información adicional de la máquina.&lt;br /&gt;
&lt;br /&gt;
*Serial string&lt;br /&gt;
Num. serie de la máquina. (max. 30 carac) . Puede contener carácteres no numéricos.&lt;br /&gt;
&lt;br /&gt;
*Version int32&lt;br /&gt;
Versión de la máquina raschel SU (versión 1 .. 4).&lt;br /&gt;
   versión 1 . Sin ahorrador de memoria&lt;br /&gt;
   versión 2 . Con ahorrador de memoria (repeticiones)&lt;br /&gt;
   versión 3 . Sin ahorrador de memoria + información empresa.&lt;br /&gt;
   versión 4 . Con ahorrador de memoria (repeciciones) + información empresa.&lt;br /&gt;
&lt;br /&gt;
*Jacquard int32&lt;br /&gt;
Número de barras de Jacquard independientes. Valores posibles: &lt;br /&gt;
   0 : No jacquard&lt;br /&gt;
   1 : 1 jacquard o fina barra simple&lt;br /&gt;
   2 : 2 jacquard raschel o fina barra doble.&lt;br /&gt;
&lt;br /&gt;
*Fronture int32&lt;br /&gt;
Número de fonturas de la máquina&lt;br /&gt;
   1 : 1 fontura&lt;br /&gt;
   2 : 2 fontures (delante / detrás)&lt;br /&gt;
&lt;br /&gt;
*BarsRepeat int32&lt;br /&gt;
Altura del diseño.&lt;br /&gt;
&lt;br /&gt;
*NumRepeats int32&lt;br /&gt;
Num de repeticiones en el diseño.&lt;br /&gt;
&lt;br /&gt;
*NumBars int32&lt;br /&gt;
Numero de barras que tiene el telar.&lt;br /&gt;
&lt;br /&gt;
*Plate int32&lt;br /&gt;
En máquinas raschel (textronic), indica la posición de la plancha.&lt;br /&gt;
En máquinas leavers indica donde empiezan los brodeurs.&lt;br /&gt;
&lt;br /&gt;
*JacqNeedles int32&lt;br /&gt;
Numero de agujas de Jacquard del telar.&lt;br /&gt;
&lt;br /&gt;
*MachNeedles int32&lt;br /&gt;
Numero total de agujas del telar.&lt;br /&gt;
&lt;br /&gt;
*BarsOffset int32&lt;br /&gt;
Desplazamiento de barras (orillos=zona perdida)&lt;br /&gt;
&lt;br /&gt;
*JacqOffset int32&lt;br /&gt;
Deplazamiento de las agujas de jacquard en el telar.&lt;br /&gt;
&lt;br /&gt;
*MaxDisp int32&lt;br /&gt;
Deplazamiento máximo general de las barras para máquinas raschel SU.&lt;br /&gt;
&lt;br /&gt;
*Proximity int32&lt;br /&gt;
Para máquinas raschel, distáncia máxima a la que se pueden acercar dos barras del mismo grupo.&lt;br /&gt;
&lt;br /&gt;
*ProximityCollindant int32&lt;br /&gt;
Para máquinas raschel, distáncia máxima a la que se pueden acercar dos barras del mismo grupo colindantes.&lt;br /&gt;
&lt;br /&gt;
*JacqRt int32&lt;br /&gt;
Deplazamiento Rt del jacquard:&lt;br /&gt;
&lt;br /&gt;
para máquinas raschel:&lt;br /&gt;
   no jacquard: rt = 0&lt;br /&gt;
   jacquard simple o doble: rt = 1&lt;br /&gt;
Indica cuántas agujas se desplaza la lectura del jacaquard en las pasadas alternadas.&lt;br /&gt;
&lt;br /&gt;
para máquinas leavers&lt;br /&gt;
   no fina barra:      0&lt;br /&gt;
   fina barra simple: -1&lt;br /&gt;
   fina barra doble:   0&lt;br /&gt;
Indica cuántas agujas se desplaza la lectura del jacquard (desde la posición derecha de la máquina en las pasadas alternadas).&lt;br /&gt;
&lt;br /&gt;
*JacqRtCourse int32&lt;br /&gt;
Indica que pasadas se aplica el valor JacqRt.&lt;br /&gt;
   0:pasadas pares&lt;br /&gt;
   1: pasadas impares&lt;br /&gt;
&lt;br /&gt;
*FinalGauge float&lt;br /&gt;
Galga de producto tejido aplicando encongimiento (medida en agujas/pulgada)&lt;br /&gt;
&lt;br /&gt;
*FinalQuality float&lt;br /&gt;
Calidad de producto tejido aplicando elasticidad (medida en pasadas/centímetro).&lt;br /&gt;
&lt;br /&gt;
*RealGauge float&lt;br /&gt;
Galga de máquina (medida en agujas/pulgada)-&lt;br /&gt;
&lt;br /&gt;
*RealQuality float&lt;br /&gt;
Calidad de máquina (medida en pasadas/centímetro).&lt;br /&gt;
&lt;br /&gt;
*Shrinkage float&lt;br /&gt;
Porcentage de encongimiento en agujas (0-100%)&lt;br /&gt;
&lt;br /&gt;
*Elasticity float&lt;br /&gt;
Porcentage de elasticidad en pasadas (0-100%)&lt;br /&gt;
&lt;br /&gt;
*BarNumBar int32(NumBars)&lt;br /&gt;
Numero de cada una de las barras del telar (valor numérico consecutivo)&lt;br /&gt;
&lt;br /&gt;
*BarName string(NumBars)&lt;br /&gt;
Nombre o identificador de cada una de las barras del telar&lt;br /&gt;
&lt;br /&gt;
*BarGroup int32(NumBars)&lt;br /&gt;
En máquinas raschel el número de grupo de la barra.&lt;br /&gt;
&lt;br /&gt;
*BarStop int32(NumBars)&lt;br /&gt;
Posición 0 de la barra.&lt;br /&gt;
&lt;br /&gt;
*BarUtil int32(NumBars)&lt;br /&gt;
Visibilidad de la barra en el sistema de diseño.&lt;br /&gt;
&lt;br /&gt;
*BarType int32(NumBars)&lt;br /&gt;
Tipo de hilo por defecto de la barra.&lt;br /&gt;
&lt;br /&gt;
*BarMaxGimp int32&lt;br /&gt;
Guimpada máxima en agujas de la barra.&lt;br /&gt;
&lt;br /&gt;
*BarDrive int32&lt;br /&gt;
En máquinas raschel SU, el número de getribe de la barra.&lt;br /&gt;
&lt;br /&gt;
*BarFactor int32&lt;br /&gt;
En máquinas raschel SU, multiplicador de la barra.&lt;br /&gt;
1: factor de 1 agulla&lt;br /&gt;
2: factor de 2 agulles,&lt;br /&gt;
4: factor de 4 agulles.&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*BarInvert int32&lt;br /&gt;
En máquinas raschel SU, les barres invertides. &lt;br /&gt;
1: barra invertida.&lt;br /&gt;
0: barra no invertida.&lt;br /&gt;
&lt;br /&gt;
*BarWork int32&lt;br /&gt;
Trabajo de la barra en el sistema de diseño.&lt;br /&gt;
&lt;br /&gt;
   0: Chainette&lt;br /&gt;
   1: Jacquard     [1]&lt;br /&gt;
   2: Brodeur&lt;br /&gt;
   3: Gros&lt;br /&gt;
   4: Fin&lt;br /&gt;
   5: Brillant&lt;br /&gt;
   6: Picot&lt;br /&gt;
   7: Corde&lt;br /&gt;
   8: Lycra&lt;br /&gt;
   9: Fond&lt;br /&gt;
  10: Bloc&lt;br /&gt;
  11: Cord&lt;br /&gt;
  12: Guimp&lt;br /&gt;
  13: Nul&lt;br /&gt;
  14: Jacq 0/2,6/4 [1]&lt;br /&gt;
  15: Jacq 0/2,8/6 [1]&lt;br /&gt;
  16: Fine Bar.  [sup]&lt;br /&gt;
  17: Braquette&amp;quot;&lt;br /&gt;
  18: Jacquard     [2]&lt;br /&gt;
  19: Jacq 0/2,6/4 [2]&lt;br /&gt;
  20: Jacq 0/2,8/6 [2]&lt;br /&gt;
  21: Fine Bar.  [inf]&lt;br /&gt;
  22: Jacquard&lt;br /&gt;
  23: Fine Barre&lt;br /&gt;
  24: Fallplate&lt;br /&gt;
  25: Embrodery&lt;br /&gt;
  26: EFS&lt;br /&gt;
  27: Reservé 1&lt;br /&gt;
  28: Reservé 2&lt;br /&gt;
  29: Jacq 0/2,6/4&lt;br /&gt;
  30: Jacq 0/2,8/6&lt;br /&gt;
  31: Bord&lt;br /&gt;
  32: Lisieres&lt;br /&gt;
  33: Romaines&lt;br /&gt;
  34: Sonnette&lt;br /&gt;
  35: Guimp devant&lt;br /&gt;
  36: Petite Corde&lt;br /&gt;
  37: Fileur&lt;br /&gt;
  38: Separation&lt;br /&gt;
  39: Corde Termo&lt;br /&gt;
  40: Solv rom&lt;br /&gt;
  41: Vis&lt;br /&gt;
  42: Jacquard     [3]&lt;br /&gt;
  43: Jacquard     [4]&lt;br /&gt;
  44: Space Fabric&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*BarKnit&lt;br /&gt;
En máquines raschel textronic tipous de lligada:&lt;br /&gt;
  0 : no planxa&lt;br /&gt;
  1 : lligada 1 (mecanica)&lt;br /&gt;
  2 : lligada 2 (binaria)&lt;br /&gt;
  3 : lligada 3 (mecánica (2))&lt;br /&gt;
  4 : lligada 4 (binària (2))&lt;br /&gt;
&lt;br /&gt;
*BarTimes&lt;br /&gt;
En máquines raschel textonic temps de la lligada&lt;br /&gt;
  0 : no planxa&lt;br /&gt;
  2 : temps 2 (p.e) 0202 0202 0202&lt;br /&gt;
  4 : temps 4 (p.e) 0220 0220 0220&lt;br /&gt;
&lt;br /&gt;
*BarMode&lt;br /&gt;
En máquines raschel textronic el mode la la barra:&lt;br /&gt;
  0 : mode A (p.e 0220)&lt;br /&gt;
  1 : mode B (p.e 2002)&lt;br /&gt;
&lt;br /&gt;
*BarModif int32&lt;br /&gt;
En máquines raschel textronic indica que la barra no es pot deslligar&lt;br /&gt;
  0 : no es pot deslligar&lt;br /&gt;
  1 : si es pot deslligar&lt;br /&gt;
&lt;br /&gt;
*BarTension int32&lt;br /&gt;
Tensió de la barra a les simulacions.&lt;br /&gt;
&lt;br /&gt;
*BarNumFingers int32(NumBars)&lt;br /&gt;
Número de pasadors de la barra&lt;br /&gt;
&lt;br /&gt;
*BarModeDrop int32(NumBars)&lt;br /&gt;
Ponderación de cada uno de los 7 bits que se usan para indicar el desplazamiento de la barra. Valores:&lt;br /&gt;
&lt;br /&gt;
 Valor | B7 | B6 | B5 | B4 | B3 | B2 | B1&lt;br /&gt;
 ------+----+----+----+----+----+----+----&lt;br /&gt;
    0  |  8 |  8 |  8 |  4 |  2 |  1 |1/2&lt;br /&gt;
 ------+----+----+----+----+----+----+----&lt;br /&gt;
    1  | 16 |  8 |  8 |  4 |  2 |  1 |1/2&lt;br /&gt;
 ------+----+----+----+----+----+----+----&lt;br /&gt;
    2  | 16 | 16 |  8 |  4 |  2 |  1 |1/2&lt;br /&gt;
 ------+----+----+----+----+----+----+----&lt;br /&gt;
    3  | 32 | 16 |  8 |  4 |  2 |  1 |1/2&lt;br /&gt;
 ------+----+----+----+----+----+----+----&lt;br /&gt;
    4  |  8 |  8 |  8 |  8 |  4 |  2 | 1&lt;br /&gt;
 ------+----+----+----+----+----+----+----&lt;br /&gt;
    5  | 16 |  8 |  8 |  8 |  4 |  2 | 1&lt;br /&gt;
 ------+----+----+----+----+----+----+----&lt;br /&gt;
    6  |  4 |  4 |  4 |  4 |  2 |  1 | 1&lt;br /&gt;
 ------+----+----+----+----+----+----+----&lt;br /&gt;
    7  |  0 |  0 |  0 |  1 |  2 |  1 |1/2&lt;br /&gt;
 ------+----+----+----+----+----+----+----&lt;br /&gt;
    8  |  4 |  4 |  4 |  4 |  2 |  1 |1/2&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*BarMaxDesp int32(NumBars)&lt;br /&gt;
Desplazamiento máximo de la barra en agujas&lt;br /&gt;
&lt;br /&gt;
*BarActive byte(NumBars)&lt;br /&gt;
Sólo para maquinas EL. Indica si la barra esta en uso o no.&lt;br /&gt;
&lt;br /&gt;
*BarHalvesUp byte(NumBars)&lt;br /&gt;
Si en la pasada se incrementa la posición de la barra en BarHalvesUp agujas o más, entonces , se añade media aguja a la posición final.&lt;br /&gt;
&lt;br /&gt;
*BarHalvesDn byte(NumBars)&lt;br /&gt;
Si en la pasada se decrementa la posición de la barra en BarHalvesDwn agujas o más, entonces , se le resta media aguja a la posición final.&lt;br /&gt;
&lt;br /&gt;
*BarString int32(NumBars)&lt;br /&gt;
Valors:&lt;br /&gt;
0:&lt;br /&gt;
1:ple&lt;br /&gt;
2:1f 1x&lt;br /&gt;
3:1x 1f&lt;br /&gt;
4:buit&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*BarFronture int32(NumBars)&lt;br /&gt;
Solo se usa en las máquinas de doble frontura. Da la frontura en la que empieza a trabajar la barra.Valores:&lt;br /&gt;
0: primera forntura&lt;br /&gt;
1: segunda frontura&lt;br /&gt;
&lt;br /&gt;
*BarDropsUtil int32(7*NumBars)&lt;br /&gt;
indica como se deben perforar los 7 posiciones correspondientes a la barra:&lt;br /&gt;
&lt;br /&gt;
Valor:&lt;br /&gt;
0: Usado. Siempre a 1. Es decir: no perforar nunca&lt;br /&gt;
1: Usado, Se perforara o no en funcion del desplazamiento de la barra&lt;br /&gt;
2: Usado. Siemre a 0. Es decir, se perfora siempre&lt;br /&gt;
3: No usado. No se perfora&lt;br /&gt;
&lt;br /&gt;
*FingerStop int32(num_fingers) num_fingers=BarNumFingers(0) + ... + BarNumFingers(NumBars-1)&lt;br /&gt;
Stop del pasador relativo al stop de la barra.&lt;br /&gt;
&lt;br /&gt;
*FingerType int32(num_fingers) num_fingers=BarNumFingers(0) + ... + BarNumFingers(NumBars-1)&lt;br /&gt;
Tipo de pasador.&lt;br /&gt;
&lt;br /&gt;
*CGF1Card int32&lt;br /&gt;
ha de estar a 0.&lt;br /&gt;
&lt;br /&gt;
*CGF1Type int32&lt;br /&gt;
Número de columnas útiles en el cartón.&lt;br /&gt;
&lt;br /&gt;
*CGF1Taille int32&lt;br /&gt;
Número de columnas totales que caben del cartón.&lt;br /&gt;
&lt;br /&gt;
*CGF1Numlines int32&lt;br /&gt;
numero de entradas de las que consta la especificación del cartón.&lt;br /&gt;
&lt;br /&gt;
*CGF1Script string(CGF1Numlines)&lt;br /&gt;
Lista de cadenas de caracteres que detallan como se ha de perforar  cada columna del cartón empezando por la columna de mas a la derecha.&lt;br /&gt;
Cada cadena de caracteres tiene el formato: &amp;lt;codigo de tipo&amp;gt; &amp;lt;espacio&amp;gt; &amp;lt;numero de repeticiones&amp;gt;. Ex: &amp;quot;LC 1&amp;quot;.&lt;br /&gt;
Los codigos de tipo validos son:&lt;br /&gt;
   LC: Laçage&lt;br /&gt;
   TC: Trou de centrage&lt;br /&gt;
   TS: Trou de centrage simple&lt;br /&gt;
   EL: Element vide&lt;br /&gt;
   GF: Gros fil&lt;br /&gt;
   VB: Value&lt;br /&gt;
&lt;br /&gt;
*CGF1Descrip string(CGF1Numlines)&lt;br /&gt;
Descripción de cada entada del cartón.&lt;br /&gt;
&lt;br /&gt;
Ex:&lt;br /&gt;
&lt;br /&gt;
  CGF1Script | CGF1Descrip&lt;br /&gt;
 ------------+--------------&lt;br /&gt;
   &amp;quot;LC 1&amp;quot;    |  &amp;quot;Laçage&amp;quot;&lt;br /&gt;
   &amp;quot;TC 1&amp;quot;    |  &amp;quot;Trou de centrage&amp;quot;&lt;br /&gt;
   &amp;quot;GF 6&amp;quot;    |  &amp;quot;braquettes&amp;quot;  &lt;br /&gt;
   &amp;quot;GF 4&amp;quot;    |  &amp;quot;stum&amp;quot;                                                                                                      &lt;br /&gt;
   &amp;quot;GF 30&amp;quot;   |  &amp;quot;guimpes&amp;quot;                                                                                                    &lt;br /&gt;
   &amp;quot;TC 1&amp;quot;    |  &amp;quot;Trou de centrage&amp;quot;                                                                                            &lt;br /&gt;
   &amp;quot;LC 1&amp;quot;    |  &amp;quot;Laçage&amp;quot;                                                                                                       &lt;br /&gt;
   &amp;quot;GF 26&amp;quot;   |  &amp;quot;guimpes&amp;quot;                                                                                                &lt;br /&gt;
   &amp;quot;GF 4&amp;quot;    |  &amp;quot;stum&amp;quot;                                                                                                   &lt;br /&gt;
   &amp;quot;GF 6&amp;quot;    |  &amp;quot;braquettes&amp;quot;                                                                                               &lt;br /&gt;
   &amp;quot;GF 3&amp;quot;    |  &amp;quot;brodeus&amp;quot;                                                                                                  &lt;br /&gt;
   &amp;quot;TC 1&amp;quot;    |  &amp;quot;Trou de centrage&amp;quot;                                                                                         &lt;br /&gt;
   &amp;quot;LC 1&amp;quot;    |  &amp;quot;Laçage&amp;quot;                                                                                                      &lt;br /&gt;
   &amp;quot;GF 39&amp;quot;   |  &amp;quot;brodeus&amp;quot;                                                                                                 &lt;br /&gt;
   &amp;quot;TC 1&amp;quot;    |  &amp;quot;Trou de centrage&amp;quot;                                                                                           &lt;br /&gt;
   &amp;quot;LC 1&amp;quot;    |  &amp;quot;Laçage&amp;quot;                                                                                                    &lt;br /&gt;
                                                                                                                           &lt;br /&gt;
                                                                                                                          &lt;br /&gt;
  L T                GF39                   L T G   GF6  GF4          GF26            L T               GF30           GF4  GF6  T L&lt;br /&gt;
  C C _____________________________________ C C F  ____  __  ________________________ C C ____________________________  __  ____ C C&lt;br /&gt;
  1 1/                                     \1 1/3\/    \/  \/                        \1 1/                            \/  \/    \1 1&lt;br /&gt;
/------------------------------------------------------------------------------------------------------------------------------------\&lt;br /&gt;
|    OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO.  OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO.  OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO    |&lt;br /&gt;
| O  .O.O.O.OOOOOOO.OOO.OOOOOO.O.O.OOOOOOOOOO  OOOOOOOOOOO..O..OO...O.OO.....O..O..OOOO  OO...O...OOO.OOOOO...O.....O..OO..OOOOOO  O |&lt;br /&gt;
|    OOOOO.OO.O...OOO..O..OO.OO.OOOO.O..OO.O.  OOOOOO...OOOO.O.OOOO..O.OO.OOO..O.O.O...  ..OOO.OO..O.OO....O.O..O.OOOOOOOOOOOO...    |&lt;br /&gt;
|  ().OO.OO...OOOOOOOO.OO...O.OOOO..OO....O..()O..OOOOOOOOOOO.O....OO..O..OOO..OO.O.O..()OO.....OOO...OO..OO.O.OOO.OO.OOOOOOOOOOO()  |&lt;br /&gt;
|    ........................................  ...............OO..OO..O.......O........  ...........O...O...O.O...O...O..........    |&lt;br /&gt;
| O  .O....OO.O.O....O.O.OOO..O.O.OO.O..OOO.O  ..O...........OOO.OOO.OOOOOOO.OOO.OOO.OO  OOOOOOOOOOOOOOOOOOOO.OOOOOOOOO..........  O |&lt;br /&gt;
|    O.OOOOOOO.O.OOOO.O.OOOOOO.O.OOOO.OO.OOO.  OOO..........OOOOOOOOOOOOOOOOOOOOOOOOOO.  OOOOOOOOOOOOOOOOOOOOOOOOOOOOOO..........    |&lt;br /&gt;
\------------------------------------------------------------------------------------------------------------------------------------/    &lt;br /&gt;
&lt;br /&gt;
*CGF2Card int32&lt;br /&gt;
ha de estar a 0.&lt;br /&gt;
&lt;br /&gt;
*CGF2Type int32&lt;br /&gt;
Número de columnas útiles en el cartón.&lt;br /&gt;
&lt;br /&gt;
*CGF2Taille int32&lt;br /&gt;
Número de columnas totales que caben del cartón.&lt;br /&gt;
&lt;br /&gt;
*CGF2Numlines int32&lt;br /&gt;
numero de entradas de las que consta la especificación del cartón.&lt;br /&gt;
&lt;br /&gt;
*CGF2Script string(CGF2Numlines)&lt;br /&gt;
Especificación del cartón. Formateado igual que CGF1Script.&lt;br /&gt;
&lt;br /&gt;
*CGF2Descrip string(CGF2Numlines)&lt;br /&gt;
Descripción de cada entada del cartón.&lt;br /&gt;
&lt;br /&gt;
*CFBCard int32&lt;br /&gt;
ha de estar a 1.&lt;br /&gt;
&lt;br /&gt;
*CFBType int32&lt;br /&gt;
Número de columnas útiles en el cartón.&lt;br /&gt;
&lt;br /&gt;
*CFBTaille int32&lt;br /&gt;
Número de columnas totales que caben del cartón multiplicadas por 8.Ex:&lt;br /&gt;
si el cartón tiene 75 columnas CFBTaille=75*8=600&lt;br /&gt;
&lt;br /&gt;
*CFBNumlines int32&lt;br /&gt;
numero de entradas de las que consta la especificación del cartón.&lt;br /&gt;
&lt;br /&gt;
*CFBScript string(CFBNumlines)&lt;br /&gt;
Especificación del cartón. Formateado igual que CGF1Script. Excepto que los tipos aceptados&lt;br /&gt;
son:&lt;br /&gt;
   LC: Laçage&lt;br /&gt;
   TC: Trou de centrage&lt;br /&gt;
   TS: Trou de centrage simple&lt;br /&gt;
   EL: Element vide&lt;br /&gt;
   FB: Fine barre&lt;br /&gt;
   VB: Value&lt;br /&gt;
&lt;br /&gt;
Es decir el tipo &amp;quot;GF&amp;quot; no existe para este tag y en su lugar hay el tipo &amp;quot;FB&amp;quot;&lt;br /&gt;
&lt;br /&gt;
*CFBDescrip string(CFBNumlines)&lt;br /&gt;
Descripción de cada entada del cartón.&lt;br /&gt;
&lt;br /&gt;
*CFBNGaits int32&lt;br /&gt;
Número de entradas para mapear las repeticiones de agujas de Fine Barre a los cartones en función de la repetición.&lt;br /&gt;
&lt;br /&gt;
*CFBGaitNRepeat int32(CFBNGaits)&lt;br /&gt;
Número de repetición a mapear&lt;br /&gt;
&lt;br /&gt;
*CFBGaitNBar int32(CFBNGaits)&lt;br /&gt;
Número de aguja a mapear&lt;br /&gt;
&lt;br /&gt;
*CFBGaitNGait int32(CFBNGaits)&lt;br /&gt;
Indice de agujero en el cartón&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== TAGS DRAFT DATA ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*NumCourses int32&lt;br /&gt;
Numero de pasadas del dibujo sin tener en cuenta las repeticiones.&lt;br /&gt;
&lt;br /&gt;
*BarNeedle int16(NumCourses*NumBars)&lt;br /&gt;
Despazamientos medidos en agujas de las barras en cada pasada. Ordenados de la siguiente manera:&lt;br /&gt;
&lt;br /&gt;
   BarNeedle(0)              Desplazamiento barra 1 en la primera pasada.&lt;br /&gt;
   BarNeedle(1)              Desplazamiento barra 1 en la segunda pasada.&lt;br /&gt;
   .&lt;br /&gt;
   .&lt;br /&gt;
   BarNeedle(NumCourses-1)   Desplazamiento barra 1 en la última pasada.&lt;br /&gt;
   BarNeedle(NumCourses)     Desplazamiento barra 2 en la primera pasada.&lt;br /&gt;
   .&lt;br /&gt;
   .&lt;br /&gt;
   BarNeedel(NumCourses*2-1) Desplazamiento barra 2 en la última pasada.&lt;br /&gt;
   BarNeedle(NumCourses)     Desplazamiento barra 3 en la primera pasada.&lt;br /&gt;
   .&lt;br /&gt;
&lt;br /&gt;
*BarNeedleB int16(NumCourses*NumBars)&lt;br /&gt;
Solo se utiliza en maquinas de doble frontura. Es equivalente a BarNeedle pero contiene la información&lt;br /&gt;
para la segunda frontura.&lt;br /&gt;
&lt;br /&gt;
*BarHalves int8(NumCourses*NumBars)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*BarKnitting int8(NumCourses*NumBars)&lt;br /&gt;
Valores:&lt;br /&gt;
 0 :&lt;br /&gt;
 1 :&lt;br /&gt;
 2 :&lt;br /&gt;
 3 :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*BarKnittingB int8(NumCourses*NumBars)&lt;br /&gt;
Solo se utiliza en maquinas de doble frontura. Es equivalente a BarKnitting pero contiene la información&lt;br /&gt;
para la segunda frontura.&lt;br /&gt;
&lt;br /&gt;
*Layout_JacqData byte(NumCourses*JacqNeedles*Jacquard)&lt;br /&gt;
Bits de Jacquard.Valores:&lt;br /&gt;
0: T&lt;br /&gt;
1: H&lt;br /&gt;
&lt;br /&gt;
*Layout_FrontureData byte(NumCourses*JacqNeedles*Jacquard)&lt;br /&gt;
Solo se utiliza en maquinas de doble frontura. Es equivalente a Layout_JacqData pero contiene la información&lt;br /&gt;
para la segunda frontura.&lt;br /&gt;
&lt;br /&gt;
*Layout_WBData byte(NumCourses*JacqNeedles*Jacquard)&lt;br /&gt;
Solo se utiliza en maquinas CLIPTRONIC . Contiene los datos para la barra de Embrodery(WB) en el mismo formato que&lt;br /&gt;
Layout_JacqData.&lt;br /&gt;
&lt;br /&gt;
*LayoutCourNRepeats int32&lt;br /&gt;
Numero de repeticiones de pasadas. Las repeticiones de pasadas afectan por igual las barras de dibujo y el jacquard.&lt;br /&gt;
&lt;br /&gt;
*LayoutCourNLayouts int32&lt;br /&gt;
Numero de bloques de pasadas a repetir&lt;br /&gt;
&lt;br /&gt;
*LayoutCourRepeat int32(LayoutCourNLayouts)&lt;br /&gt;
Numero de pasadas que contiene cada bloque a repetir&lt;br /&gt;
&lt;br /&gt;
*LayoutCourWhich int32(LayoutCourNRepeats)&lt;br /&gt;
indice del bloque que a repetir&lt;br /&gt;
&lt;br /&gt;
*LayoutCourTimes int32(LayoutCourNRepeats)&lt;br /&gt;
numero de veces que se ha de repetir el bloque. Ejemplo:&lt;br /&gt;
&lt;br /&gt;
Normalmente como los dibujos suelen ser bastante repetitivos, para ahorrar trabajo y memoria no se guardan todas las pasadas&lt;br /&gt;
del dibujo. En un dibujo como el siguiente :&lt;br /&gt;
&lt;br /&gt;
    +------------------------------------------------------------------------------------------+&lt;br /&gt;
    |  ,~.~._,~.~._,~.~._,~.~._,~.~._,~.~._,~.~.    ,~.~._,~.~._,~.~._,~.~._,~.~._,~.~._,~.~.  | &lt;br /&gt;
    | / O.O   O.O   O.O   O.O   O.O   O.O   O.O \  / O.O   O.O   O.O   O.O   O.O   O.O   O.O \ | &lt;br /&gt;
    |( O:@:O O:@:O O:@:O O:@:O O:@:O O:@:O O:@:O )( O:@:O O:@:O O:@:O O:@:O O:@:O O:@:O O:@:O )| &lt;br /&gt;
    | \ O&#039;O   O&#039;O   O&#039;O   O&#039;O   O&#039;O   O&#039;O   O&#039;O /  \ O&#039;O   O&#039;O   O&#039;O   O&#039;O   O&#039;O   O&#039;O   O&#039;O / | &lt;br /&gt;
    |  )   . ,   . ,   . ,   . ,   . ,   . ,   (    )   . ,   . ,   . ,   . ,   . ,   . ,   (  | &lt;br /&gt;
/\  | (  * -@- * -@- * -@- * -@- * -@- * -@- *  )  (  * -@- * -@- * -@- * -@- * -@- * -@- *  ) | &lt;br /&gt;
 A  |  )   &#039; `   &#039; `   &#039; `   &#039; `   &#039; `   &#039; `   (    )   &#039; `   &#039; `   &#039; `   &#039; `   &#039; `   &#039; `   (  | &lt;br /&gt;
 g  | / O.O   O.O   O.O   O.O   O.O   O.O   O.O \  / O.O   O.O   O.O   O.O   O.O   O.O   O.O \ | &lt;br /&gt;
 u  |( O:@:O O:@:O O:@:O O:@:O O:@:O O:@:O O:@:O )( O:@:O O:@:O O:@:O O:@:O O:@:O O:@:O O:@:O )| &lt;br /&gt;
 j  | \ O&#039;O   O&#039;O   O&#039;O   O&#039;O   O&#039;O   O&#039;O   O&#039;O /  \ O&#039;O   O&#039;O   O&#039;O   O&#039;O   O&#039;O   O&#039;O   O&#039;O / | &lt;br /&gt;
 a  |  ·~·~·^·~·~·^·~·~·^·~·~·^·~·~·^·~·~·^·~·~·    ·~·~·^·~·~·^·~·~·^·~·~·^·~·~·^·~·~·^·~·~·  | &lt;br /&gt;
 s  +------------------------------------------------------------------------------------------+&lt;br /&gt;
     Pasadas &amp;gt;&lt;br /&gt;
&lt;br /&gt;
Si se mira lo que hay guardado en el archivo se encontraría algo similar a :&lt;br /&gt;
                     &lt;br /&gt;
    +---------------+&lt;br /&gt;
    |  ,~.~._,~.~.  |&lt;br /&gt;
    | / O.O   O.O \ |&lt;br /&gt;
    |( O:@:O O:@:O )|&lt;br /&gt;
    | \ O&#039;O   O&#039;O / |&lt;br /&gt;
    |  )   . ,   (  |&lt;br /&gt;
/\  | (  * -@- *  ) | &lt;br /&gt;
 A  |  )   &#039; `   (  |&lt;br /&gt;
 g  | / O.O   O.O \ |&lt;br /&gt;
 u  |( O:@:O O:@:O )|&lt;br /&gt;
 j  | \ O&#039;O   O&#039;O / |&lt;br /&gt;
 a  |  ·~·~·^·~·~·  |&lt;br /&gt;
 s  +---------------+&lt;br /&gt;
     Pasadas &amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Esto pasa por que se ha guardado solo una vez cada bloque que se repite. En este caso los bloques que se han usado:&lt;br /&gt;
&lt;br /&gt;
     A      B        C&lt;br /&gt;
  +----+ +------+ +-----+&lt;br /&gt;
  |  ,~| |.~._,~| |.~.  | &lt;br /&gt;
  | / O| |.O   O| |.O \ | &lt;br /&gt;
  |( O:| |@:O O:| |@:O )| &lt;br /&gt;
  | \ O| |&#039;O   O| |&#039;O / | &lt;br /&gt;
  |  ) | |  . , | |  (  | &lt;br /&gt;
  | (  | |* -@- | |*  ) |&lt;br /&gt;
  |  ) | |  &#039; ` | |  (  | &lt;br /&gt;
  | / O| |.O   O| |.O \ | &lt;br /&gt;
  |( O:| |@:O O:| |@:O )|&lt;br /&gt;
  | \ O| |&#039;O   O| |&#039;O / |  &lt;br /&gt;
  |  ·~| |·~·^·~| |·~·  | &lt;br /&gt;
  +----+ +------+ +-----+&lt;br /&gt;
&lt;br /&gt;
Se puede ver con facilidad que la sequencia de bloques para obtener el dibujo es: A B B B B B B C A B B B B B B C&lt;br /&gt;
&lt;br /&gt;
LayoutCourNLayouts=3 pues hay tres bloques distintos ( A , B , C )&lt;br /&gt;
&lt;br /&gt;
LayoutCourRepeat=Array(&lt;br /&gt;
   numero de pasadas de A,&lt;br /&gt;
   numero de pasadas de B,&lt;br /&gt;
   numero de pasadas de C&lt;br /&gt;
)&lt;br /&gt;
&lt;br /&gt;
NOTA: El número total de pasadas ha de ser igual a la suma de pasadas de los bloques de repeticiones. Es decir:&lt;br /&gt;
NumCourses=LayoutCourRepeat(0)+...+LayoutCourRepeat(LayoutCourNLayouts-1)&lt;br /&gt;
&lt;br /&gt;
Luego para codificar que se desea 1 repetición de A, 6 repeticiones de B y una repeticion de C se haria de la siguiente manera:&lt;br /&gt;
&lt;br /&gt;
                         idx  |  LayoutCourWhich | LayoutCourTimes | Significado&lt;br /&gt;
                      --------+------------------+-----------------+------------------&lt;br /&gt;
                        _     |                  |                 |&lt;br /&gt;
                       /  0   |         1        |       1         | Bloque 1 (A) repetir una vez&lt;br /&gt;
                       |      |                  |                 |&lt;br /&gt;
                       |  1   |         2        |       6         | Bloque 2 (B) repetir 6 veces&lt;br /&gt;
                       |      |                  |                 |&lt;br /&gt;
                       |  2   |         3        |       1         | Bloque 3 (C) repetir una vez&lt;br /&gt;
LayoutCourNRepeats=6  &amp;lt;       |                  |                 |&lt;br /&gt;
                       |  3   |         1        |       1         | Bloque 1 (A) repetir una vez&lt;br /&gt;
                       |      |                  |                 |&lt;br /&gt;
                       |  4   |         2        |       6         | Bloque 2 (B) repetir 6 veces&lt;br /&gt;
                       |      |                  |                 |&lt;br /&gt;
                       \_ 5   |         3        |       1         | Bloque 3 (C) repetir una vez&lt;br /&gt;
                              |                  |                 |&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*LayoutJacqNRepeats int32&lt;br /&gt;
Numero de repeticiones de agujas. Solo afecta el jacquard. Sigue el mismo sistema que las repeticiones de pasadas.&lt;br /&gt;
&lt;br /&gt;
*LayoutJacqNLayouts int32&lt;br /&gt;
Numero de bloques de agujas a repetir&lt;br /&gt;
&lt;br /&gt;
*LayoutJacqRepeat int32(LayoutJacqNLayouts)&lt;br /&gt;
Numero de agujas que contiene cada bloque a repetir&lt;br /&gt;
&lt;br /&gt;
*LayoutJacqWhich int32(LayoutJacqNRepeats)&lt;br /&gt;
indice del bloque que a repetir&lt;br /&gt;
&lt;br /&gt;
*LayoutJacqTimes int32(LayoutJacqNRepeats)&lt;br /&gt;
numero de veces que se ha de repetir el bloque.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Pascual</name></author>
	</entry>
	<entry>
		<id>https://wiki.cadt.com/index.php?title=Drf-reader&amp;diff=2948</id>
		<title>Drf-reader</title>
		<link rel="alternate" type="text/html" href="https://wiki.cadt.com/index.php?title=Drf-reader&amp;diff=2948"/>
		<updated>2016-10-03T10:55:26Z</updated>

		<summary type="html">&lt;p&gt;Pascual: /* TAGS MACHINE INFO */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:SAPO]]&lt;br /&gt;
[[Category:Devel]]&lt;br /&gt;
&lt;br /&gt;
=== DLL_EXPORTS ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
void drf_clear_errors()&lt;br /&gt;
Descr:Borra todos los mensajes de error del almacenamiento interno de la librería dinámica.&lt;br /&gt;
&lt;br /&gt;
int drf_get_num_errors();&lt;br /&gt;
Descr:Obtiene el numero de mensajes de error del almacenados por la librería dinámica.&lt;br /&gt;
Return:numero de mensajes almacenados.&lt;br /&gt;
&lt;br /&gt;
const char* drf_get_error(int idx)&lt;br /&gt;
Descr:obtiene el mensajes de error indicado por idx.&lt;br /&gt;
p:idx: Numero de mensaje a obtener.Comprendido ente 0 y (drf_get_num_messages()-1) ambos incluidos.&lt;br /&gt;
Return: un puntero a una cadena de caracteres ASCII terminada por el byte NUL (&#039;\0&#039;), o NULL en caso que &lt;br /&gt;
el valor de idx este fuera de rango.&lt;br /&gt;
&lt;br /&gt;
int drf_to_json(char *path,FILE *json,int options)&lt;br /&gt;
Descr:Serializa a JSON un dibujo DRF.&lt;br /&gt;
p:path: Ruta al fichero DRF a serializar en formato Windows ANSI.&lt;br /&gt;
p:json: puntero FILE ya abierto y con la escritura habilitada.&lt;br /&gt;
p:options: Selecciona que información se serializará. 0 para serializar toda la información disponible.&lt;br /&gt;
Return: 0 para indicar que la operación se ha completado correctamente. Diferente de 0 para indicar error.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== TAGS ===&lt;br /&gt;
&lt;br /&gt;
Codificación a JSON de los datos:&lt;br /&gt;
&lt;br /&gt;
La información se codifica como un objeto. Donde el nombre del tag es la clave y el contenido de este el valor.&lt;br /&gt;
Todos los tags se codifican como&lt;br /&gt;
==== TAGS GENERIC INFO ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Software string&lt;br /&gt;
Nombre del programa que ha generado el fichero .DRF&lt;br /&gt;
&lt;br /&gt;
*DrawName string&lt;br /&gt;
Referencia del dibujo (max. 256 carac).&lt;br /&gt;
&lt;br /&gt;
*Company string&lt;br /&gt;
Compañía que ha creado el dibujo (max. 30 carac).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== TAGS MACHINE INFO ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Machine string&lt;br /&gt;
Referencia de la máquina. (max. 30 carac) &lt;br /&gt;
&lt;br /&gt;
*MachineType string&lt;br /&gt;
Modelo de la máquina. Sólo es válido un modelo definido en el sistema de diseño. (p.e. LEAVERS)&lt;br /&gt;
&lt;br /&gt;
*Description string&lt;br /&gt;
Descripción o información adicional de la máquina.&lt;br /&gt;
&lt;br /&gt;
*Serial string&lt;br /&gt;
Num. serie de la máquina. (max. 30 carac) . Puede contener carácteres no numéricos.&lt;br /&gt;
&lt;br /&gt;
*Version int32&lt;br /&gt;
Versión de la máquina raschel SU (versión 1 .. 4).&lt;br /&gt;
   versión 1 . Sin ahorrador de memoria&lt;br /&gt;
   versión 2 . Con ahorrador de memoria (repeticiones)&lt;br /&gt;
   versión 3 . Sin ahorrador de memoria + información empresa.&lt;br /&gt;
   versión 4 . Con ahorrador de memoria (repeciciones) + información empresa.&lt;br /&gt;
&lt;br /&gt;
*Jacquard int32&lt;br /&gt;
Número de barras de Jacquard independientes. Valores posibles: &lt;br /&gt;
   0 : No jacquard&lt;br /&gt;
   1 : 1 jacquard o fina barra simple&lt;br /&gt;
   2 : 2 jacquard raschel o fina barra doble.&lt;br /&gt;
&lt;br /&gt;
*Fronture int32&lt;br /&gt;
Número de fonturas de la máquina&lt;br /&gt;
   1 : 1 fontura&lt;br /&gt;
   2 : 2 fontures (delante / detrás)&lt;br /&gt;
&lt;br /&gt;
*BarsRepeat int32&lt;br /&gt;
Altura del diseño.&lt;br /&gt;
&lt;br /&gt;
*NumRepeats int32&lt;br /&gt;
Num de repeticiones en el diseño.&lt;br /&gt;
&lt;br /&gt;
*NumBars int32&lt;br /&gt;
Numero de barras que tiene el telar.&lt;br /&gt;
&lt;br /&gt;
*Plate int32&lt;br /&gt;
En máquinas raschel (textronic), indica la posición de la plancha.&lt;br /&gt;
En máquinas leavers indica donde empiezan los brodeurs.&lt;br /&gt;
&lt;br /&gt;
*JacqNeedles int32&lt;br /&gt;
Numero de agujas de Jacquard del telar.&lt;br /&gt;
&lt;br /&gt;
*MachNeedles int32&lt;br /&gt;
Numero total de agujas del telar.&lt;br /&gt;
&lt;br /&gt;
*BarsOffset int32&lt;br /&gt;
Desplazamiento de barras (orillos=zona perdida)&lt;br /&gt;
&lt;br /&gt;
*JacqOffset int32&lt;br /&gt;
Deplazamiento de las agujas de jacquard en el telar.&lt;br /&gt;
&lt;br /&gt;
*MaxDisp int32&lt;br /&gt;
Deplazamiento máximo general de las barras para máquinas raschel SU.&lt;br /&gt;
&lt;br /&gt;
*Proximity int32&lt;br /&gt;
Para máquinas raschel, distáncia máxima a la que se pueden acercar dos barras del mismo grupo.&lt;br /&gt;
&lt;br /&gt;
*ProximityCollindant int32&lt;br /&gt;
Para máquinas raschel, distáncia máxima a la que se pueden acercar dos barras del mismo grupo colindantes.&lt;br /&gt;
&lt;br /&gt;
*JacqRt int32&lt;br /&gt;
Deplazamiento Rt del jacquard:&lt;br /&gt;
&lt;br /&gt;
para máquinas raschel:&lt;br /&gt;
   no jacquard: rt = 0&lt;br /&gt;
   jacquard simple o doble: rt = 1&lt;br /&gt;
Indica cuántas agujas se desplaza la lectura del jacaquard en las pasadas alternadas.&lt;br /&gt;
&lt;br /&gt;
para máquinas leavers&lt;br /&gt;
   no fina barra:      0&lt;br /&gt;
   fina barra simple: -1&lt;br /&gt;
   fina barra doble:   0&lt;br /&gt;
Indica cuántas agujas se desplaza la lectura del jacquard (desde la posición derecha de la máquina en las pasadas alternadas).&lt;br /&gt;
&lt;br /&gt;
*JacqRtCourse&lt;br /&gt;
Indica que pasadas se aplica el valor JacqRt.&lt;br /&gt;
   0:pasadas pares&lt;br /&gt;
   1: pasadas impares&lt;br /&gt;
&lt;br /&gt;
*FinalGauge&lt;br /&gt;
Type:float&lt;br /&gt;
Galga de producto tejido aplicando encongimiento (medida en agujas/pulgada)&lt;br /&gt;
&lt;br /&gt;
*FinalQuality&lt;br /&gt;
Type:float&lt;br /&gt;
Calidad de producto tejido aplicando elasticidad (medida en pasadas/centímetro).&lt;br /&gt;
&lt;br /&gt;
*RealGauge&lt;br /&gt;
Type:float&lt;br /&gt;
Galga de máquina (medida en agujas/pulgada)-&lt;br /&gt;
&lt;br /&gt;
*RealQuality&lt;br /&gt;
Type:float&lt;br /&gt;
Calidad de máquina (medida en pasadas/centímetro).&lt;br /&gt;
&lt;br /&gt;
*Shrinkage&lt;br /&gt;
Type:float&lt;br /&gt;
Porcentage de encongimiento en agujas (0-100%)&lt;br /&gt;
&lt;br /&gt;
*Elasticity&lt;br /&gt;
Type:float&lt;br /&gt;
Porcentage de elasticidad en pasadas (0-100%)&lt;br /&gt;
&lt;br /&gt;
*BarNumBar int32(NumBars)&lt;br /&gt;
Numero de cada una de las barras del telar (valor numérico consecutivo)&lt;br /&gt;
&lt;br /&gt;
*BarName string(NumBars)&lt;br /&gt;
Nombre o identificador de cada una de las barras del telar&lt;br /&gt;
&lt;br /&gt;
*BarGroup int32(NumBars)&lt;br /&gt;
En máquinas raschel el número de grupo de la barra.&lt;br /&gt;
&lt;br /&gt;
*BarStop int32(NumBars)&lt;br /&gt;
Posición 0 de la barra.&lt;br /&gt;
&lt;br /&gt;
*BarUtil int32(NumBars)&lt;br /&gt;
Visibilidad de la barra en el sistema de diseño.&lt;br /&gt;
&lt;br /&gt;
*BarType int32(NumBars)&lt;br /&gt;
Tipo de hilo por defecto de la barra.&lt;br /&gt;
&lt;br /&gt;
*BarMaxGimp &lt;br /&gt;
Guimpada máxima en agujas de la barra.&lt;br /&gt;
&lt;br /&gt;
*BarDrive&lt;br /&gt;
En máquinas raschel SU, el número de getribe de la barra.&lt;br /&gt;
&lt;br /&gt;
*BarFactor&lt;br /&gt;
En máquinas raschel SU, multiplicador de la barra.&lt;br /&gt;
1: factor de 1 agulla&lt;br /&gt;
2: factor de 2 agulles,&lt;br /&gt;
4: factor de 4 agulles.&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*BarInvert&lt;br /&gt;
En máquinas raschel SU, les barres invertides. &lt;br /&gt;
1: barra invertida.&lt;br /&gt;
0: barra no invertida.&lt;br /&gt;
&lt;br /&gt;
*BarWork&lt;br /&gt;
&lt;br /&gt;
Trabajo de la barra en el sistema de diseño.&lt;br /&gt;
&lt;br /&gt;
#define  PILLAR_WORK            0&lt;br /&gt;
#define  JACQUARD_1_WORK        1&lt;br /&gt;
#define  LINER_WORK             2&lt;br /&gt;
#define  HEAVY_WORK             3&lt;br /&gt;
#define  SHADOW_WORK            4&lt;br /&gt;
#define  BRIGHT_WORK            5&lt;br /&gt;
#define  PICOT_WORK             6&lt;br /&gt;
#define  CORDER_WORK            7&lt;br /&gt;
#define  LYCRA_WORK             8&lt;br /&gt;
#define  GROUND_WORK            9&lt;br /&gt;
#define  BLOCK_WORK            10&lt;br /&gt;
#define  CORD_WORK             11&lt;br /&gt;
#define  GUIMP_WORK            12&lt;br /&gt;
#define  VOID_WORK             13&lt;br /&gt;
#define  JACQUARD_1_02_64_WORK 14&lt;br /&gt;
#define  JACQUARD_1_02_86_WORK 15&lt;br /&gt;
#define  THINBAR_U_WORK        16&lt;br /&gt;
#define  BRACKET_WORK          17&lt;br /&gt;
#define  JACQUARD_2_WORK       18&lt;br /&gt;
#define  JACQUARD_2_02_64_WORK 19&lt;br /&gt;
#define  JACQUARD_2_02_86_WORK 20&lt;br /&gt;
#define  THINBAR_D_WORK        21&lt;br /&gt;
#define  JACQUARD_WORK         22&lt;br /&gt;
#define  THINBAR_WORK          23&lt;br /&gt;
#define  FALLPLATE_WORK        24&lt;br /&gt;
#define  EMBRODERY_WORK        25&lt;br /&gt;
#define  EFS_WORK              26&lt;br /&gt;
#define  SPECIAL1_WORK         27&lt;br /&gt;
#define  SPECIAL2_WORK         28&lt;br /&gt;
#define  JACQUARD_02_64_WORK   29&lt;br /&gt;
#define  JACQUARD_02_86_WORK   30&lt;br /&gt;
/* redia */&lt;br /&gt;
#define  BORD_WORK             31&lt;br /&gt;
#define  LISIERE_WORK          32&lt;br /&gt;
#define  ROMAINE_WORK          33&lt;br /&gt;
#define  SONNETTE_WORK         34&lt;br /&gt;
/* For SH */&lt;br /&gt;
#define  GUIMP_DEVANT_WORK     35&lt;br /&gt;
#define  PETITE_CORDE_WORK     36&lt;br /&gt;
#define  FILEUR_WORK           37&lt;br /&gt;
#define  SEPARATION_WORK       38&lt;br /&gt;
#define  CORDE_TERMO_WORK      39&lt;br /&gt;
#define  SOLVROM_WORK          40&lt;br /&gt;
/* trobat a sauvegarde */&lt;br /&gt;
#define  VIS_WORK              41 /* similar a romaine */&lt;br /&gt;
&lt;br /&gt;
#define  JACQUARD_3_WORK       42&lt;br /&gt;
#define  JACQUARD_4_WORK       43&lt;br /&gt;
&lt;br /&gt;
#define  SPACEFABRIC_WORK      44 &lt;br /&gt;
&lt;br /&gt;
*BarKnit&lt;br /&gt;
En máquines raschel textronic tipous de lligada:&lt;br /&gt;
  0 : no planxa&lt;br /&gt;
  1 : lligada 1 (mecanica)&lt;br /&gt;
  2 : lligada 2 (binaria)&lt;br /&gt;
  3 : lligada 3 (mecánica (2))&lt;br /&gt;
  4 : lligada 4 (binària (2))&lt;br /&gt;
&lt;br /&gt;
*BarTimes&lt;br /&gt;
En máquines raschel textonic temps de la lligada&lt;br /&gt;
  0 : no planxa&lt;br /&gt;
  2 : temps 2 (p.e) 0202 0202 0202&lt;br /&gt;
  4 : temps 4 (p.e) 0220 0220 0220&lt;br /&gt;
&lt;br /&gt;
*BarMode&lt;br /&gt;
En máquines raschel textronic el mode la la barra:&lt;br /&gt;
  0 : mode A (p.e 0220)&lt;br /&gt;
  1 : mode B (p.e 2002)&lt;br /&gt;
&lt;br /&gt;
*BarModif&lt;br /&gt;
En máquines raschel textronic indica que la barra no es pot deslligar&lt;br /&gt;
  0 : no es pot deslligar&lt;br /&gt;
  1 : si es pot deslligar&lt;br /&gt;
&lt;br /&gt;
*BarRepeat (delete)&lt;br /&gt;
&lt;br /&gt;
*BarTension&lt;br /&gt;
Tensió de la barra a les simulacions.&lt;br /&gt;
&lt;br /&gt;
*BarNumFingers int32(NumBars)&lt;br /&gt;
Número de pasadors de la barra&lt;br /&gt;
&lt;br /&gt;
*BarModeDrop&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*BarMaxDesp&lt;br /&gt;
&lt;br /&gt;
*BarActive&lt;br /&gt;
&lt;br /&gt;
*BarHalvesUp&lt;br /&gt;
&lt;br /&gt;
*BarHalvesDn&lt;br /&gt;
&lt;br /&gt;
*BarString&lt;br /&gt;
&lt;br /&gt;
*BarFronture NumBars&lt;br /&gt;
&lt;br /&gt;
*BarDropsUtil int32(7*NumBars)&lt;br /&gt;
&lt;br /&gt;
*FingerStop int32(num_fingers) num_fingers=BarNumFingers(0) + ... + BarNumFingers(NumBars-1)&lt;br /&gt;
Stop del pasador relativo al stop de la barra.&lt;br /&gt;
&lt;br /&gt;
*FingerType int32(num_fingers) num_fingers=BarNumFingers(0) + ... + BarNumFingers(NumBars-1)&lt;br /&gt;
Tipo de pasador.&lt;br /&gt;
&lt;br /&gt;
*CGF1Card&lt;br /&gt;
&lt;br /&gt;
*CGF1Type&lt;br /&gt;
&lt;br /&gt;
*CGF1Taille&lt;br /&gt;
&lt;br /&gt;
*CGF1Numlines&lt;br /&gt;
&lt;br /&gt;
*CGF1Script&lt;br /&gt;
&lt;br /&gt;
*CGF1Descrip&lt;br /&gt;
&lt;br /&gt;
*CGF2Card&lt;br /&gt;
&lt;br /&gt;
*CGF2Type&lt;br /&gt;
&lt;br /&gt;
*CGF2Taille&lt;br /&gt;
&lt;br /&gt;
*CGF2Numlines&lt;br /&gt;
&lt;br /&gt;
*CGF2Script&lt;br /&gt;
&lt;br /&gt;
*CGF2Descrip&lt;br /&gt;
&lt;br /&gt;
*CFBNGaits&lt;br /&gt;
&lt;br /&gt;
*CFBCard&lt;br /&gt;
&lt;br /&gt;
*CFBType&lt;br /&gt;
&lt;br /&gt;
*CFBTaille&lt;br /&gt;
&lt;br /&gt;
*CFBNumlines&lt;br /&gt;
&lt;br /&gt;
*CFBScript&lt;br /&gt;
&lt;br /&gt;
*CFBGaitNBar&lt;br /&gt;
&lt;br /&gt;
*CFBGaitNGait&lt;br /&gt;
&lt;br /&gt;
*CFBDescrip&lt;br /&gt;
&lt;br /&gt;
*CFBGaitNRepeat&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== TAGS DRAFT DATA ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*NumCourses int32&lt;br /&gt;
Numero de pasadas guardadas del dibujo.&lt;br /&gt;
&lt;br /&gt;
*BarHalves int32(NumCourses)&lt;br /&gt;
&lt;br /&gt;
*BarNeedle int32(NumCourses)&lt;br /&gt;
&lt;br /&gt;
*BarKnitting int32(NumCourses)&lt;br /&gt;
&lt;br /&gt;
*BarNeedleB int32(NumCourses)&lt;br /&gt;
&lt;br /&gt;
*BarKnittingB int32(NumCourses)&lt;br /&gt;
&lt;br /&gt;
*Layout_FrontureData&lt;br /&gt;
&lt;br /&gt;
*Layout_WBData&lt;br /&gt;
&lt;br /&gt;
*Layout_JacqData bit(NumCourses*JacqNeedles*Jacquard)&lt;br /&gt;
Bits de Jacquard. &lt;br /&gt;
&lt;br /&gt;
*LayoutCourNRepeats int32&lt;br /&gt;
Numero de repeticiones&lt;br /&gt;
&lt;br /&gt;
*LayoutCourNLayouts int32&lt;br /&gt;
Numero de bloques a repetir&lt;br /&gt;
&lt;br /&gt;
*LayoutCourRepeat int32(LayoutCourNLayouts)&lt;br /&gt;
Numero de pasadas de cada bloque a repetir&lt;br /&gt;
&lt;br /&gt;
*LayoutCourWhich int32(LayoutCourNRepeats)&lt;br /&gt;
indice del bloque que a repetir&lt;br /&gt;
&lt;br /&gt;
*LayoutCourTimes int32(LayoutCourNRepeats)&lt;br /&gt;
numero de veces que se ha de repetir el bloque. Ejemplo:&lt;br /&gt;
&lt;br /&gt;
Supongamos el dibujo:&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
 /-------------------------------------------------------------------------------------\&lt;br /&gt;
 |    ..............OOOOOOOOOOO.OOOOOOOOOOO  ..OOOOOOOOOOO.OOOOOOOOOOO.............    |&lt;br /&gt;
 | O  ..............OOOOO.OOOOO.OOOOO.OOOOO  O.OOOOO.OOOOO.OOOOO.OOOOO.............  O |&lt;br /&gt;
 |    ..............OOOOO.OOOOO.OOOOO.OOOOO  ..OOOOO.OOOOO.OOOOO.OOOOO.............    |&lt;br /&gt;
 |  ()..............OOOOO.OOOOO.OOOOO.OOOOO()..OOOOO.OOOOO.OOOOO.OOOOO.............()  |&lt;br /&gt;
 |    ..............OOOOO.OOOOO.OOOOO.OOOOO  ..OOOOO.OOOOO.OOOOO.OOOOO.............    |&lt;br /&gt;
 |    ..............OOOOO.OOOOO.OOOOO.OOOOO  ..OOOOO.OOOOO.OOOOO.OOOOO.............    |&lt;br /&gt;
 | O  ..............OOOOO.OOOOO.OOOOO.OOOOO  O.OOOOO.OOOOO.OOOOO.OOOOO.............  O |&lt;br /&gt;
 |    ..............OOOOO.OOOOO.OOOOO.OOOOO  ..OOOOO.OOOOO.OOOOO.OOOOO.............    |&lt;br /&gt;
 \-------------------------------------------------------------------------------------/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*LayoutJacqNRepeats int32&lt;br /&gt;
&lt;br /&gt;
*LayoutJacqNLayouts int32&lt;br /&gt;
&lt;br /&gt;
*LayoutJacqRepeat int32(LayoutJacqNLayouts)&lt;br /&gt;
&lt;br /&gt;
*LayoutJacqWhich int32(LayoutJacqNRepeats)&lt;br /&gt;
&lt;br /&gt;
*LayoutJacqTimes int32(LayoutJacqNRepeats)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Pascual</name></author>
	</entry>
	<entry>
		<id>https://wiki.cadt.com/index.php?title=Drf-reader&amp;diff=2947</id>
		<title>Drf-reader</title>
		<link rel="alternate" type="text/html" href="https://wiki.cadt.com/index.php?title=Drf-reader&amp;diff=2947"/>
		<updated>2016-10-03T10:13:27Z</updated>

		<summary type="html">&lt;p&gt;Pascual: /* TAGS MACHINE INFO */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:SAPO]]&lt;br /&gt;
[[Category:Devel]]&lt;br /&gt;
&lt;br /&gt;
=== DLL_EXPORTS ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
void drf_clear_errors()&lt;br /&gt;
Descr:Borra todos los mensajes de error del almacenamiento interno de la librería dinámica.&lt;br /&gt;
&lt;br /&gt;
int drf_get_num_errors();&lt;br /&gt;
Descr:Obtiene el numero de mensajes de error del almacenados por la librería dinámica.&lt;br /&gt;
Return:numero de mensajes almacenados.&lt;br /&gt;
&lt;br /&gt;
const char* drf_get_error(int idx)&lt;br /&gt;
Descr:obtiene el mensajes de error indicado por idx.&lt;br /&gt;
p:idx: Numero de mensaje a obtener.Comprendido ente 0 y (drf_get_num_messages()-1) ambos incluidos.&lt;br /&gt;
Return: un puntero a una cadena de caracteres ASCII terminada por el byte NUL (&#039;\0&#039;), o NULL en caso que &lt;br /&gt;
el valor de idx este fuera de rango.&lt;br /&gt;
&lt;br /&gt;
int drf_to_json(char *path,FILE *json,int options)&lt;br /&gt;
Descr:Serializa a JSON un dibujo DRF.&lt;br /&gt;
p:path: Ruta al fichero DRF a serializar en formato Windows ANSI.&lt;br /&gt;
p:json: puntero FILE ya abierto y con la escritura habilitada.&lt;br /&gt;
p:options: Selecciona que información se serializará. 0 para serializar toda la información disponible.&lt;br /&gt;
Return: 0 para indicar que la operación se ha completado correctamente. Diferente de 0 para indicar error.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== TAGS ===&lt;br /&gt;
&lt;br /&gt;
Codificación a JSON de los datos:&lt;br /&gt;
&lt;br /&gt;
La información se codifica como un objeto. Donde el nombre del tag es la clave y el contenido de este el valor.&lt;br /&gt;
Todos los tags se codifican como&lt;br /&gt;
==== TAGS GENERIC INFO ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Software string&lt;br /&gt;
Nombre del programa que ha generado el fichero .DRF&lt;br /&gt;
&lt;br /&gt;
*DrawName string&lt;br /&gt;
Referencia del dibujo (max. 256 carac).&lt;br /&gt;
&lt;br /&gt;
*Company string&lt;br /&gt;
Compañía que ha creado el dibujo (max. 30 carac).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== TAGS MACHINE INFO ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Machine string&lt;br /&gt;
Referencia de la máquina. (max. 30 carac) &lt;br /&gt;
&lt;br /&gt;
*MachineType string&lt;br /&gt;
Modelo de la máquina. Sólo es válido un modelo definido en el sistema de diseño. (p.e. LEAVERS)&lt;br /&gt;
&lt;br /&gt;
*Description string&lt;br /&gt;
Descripción o información adicional de la máquina.&lt;br /&gt;
&lt;br /&gt;
*Serial string&lt;br /&gt;
Num. serie de la máquina. (max. 30 carac) . Puede contener carácteres no numéricos.&lt;br /&gt;
&lt;br /&gt;
*Version int32&lt;br /&gt;
Versión de la máquina raschel SU (versión 1 .. 4).&lt;br /&gt;
   versión 1 . Sin ahorrador de memoria&lt;br /&gt;
   versión 2 . Con ahorrador de memoria (repeticiones)&lt;br /&gt;
   versión 3 . Sin ahorrador de memoria + información empresa.&lt;br /&gt;
   versión 4 . Con ahorrador de memoria (repeciciones) + información empresa.&lt;br /&gt;
&lt;br /&gt;
*Jacquard int32&lt;br /&gt;
Número de barras de Jacquard independientes. Valores posibles: &lt;br /&gt;
   0 : No jacquard&lt;br /&gt;
   1 : 1 jacquard o fina barra simple&lt;br /&gt;
   2 : 2 jacquard raschel o fina barra doble.&lt;br /&gt;
&lt;br /&gt;
*BarsRepeat int32&lt;br /&gt;
Altura del diseño.&lt;br /&gt;
&lt;br /&gt;
*NumRepeats int32&lt;br /&gt;
Num de repeticiones en el diseño.&lt;br /&gt;
&lt;br /&gt;
*NumBars int32&lt;br /&gt;
Numero de barras que tiene el telar.&lt;br /&gt;
&lt;br /&gt;
*Plate int32&lt;br /&gt;
En máquinas raschel (textronic), indica la posición de la plancha.&lt;br /&gt;
En máquinas leavers indica donde empiezan los brodeurs.&lt;br /&gt;
&lt;br /&gt;
*JacqNeedles int32&lt;br /&gt;
Numero de agujas de Jacquard del telar.&lt;br /&gt;
&lt;br /&gt;
*MachNeedles int32&lt;br /&gt;
Numero total de agujas del telar.&lt;br /&gt;
&lt;br /&gt;
*BarsOffset int32&lt;br /&gt;
Desplazamiento de barras (orillos=zona perdida)&lt;br /&gt;
&lt;br /&gt;
*JacqOffset int32&lt;br /&gt;
Deplazamiento de las agujas de jacquard en el telar.&lt;br /&gt;
&lt;br /&gt;
*MaxDisp int32&lt;br /&gt;
Deplazamiento máximo general de las barras para máquinas raschel SU.&lt;br /&gt;
&lt;br /&gt;
*Proximity int32&lt;br /&gt;
Para máquinas raschel, distáncia máxima a la que se pueden acercar dos barras del mismo grupo.&lt;br /&gt;
&lt;br /&gt;
*ProximityCollindant int32&lt;br /&gt;
Para máquinas raschel, distáncia máxima a la que se pueden acercar dos barras del mismo grupo colindantes.&lt;br /&gt;
&lt;br /&gt;
*JacqRt int32&lt;br /&gt;
Deplazamiento Rt del jacquard:&lt;br /&gt;
&lt;br /&gt;
para máquinas raschel:&lt;br /&gt;
   no jacquard : 0&lt;br /&gt;
   jacquard simple o doble: 1&lt;br /&gt;
&lt;br /&gt;
para máquinas leavers&lt;br /&gt;
   no fina barra: 0&lt;br /&gt;
   fina barra simple: -1&lt;br /&gt;
   fina barra doble:   0&lt;br /&gt;
&lt;br /&gt;
*JacqRtCourse&lt;br /&gt;
&lt;br /&gt;
*FinalGauge&lt;br /&gt;
Type:float&lt;br /&gt;
N:1&lt;br /&gt;
&lt;br /&gt;
*FinalQuality&lt;br /&gt;
Type:float&lt;br /&gt;
N:1&lt;br /&gt;
&lt;br /&gt;
*RealGauge&lt;br /&gt;
Type:float&lt;br /&gt;
N:1&lt;br /&gt;
&lt;br /&gt;
*RealQuality&lt;br /&gt;
Type:float&lt;br /&gt;
N:1&lt;br /&gt;
&lt;br /&gt;
*Shrinkage&lt;br /&gt;
Type:float&lt;br /&gt;
N:1&lt;br /&gt;
&lt;br /&gt;
*Elasticity&lt;br /&gt;
Type:float&lt;br /&gt;
N:1&lt;br /&gt;
&lt;br /&gt;
*BarName string(NumBars)&lt;br /&gt;
Nombre de cada una de las barras del telar&lt;br /&gt;
&lt;br /&gt;
*BarNumBar int32(NumBars)&lt;br /&gt;
Numero de cada una de las barras del telar&lt;br /&gt;
&lt;br /&gt;
*BarGroup int32(NumBars)&lt;br /&gt;
&lt;br /&gt;
*BarStop int32(NumBars)&lt;br /&gt;
&lt;br /&gt;
*BarUtil int32(NumBars)&lt;br /&gt;
&lt;br /&gt;
*BarType int32(NumBars)&lt;br /&gt;
&lt;br /&gt;
*BarMaxGimp &lt;br /&gt;
&lt;br /&gt;
*BarDrive&lt;br /&gt;
&lt;br /&gt;
*BarFactor&lt;br /&gt;
&lt;br /&gt;
*BarInvert&lt;br /&gt;
&lt;br /&gt;
*BarWork&lt;br /&gt;
&lt;br /&gt;
*BarKnit&lt;br /&gt;
&lt;br /&gt;
*BarTimes&lt;br /&gt;
&lt;br /&gt;
*BarMode&lt;br /&gt;
&lt;br /&gt;
*BarModif&lt;br /&gt;
&lt;br /&gt;
*BarRepeat&lt;br /&gt;
&lt;br /&gt;
*BarTension&lt;br /&gt;
&lt;br /&gt;
*BarNumFingers int32(NumBars)&lt;br /&gt;
numero de pasadores de la barra&lt;br /&gt;
&lt;br /&gt;
*BarModeDrop&lt;br /&gt;
&lt;br /&gt;
*BarMaxDesp&lt;br /&gt;
&lt;br /&gt;
*BarActive&lt;br /&gt;
&lt;br /&gt;
*BarHalvesUp&lt;br /&gt;
&lt;br /&gt;
*BarHalvesDn&lt;br /&gt;
&lt;br /&gt;
*BarString&lt;br /&gt;
&lt;br /&gt;
*BarFronture NumBars&lt;br /&gt;
&lt;br /&gt;
*BarDropsUtil int32(7*NumBars)&lt;br /&gt;
&lt;br /&gt;
*FingerStop int32(num_fingers) num_fingers=BarNumFingers(0) + ... + BarNumFingers(NumBars-1)&lt;br /&gt;
Stop del pasador relativo al stop de la barra.&lt;br /&gt;
&lt;br /&gt;
*FingerType int32(num_fingers) num_fingers=BarNumFingers(0) + ... + BarNumFingers(NumBars-1)&lt;br /&gt;
Tipo de pasador.&lt;br /&gt;
&lt;br /&gt;
*CGF1Card&lt;br /&gt;
&lt;br /&gt;
*CGF1Type&lt;br /&gt;
&lt;br /&gt;
*CGF1Taille&lt;br /&gt;
&lt;br /&gt;
*CGF1Numlines&lt;br /&gt;
&lt;br /&gt;
*CGF1Script&lt;br /&gt;
&lt;br /&gt;
*CGF1Descrip&lt;br /&gt;
&lt;br /&gt;
*CGF2Card&lt;br /&gt;
&lt;br /&gt;
*CGF2Type&lt;br /&gt;
&lt;br /&gt;
*CGF2Taille&lt;br /&gt;
&lt;br /&gt;
*CGF2Numlines&lt;br /&gt;
&lt;br /&gt;
*CGF2Script&lt;br /&gt;
&lt;br /&gt;
*CGF2Descrip&lt;br /&gt;
&lt;br /&gt;
*CFBNGaits&lt;br /&gt;
&lt;br /&gt;
*CFBCard&lt;br /&gt;
&lt;br /&gt;
*CFBType&lt;br /&gt;
&lt;br /&gt;
*CFBTaille&lt;br /&gt;
&lt;br /&gt;
*CFBNumlines&lt;br /&gt;
&lt;br /&gt;
*CFBScript&lt;br /&gt;
&lt;br /&gt;
*CFBGaitNBar&lt;br /&gt;
&lt;br /&gt;
*CFBGaitNGait&lt;br /&gt;
&lt;br /&gt;
*CFBDescrip&lt;br /&gt;
&lt;br /&gt;
*CFBGaitNRepeat&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Fronture&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== TAGS DRAFT DATA ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*NumCourses int32&lt;br /&gt;
Numero de pasadas guardadas del dibujo.&lt;br /&gt;
&lt;br /&gt;
*BarHalves int32(NumCourses)&lt;br /&gt;
&lt;br /&gt;
*BarNeedle int32(NumCourses)&lt;br /&gt;
&lt;br /&gt;
*BarKnitting int32(NumCourses)&lt;br /&gt;
&lt;br /&gt;
*BarNeedleB int32(NumCourses)&lt;br /&gt;
&lt;br /&gt;
*BarKnittingB int32(NumCourses)&lt;br /&gt;
&lt;br /&gt;
*Layout_FrontureData&lt;br /&gt;
&lt;br /&gt;
*Layout_WBData&lt;br /&gt;
&lt;br /&gt;
*Layout_JacqData bit(NumCourses*JacqNeedles*Jacquard)&lt;br /&gt;
Bits de Jacquard. &lt;br /&gt;
&lt;br /&gt;
*LayoutCourNRepeats int32&lt;br /&gt;
Numero de repeticiones&lt;br /&gt;
&lt;br /&gt;
*LayoutCourNLayouts int32&lt;br /&gt;
Numero de bloques a repetir&lt;br /&gt;
&lt;br /&gt;
*LayoutCourRepeat int32(LayoutCourNLayouts)&lt;br /&gt;
Numero de pasadas de cada bloque a repetir&lt;br /&gt;
&lt;br /&gt;
*LayoutCourWhich int32(LayoutCourNRepeats)&lt;br /&gt;
indice del bloque que a repetir&lt;br /&gt;
&lt;br /&gt;
*LayoutCourTimes int32(LayoutCourNRepeats)&lt;br /&gt;
numero de veces que se ha de repetir el bloque. Ejemplo:&lt;br /&gt;
&lt;br /&gt;
Supongamos el dibujo:&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
 /-------------------------------------------------------------------------------------\&lt;br /&gt;
 |    ..............OOOOOOOOOOO.OOOOOOOOOOO  ..OOOOOOOOOOO.OOOOOOOOOOO.............    |&lt;br /&gt;
 | O  ..............OOOOO.OOOOO.OOOOO.OOOOO  O.OOOOO.OOOOO.OOOOO.OOOOO.............  O |&lt;br /&gt;
 |    ..............OOOOO.OOOOO.OOOOO.OOOOO  ..OOOOO.OOOOO.OOOOO.OOOOO.............    |&lt;br /&gt;
 |  ()..............OOOOO.OOOOO.OOOOO.OOOOO()..OOOOO.OOOOO.OOOOO.OOOOO.............()  |&lt;br /&gt;
 |    ..............OOOOO.OOOOO.OOOOO.OOOOO  ..OOOOO.OOOOO.OOOOO.OOOOO.............    |&lt;br /&gt;
 |    ..............OOOOO.OOOOO.OOOOO.OOOOO  ..OOOOO.OOOOO.OOOOO.OOOOO.............    |&lt;br /&gt;
 | O  ..............OOOOO.OOOOO.OOOOO.OOOOO  O.OOOOO.OOOOO.OOOOO.OOOOO.............  O |&lt;br /&gt;
 |    ..............OOOOO.OOOOO.OOOOO.OOOOO  ..OOOOO.OOOOO.OOOOO.OOOOO.............    |&lt;br /&gt;
 \-------------------------------------------------------------------------------------/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*LayoutJacqNRepeats int32&lt;br /&gt;
&lt;br /&gt;
*LayoutJacqNLayouts int32&lt;br /&gt;
&lt;br /&gt;
*LayoutJacqRepeat int32(LayoutJacqNLayouts)&lt;br /&gt;
&lt;br /&gt;
*LayoutJacqWhich int32(LayoutJacqNRepeats)&lt;br /&gt;
&lt;br /&gt;
*LayoutJacqTimes int32(LayoutJacqNRepeats)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Pascual</name></author>
	</entry>
	<entry>
		<id>https://wiki.cadt.com/index.php?title=Drf-reader&amp;diff=2946</id>
		<title>Drf-reader</title>
		<link rel="alternate" type="text/html" href="https://wiki.cadt.com/index.php?title=Drf-reader&amp;diff=2946"/>
		<updated>2016-10-03T10:08:45Z</updated>

		<summary type="html">&lt;p&gt;Pascual: /* TAGS MACHINE INFO */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:SAPO]]&lt;br /&gt;
[[Category:Devel]]&lt;br /&gt;
&lt;br /&gt;
=== DLL_EXPORTS ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
void drf_clear_errors()&lt;br /&gt;
Descr:Borra todos los mensajes de error del almacenamiento interno de la librería dinámica.&lt;br /&gt;
&lt;br /&gt;
int drf_get_num_errors();&lt;br /&gt;
Descr:Obtiene el numero de mensajes de error del almacenados por la librería dinámica.&lt;br /&gt;
Return:numero de mensajes almacenados.&lt;br /&gt;
&lt;br /&gt;
const char* drf_get_error(int idx)&lt;br /&gt;
Descr:obtiene el mensajes de error indicado por idx.&lt;br /&gt;
p:idx: Numero de mensaje a obtener.Comprendido ente 0 y (drf_get_num_messages()-1) ambos incluidos.&lt;br /&gt;
Return: un puntero a una cadena de caracteres ASCII terminada por el byte NUL (&#039;\0&#039;), o NULL en caso que &lt;br /&gt;
el valor de idx este fuera de rango.&lt;br /&gt;
&lt;br /&gt;
int drf_to_json(char *path,FILE *json,int options)&lt;br /&gt;
Descr:Serializa a JSON un dibujo DRF.&lt;br /&gt;
p:path: Ruta al fichero DRF a serializar en formato Windows ANSI.&lt;br /&gt;
p:json: puntero FILE ya abierto y con la escritura habilitada.&lt;br /&gt;
p:options: Selecciona que información se serializará. 0 para serializar toda la información disponible.&lt;br /&gt;
Return: 0 para indicar que la operación se ha completado correctamente. Diferente de 0 para indicar error.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== TAGS ===&lt;br /&gt;
&lt;br /&gt;
Codificación a JSON de los datos:&lt;br /&gt;
&lt;br /&gt;
La información se codifica como un objeto. Donde el nombre del tag es la clave y el contenido de este el valor.&lt;br /&gt;
Todos los tags se codifican como&lt;br /&gt;
==== TAGS GENERIC INFO ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Software string&lt;br /&gt;
Nombre del programa que ha generado el fichero .DRF&lt;br /&gt;
&lt;br /&gt;
*DrawName string&lt;br /&gt;
Referencia del dibujo (max. 256 carac).&lt;br /&gt;
&lt;br /&gt;
*Company string&lt;br /&gt;
Compañía que ha creado el dibujo (max. 30 carac).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== TAGS MACHINE INFO ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Machine string&lt;br /&gt;
Referencia de la máquina. (max. 30 carac) &lt;br /&gt;
&lt;br /&gt;
*MachineType string&lt;br /&gt;
Modelo de la máquina. Sólo es válido un modelo definido en el sistema de diseño. (p.e. LEAVERS)&lt;br /&gt;
&lt;br /&gt;
*Description string&lt;br /&gt;
Descripción o información adicional de la máquina.&lt;br /&gt;
&lt;br /&gt;
*Serial string&lt;br /&gt;
Num. serie de la máquina. (max. 30 carac) . Puede contener carácteres no numéricos.&lt;br /&gt;
&lt;br /&gt;
*Version int32&lt;br /&gt;
Versión de la máquina raschel SU (versión 1 .. 4).&lt;br /&gt;
   versión 1 . Sin ahorrador de memoria&lt;br /&gt;
   versión 2 . Con ahorrador de memoria (repeticiones)&lt;br /&gt;
   versión 3 . Sin ahorrador de memoria + información empresa.&lt;br /&gt;
   versión 4 . Con ahorrador de memoria (repeciciones) + información empresa.&lt;br /&gt;
&lt;br /&gt;
*Jacquard int32&lt;br /&gt;
Número de barras de Jacquard independientes. Valores posibles: &lt;br /&gt;
   0 : No jacquard&lt;br /&gt;
   1 : 1 jacquard o fina barra simple&lt;br /&gt;
   2 : 2 jacquard raschel o fina barra doble.&lt;br /&gt;
&lt;br /&gt;
*BarsRepeat int32&lt;br /&gt;
Altura del diseño.&lt;br /&gt;
&lt;br /&gt;
*NumRepeats int32&lt;br /&gt;
Num de repeticiones en el diseño.&lt;br /&gt;
&lt;br /&gt;
*NumBars int32&lt;br /&gt;
Numero de barras que tiene el telar.&lt;br /&gt;
&lt;br /&gt;
*Plate int32&lt;br /&gt;
En máquinas raschel (textronic), indica la posición de la plancha.&lt;br /&gt;
En máquinas leavers indica donde empiezan los brodeurs.&lt;br /&gt;
&lt;br /&gt;
*JacqNeedles int32&lt;br /&gt;
Numero de agujas de Jacquard del telar.&lt;br /&gt;
&lt;br /&gt;
*MachNeedles int32&lt;br /&gt;
Numero total de agujas del telar.&lt;br /&gt;
&lt;br /&gt;
*BarsOffset int32&lt;br /&gt;
Desplazamiento de barras (orillos=zona perdida)&lt;br /&gt;
&lt;br /&gt;
*JacqOffset int32&lt;br /&gt;
Deplazamiento de las agujas de jacquard en el telar.&lt;br /&gt;
&lt;br /&gt;
*MaxDisp int32&lt;br /&gt;
Deplazamiento máximo general de las barras para máquinas raschel SU.&lt;br /&gt;
&lt;br /&gt;
*Proximity int32&lt;br /&gt;
Para máquinas raschel, distáncia máxima a la que se pueden acercar dos barras del mismo grupo.&lt;br /&gt;
&lt;br /&gt;
*JacqRt int32&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*FinalGauge&lt;br /&gt;
Type:float&lt;br /&gt;
N:1&lt;br /&gt;
&lt;br /&gt;
*FinalQuality&lt;br /&gt;
Type:float&lt;br /&gt;
N:1&lt;br /&gt;
&lt;br /&gt;
*RealGauge&lt;br /&gt;
Type:float&lt;br /&gt;
N:1&lt;br /&gt;
&lt;br /&gt;
*RealQuality&lt;br /&gt;
Type:float&lt;br /&gt;
N:1&lt;br /&gt;
&lt;br /&gt;
*Shrinkage&lt;br /&gt;
Type:float&lt;br /&gt;
N:1&lt;br /&gt;
&lt;br /&gt;
*Elasticity&lt;br /&gt;
Type:float&lt;br /&gt;
N:1&lt;br /&gt;
&lt;br /&gt;
*BarName string(NumBars)&lt;br /&gt;
Nombre de cada una de las barras del telar&lt;br /&gt;
&lt;br /&gt;
*BarNumBar int32(NumBars)&lt;br /&gt;
Numero de cada una de las barras del telar&lt;br /&gt;
&lt;br /&gt;
*BarGroup int32(NumBars)&lt;br /&gt;
&lt;br /&gt;
*BarStop int32(NumBars)&lt;br /&gt;
&lt;br /&gt;
*BarUtil int32(NumBars)&lt;br /&gt;
&lt;br /&gt;
*BarType int32(NumBars)&lt;br /&gt;
&lt;br /&gt;
*BarMaxGimp &lt;br /&gt;
&lt;br /&gt;
*BarDrive&lt;br /&gt;
&lt;br /&gt;
*BarFactor&lt;br /&gt;
&lt;br /&gt;
*BarInvert&lt;br /&gt;
&lt;br /&gt;
*BarWork&lt;br /&gt;
&lt;br /&gt;
*BarKnit&lt;br /&gt;
&lt;br /&gt;
*BarTimes&lt;br /&gt;
&lt;br /&gt;
*BarMode&lt;br /&gt;
&lt;br /&gt;
*BarModif&lt;br /&gt;
&lt;br /&gt;
*BarRepeat&lt;br /&gt;
&lt;br /&gt;
*BarTension&lt;br /&gt;
&lt;br /&gt;
*BarNumFingers int32(NumBars)&lt;br /&gt;
numero de pasadores de la barra&lt;br /&gt;
&lt;br /&gt;
*BarModeDrop&lt;br /&gt;
&lt;br /&gt;
*BarMaxDesp&lt;br /&gt;
&lt;br /&gt;
*BarActive&lt;br /&gt;
&lt;br /&gt;
*BarHalvesUp&lt;br /&gt;
&lt;br /&gt;
*BarHalvesDn&lt;br /&gt;
&lt;br /&gt;
*BarString&lt;br /&gt;
&lt;br /&gt;
*BarFronture NumBars&lt;br /&gt;
&lt;br /&gt;
*BarDropsUtil int32(7*NumBars)&lt;br /&gt;
&lt;br /&gt;
*FingerStop int32(num_fingers) num_fingers=BarNumFingers(0) + ... + BarNumFingers(NumBars-1)&lt;br /&gt;
Stop del pasador relativo al stop de la barra.&lt;br /&gt;
&lt;br /&gt;
*FingerType int32(num_fingers) num_fingers=BarNumFingers(0) + ... + BarNumFingers(NumBars-1)&lt;br /&gt;
Tipo de pasador.&lt;br /&gt;
&lt;br /&gt;
*CGF1Card&lt;br /&gt;
&lt;br /&gt;
*CGF1Type&lt;br /&gt;
&lt;br /&gt;
*CGF1Taille&lt;br /&gt;
&lt;br /&gt;
*CGF1Numlines&lt;br /&gt;
&lt;br /&gt;
*CGF1Script&lt;br /&gt;
&lt;br /&gt;
*CGF1Descrip&lt;br /&gt;
&lt;br /&gt;
*CGF2Card&lt;br /&gt;
&lt;br /&gt;
*CGF2Type&lt;br /&gt;
&lt;br /&gt;
*CGF2Taille&lt;br /&gt;
&lt;br /&gt;
*CGF2Numlines&lt;br /&gt;
&lt;br /&gt;
*CGF2Script&lt;br /&gt;
&lt;br /&gt;
*CGF2Descrip&lt;br /&gt;
&lt;br /&gt;
*CFBNGaits&lt;br /&gt;
&lt;br /&gt;
*CFBCard&lt;br /&gt;
&lt;br /&gt;
*CFBType&lt;br /&gt;
&lt;br /&gt;
*CFBTaille&lt;br /&gt;
&lt;br /&gt;
*CFBNumlines&lt;br /&gt;
&lt;br /&gt;
*CFBScript&lt;br /&gt;
&lt;br /&gt;
*CFBGaitNBar&lt;br /&gt;
&lt;br /&gt;
*CFBGaitNGait&lt;br /&gt;
&lt;br /&gt;
*CFBDescrip&lt;br /&gt;
&lt;br /&gt;
*CFBGaitNRepeat&lt;br /&gt;
&lt;br /&gt;
*JacqRtCourse&lt;br /&gt;
&lt;br /&gt;
*Fronture&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== TAGS DRAFT DATA ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*NumCourses int32&lt;br /&gt;
Numero de pasadas guardadas del dibujo.&lt;br /&gt;
&lt;br /&gt;
*BarHalves int32(NumCourses)&lt;br /&gt;
&lt;br /&gt;
*BarNeedle int32(NumCourses)&lt;br /&gt;
&lt;br /&gt;
*BarKnitting int32(NumCourses)&lt;br /&gt;
&lt;br /&gt;
*BarNeedleB int32(NumCourses)&lt;br /&gt;
&lt;br /&gt;
*BarKnittingB int32(NumCourses)&lt;br /&gt;
&lt;br /&gt;
*Layout_FrontureData&lt;br /&gt;
&lt;br /&gt;
*Layout_WBData&lt;br /&gt;
&lt;br /&gt;
*Layout_JacqData bit(NumCourses*JacqNeedles*Jacquard)&lt;br /&gt;
Bits de Jacquard. &lt;br /&gt;
&lt;br /&gt;
*LayoutCourNRepeats int32&lt;br /&gt;
Numero de repeticiones&lt;br /&gt;
&lt;br /&gt;
*LayoutCourNLayouts int32&lt;br /&gt;
Numero de bloques a repetir&lt;br /&gt;
&lt;br /&gt;
*LayoutCourRepeat int32(LayoutCourNLayouts)&lt;br /&gt;
Numero de pasadas de cada bloque a repetir&lt;br /&gt;
&lt;br /&gt;
*LayoutCourWhich int32(LayoutCourNRepeats)&lt;br /&gt;
indice del bloque que a repetir&lt;br /&gt;
&lt;br /&gt;
*LayoutCourTimes int32(LayoutCourNRepeats)&lt;br /&gt;
numero de veces que se ha de repetir el bloque. Ejemplo:&lt;br /&gt;
&lt;br /&gt;
Supongamos el dibujo:&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
 /-------------------------------------------------------------------------------------\&lt;br /&gt;
 |    ..............OOOOOOOOOOO.OOOOOOOOOOO  ..OOOOOOOOOOO.OOOOOOOOOOO.............    |&lt;br /&gt;
 | O  ..............OOOOO.OOOOO.OOOOO.OOOOO  O.OOOOO.OOOOO.OOOOO.OOOOO.............  O |&lt;br /&gt;
 |    ..............OOOOO.OOOOO.OOOOO.OOOOO  ..OOOOO.OOOOO.OOOOO.OOOOO.............    |&lt;br /&gt;
 |  ()..............OOOOO.OOOOO.OOOOO.OOOOO()..OOOOO.OOOOO.OOOOO.OOOOO.............()  |&lt;br /&gt;
 |    ..............OOOOO.OOOOO.OOOOO.OOOOO  ..OOOOO.OOOOO.OOOOO.OOOOO.............    |&lt;br /&gt;
 |    ..............OOOOO.OOOOO.OOOOO.OOOOO  ..OOOOO.OOOOO.OOOOO.OOOOO.............    |&lt;br /&gt;
 | O  ..............OOOOO.OOOOO.OOOOO.OOOOO  O.OOOOO.OOOOO.OOOOO.OOOOO.............  O |&lt;br /&gt;
 |    ..............OOOOO.OOOOO.OOOOO.OOOOO  ..OOOOO.OOOOO.OOOOO.OOOOO.............    |&lt;br /&gt;
 \-------------------------------------------------------------------------------------/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*LayoutJacqNRepeats int32&lt;br /&gt;
&lt;br /&gt;
*LayoutJacqNLayouts int32&lt;br /&gt;
&lt;br /&gt;
*LayoutJacqRepeat int32(LayoutJacqNLayouts)&lt;br /&gt;
&lt;br /&gt;
*LayoutJacqWhich int32(LayoutJacqNRepeats)&lt;br /&gt;
&lt;br /&gt;
*LayoutJacqTimes int32(LayoutJacqNRepeats)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Pascual</name></author>
	</entry>
	<entry>
		<id>https://wiki.cadt.com/index.php?title=Drf-reader&amp;diff=2945</id>
		<title>Drf-reader</title>
		<link rel="alternate" type="text/html" href="https://wiki.cadt.com/index.php?title=Drf-reader&amp;diff=2945"/>
		<updated>2016-10-03T09:59:01Z</updated>

		<summary type="html">&lt;p&gt;Pascual: /* TAGS MACHINE INFO */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:SAPO]]&lt;br /&gt;
[[Category:Devel]]&lt;br /&gt;
&lt;br /&gt;
=== DLL_EXPORTS ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
void drf_clear_errors()&lt;br /&gt;
Descr:Borra todos los mensajes de error del almacenamiento interno de la librería dinámica.&lt;br /&gt;
&lt;br /&gt;
int drf_get_num_errors();&lt;br /&gt;
Descr:Obtiene el numero de mensajes de error del almacenados por la librería dinámica.&lt;br /&gt;
Return:numero de mensajes almacenados.&lt;br /&gt;
&lt;br /&gt;
const char* drf_get_error(int idx)&lt;br /&gt;
Descr:obtiene el mensajes de error indicado por idx.&lt;br /&gt;
p:idx: Numero de mensaje a obtener.Comprendido ente 0 y (drf_get_num_messages()-1) ambos incluidos.&lt;br /&gt;
Return: un puntero a una cadena de caracteres ASCII terminada por el byte NUL (&#039;\0&#039;), o NULL en caso que &lt;br /&gt;
el valor de idx este fuera de rango.&lt;br /&gt;
&lt;br /&gt;
int drf_to_json(char *path,FILE *json,int options)&lt;br /&gt;
Descr:Serializa a JSON un dibujo DRF.&lt;br /&gt;
p:path: Ruta al fichero DRF a serializar en formato Windows ANSI.&lt;br /&gt;
p:json: puntero FILE ya abierto y con la escritura habilitada.&lt;br /&gt;
p:options: Selecciona que información se serializará. 0 para serializar toda la información disponible.&lt;br /&gt;
Return: 0 para indicar que la operación se ha completado correctamente. Diferente de 0 para indicar error.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== TAGS ===&lt;br /&gt;
&lt;br /&gt;
Codificación a JSON de los datos:&lt;br /&gt;
&lt;br /&gt;
La información se codifica como un objeto. Donde el nombre del tag es la clave y el contenido de este el valor.&lt;br /&gt;
Todos los tags se codifican como&lt;br /&gt;
==== TAGS GENERIC INFO ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Software string&lt;br /&gt;
Nombre del programa que ha generado el fichero .DRF&lt;br /&gt;
&lt;br /&gt;
*DrawName string&lt;br /&gt;
Referencia del dibujo (max. 256 carac).&lt;br /&gt;
&lt;br /&gt;
*Company string&lt;br /&gt;
Compañía que ha creado el dibujo (max. 30 carac).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== TAGS MACHINE INFO ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Machine string&lt;br /&gt;
Referencia de la máquina. (max. 30 carac) &lt;br /&gt;
&lt;br /&gt;
*MachineType string&lt;br /&gt;
Modelo de la máquina. Sólo es válido un modelo definido en el sistema de diseño. (p.e. LEAVERS)&lt;br /&gt;
&lt;br /&gt;
*Description string&lt;br /&gt;
Descripción o información adicional de la máquina.&lt;br /&gt;
&lt;br /&gt;
*Serial string&lt;br /&gt;
Num. serie de la máquina. (max. 30 carac) . Puede contener carácteres no numéricos.&lt;br /&gt;
&lt;br /&gt;
*Version int32&lt;br /&gt;
Versión de la máquina raschel SU (versión 1 .. 4).&lt;br /&gt;
   versión 1 . Sin ahorrador de memoria&lt;br /&gt;
   versión 2 . Con ahorrador de memoria (repeticiones)&lt;br /&gt;
   versión 3 . Sin ahorrador de memoria + información empresa.&lt;br /&gt;
   versión 4 . Con ahorrador de memoria (repeciciones) + información empresa.&lt;br /&gt;
&lt;br /&gt;
*Jacquard int32&lt;br /&gt;
Número de barras de Jacquard independientes. Valores posibles: &lt;br /&gt;
   0 : no jacquard&lt;br /&gt;
   1 : 1 jacquard o 1 fina barra&lt;br /&gt;
   2 : 2 jacquard raschel o 2 fina barra.&lt;br /&gt;
&lt;br /&gt;
*BarsRepeat int32&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*NumRepeats int32&lt;br /&gt;
&lt;br /&gt;
*NumBars int32&lt;br /&gt;
Numero de barras que tiene el telar&lt;br /&gt;
&lt;br /&gt;
*Plate int32&lt;br /&gt;
N:1&lt;br /&gt;
&lt;br /&gt;
*JacqNeedles int32&lt;br /&gt;
Numero de agujas de Jacquard del telar&lt;br /&gt;
&lt;br /&gt;
*MachNeedles int32&lt;br /&gt;
Numero total de agujas del telar &lt;br /&gt;
&lt;br /&gt;
*BarsOffset int32&lt;br /&gt;
Desplazamiento respecto a la primera aguja&lt;br /&gt;
&lt;br /&gt;
*JacqOffset int32&lt;br /&gt;
&lt;br /&gt;
*MaxDisp int32&lt;br /&gt;
&lt;br /&gt;
*Proximity int32&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*JacqRt int32&lt;br /&gt;
&lt;br /&gt;
*FinalGauge&lt;br /&gt;
Type:float&lt;br /&gt;
N:1&lt;br /&gt;
&lt;br /&gt;
*FinalQuality&lt;br /&gt;
Type:float&lt;br /&gt;
N:1&lt;br /&gt;
&lt;br /&gt;
*RealGauge&lt;br /&gt;
Type:float&lt;br /&gt;
N:1&lt;br /&gt;
&lt;br /&gt;
*RealQuality&lt;br /&gt;
Type:float&lt;br /&gt;
N:1&lt;br /&gt;
&lt;br /&gt;
*Shrinkage&lt;br /&gt;
Type:float&lt;br /&gt;
N:1&lt;br /&gt;
&lt;br /&gt;
*Elasticity&lt;br /&gt;
Type:float&lt;br /&gt;
N:1&lt;br /&gt;
&lt;br /&gt;
*BarName string(NumBars)&lt;br /&gt;
Nombre de cada una de las barras del telar&lt;br /&gt;
&lt;br /&gt;
*BarNumBar int32(NumBars)&lt;br /&gt;
Numero de cada una de las barras del telar&lt;br /&gt;
&lt;br /&gt;
*BarGroup int32(NumBars)&lt;br /&gt;
&lt;br /&gt;
*BarStop int32(NumBars)&lt;br /&gt;
&lt;br /&gt;
*BarUtil int32(NumBars)&lt;br /&gt;
&lt;br /&gt;
*BarType int32(NumBars)&lt;br /&gt;
&lt;br /&gt;
*BarMaxGimp &lt;br /&gt;
&lt;br /&gt;
*BarDrive&lt;br /&gt;
&lt;br /&gt;
*BarFactor&lt;br /&gt;
&lt;br /&gt;
*BarInvert&lt;br /&gt;
&lt;br /&gt;
*BarWork&lt;br /&gt;
&lt;br /&gt;
*BarKnit&lt;br /&gt;
&lt;br /&gt;
*BarTimes&lt;br /&gt;
&lt;br /&gt;
*BarMode&lt;br /&gt;
&lt;br /&gt;
*BarModif&lt;br /&gt;
&lt;br /&gt;
*BarRepeat&lt;br /&gt;
&lt;br /&gt;
*BarTension&lt;br /&gt;
&lt;br /&gt;
*BarNumFingers int32(NumBars)&lt;br /&gt;
numero de pasadores de la barra&lt;br /&gt;
&lt;br /&gt;
*BarModeDrop&lt;br /&gt;
&lt;br /&gt;
*BarMaxDesp&lt;br /&gt;
&lt;br /&gt;
*BarActive&lt;br /&gt;
&lt;br /&gt;
*BarHalvesUp&lt;br /&gt;
&lt;br /&gt;
*BarHalvesDn&lt;br /&gt;
&lt;br /&gt;
*BarString&lt;br /&gt;
&lt;br /&gt;
*BarFronture NumBars&lt;br /&gt;
&lt;br /&gt;
*BarDropsUtil int32(7*NumBars)&lt;br /&gt;
&lt;br /&gt;
*FingerStop int32(num_fingers) num_fingers=BarNumFingers(0) + ... + BarNumFingers(NumBars-1)&lt;br /&gt;
Stop del pasador relativo al stop de la barra.&lt;br /&gt;
&lt;br /&gt;
*FingerType int32(num_fingers) num_fingers=BarNumFingers(0) + ... + BarNumFingers(NumBars-1)&lt;br /&gt;
Tipo de pasador.&lt;br /&gt;
&lt;br /&gt;
*CGF1Card&lt;br /&gt;
&lt;br /&gt;
*CGF1Type&lt;br /&gt;
&lt;br /&gt;
*CGF1Taille&lt;br /&gt;
&lt;br /&gt;
*CGF1Numlines&lt;br /&gt;
&lt;br /&gt;
*CGF1Script&lt;br /&gt;
&lt;br /&gt;
*CGF1Descrip&lt;br /&gt;
&lt;br /&gt;
*CGF2Card&lt;br /&gt;
&lt;br /&gt;
*CGF2Type&lt;br /&gt;
&lt;br /&gt;
*CGF2Taille&lt;br /&gt;
&lt;br /&gt;
*CGF2Numlines&lt;br /&gt;
&lt;br /&gt;
*CGF2Script&lt;br /&gt;
&lt;br /&gt;
*CGF2Descrip&lt;br /&gt;
&lt;br /&gt;
*CFBNGaits&lt;br /&gt;
&lt;br /&gt;
*CFBCard&lt;br /&gt;
&lt;br /&gt;
*CFBType&lt;br /&gt;
&lt;br /&gt;
*CFBTaille&lt;br /&gt;
&lt;br /&gt;
*CFBNumlines&lt;br /&gt;
&lt;br /&gt;
*CFBScript&lt;br /&gt;
&lt;br /&gt;
*CFBGaitNBar&lt;br /&gt;
&lt;br /&gt;
*CFBGaitNGait&lt;br /&gt;
&lt;br /&gt;
*CFBDescrip&lt;br /&gt;
&lt;br /&gt;
*CFBGaitNRepeat&lt;br /&gt;
&lt;br /&gt;
*JacqRtCourse&lt;br /&gt;
&lt;br /&gt;
*Fronture&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== TAGS DRAFT DATA ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*NumCourses int32&lt;br /&gt;
Numero de pasadas guardadas del dibujo.&lt;br /&gt;
&lt;br /&gt;
*BarHalves int32(NumCourses)&lt;br /&gt;
&lt;br /&gt;
*BarNeedle int32(NumCourses)&lt;br /&gt;
&lt;br /&gt;
*BarKnitting int32(NumCourses)&lt;br /&gt;
&lt;br /&gt;
*BarNeedleB int32(NumCourses)&lt;br /&gt;
&lt;br /&gt;
*BarKnittingB int32(NumCourses)&lt;br /&gt;
&lt;br /&gt;
*Layout_FrontureData&lt;br /&gt;
&lt;br /&gt;
*Layout_WBData&lt;br /&gt;
&lt;br /&gt;
*Layout_JacqData bit(NumCourses*JacqNeedles*Jacquard)&lt;br /&gt;
Bits de Jacquard. &lt;br /&gt;
&lt;br /&gt;
*LayoutCourNRepeats int32&lt;br /&gt;
Numero de repeticiones&lt;br /&gt;
&lt;br /&gt;
*LayoutCourNLayouts int32&lt;br /&gt;
Numero de bloques a repetir&lt;br /&gt;
&lt;br /&gt;
*LayoutCourRepeat int32(LayoutCourNLayouts)&lt;br /&gt;
Numero de pasadas de cada bloque a repetir&lt;br /&gt;
&lt;br /&gt;
*LayoutCourWhich int32(LayoutCourNRepeats)&lt;br /&gt;
indice del bloque que a repetir&lt;br /&gt;
&lt;br /&gt;
*LayoutCourTimes int32(LayoutCourNRepeats)&lt;br /&gt;
numero de veces que se ha de repetir el bloque. Ejemplo:&lt;br /&gt;
&lt;br /&gt;
Supongamos el dibujo:&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
 /-------------------------------------------------------------------------------------\&lt;br /&gt;
 |    ..............OOOOOOOOOOO.OOOOOOOOOOO  ..OOOOOOOOOOO.OOOOOOOOOOO.............    |&lt;br /&gt;
 | O  ..............OOOOO.OOOOO.OOOOO.OOOOO  O.OOOOO.OOOOO.OOOOO.OOOOO.............  O |&lt;br /&gt;
 |    ..............OOOOO.OOOOO.OOOOO.OOOOO  ..OOOOO.OOOOO.OOOOO.OOOOO.............    |&lt;br /&gt;
 |  ()..............OOOOO.OOOOO.OOOOO.OOOOO()..OOOOO.OOOOO.OOOOO.OOOOO.............()  |&lt;br /&gt;
 |    ..............OOOOO.OOOOO.OOOOO.OOOOO  ..OOOOO.OOOOO.OOOOO.OOOOO.............    |&lt;br /&gt;
 |    ..............OOOOO.OOOOO.OOOOO.OOOOO  ..OOOOO.OOOOO.OOOOO.OOOOO.............    |&lt;br /&gt;
 | O  ..............OOOOO.OOOOO.OOOOO.OOOOO  O.OOOOO.OOOOO.OOOOO.OOOOO.............  O |&lt;br /&gt;
 |    ..............OOOOO.OOOOO.OOOOO.OOOOO  ..OOOOO.OOOOO.OOOOO.OOOOO.............    |&lt;br /&gt;
 \-------------------------------------------------------------------------------------/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*LayoutJacqNRepeats int32&lt;br /&gt;
&lt;br /&gt;
*LayoutJacqNLayouts int32&lt;br /&gt;
&lt;br /&gt;
*LayoutJacqRepeat int32(LayoutJacqNLayouts)&lt;br /&gt;
&lt;br /&gt;
*LayoutJacqWhich int32(LayoutJacqNRepeats)&lt;br /&gt;
&lt;br /&gt;
*LayoutJacqTimes int32(LayoutJacqNRepeats)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Pascual</name></author>
	</entry>
	<entry>
		<id>https://wiki.cadt.com/index.php?title=Drf-reader&amp;diff=2944</id>
		<title>Drf-reader</title>
		<link rel="alternate" type="text/html" href="https://wiki.cadt.com/index.php?title=Drf-reader&amp;diff=2944"/>
		<updated>2016-10-03T09:50:42Z</updated>

		<summary type="html">&lt;p&gt;Pascual: /* TAGS DRAFT DATA */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:SAPO]]&lt;br /&gt;
[[Category:Devel]]&lt;br /&gt;
&lt;br /&gt;
=== DLL_EXPORTS ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
void drf_clear_errors()&lt;br /&gt;
Descr:Borra todos los mensajes de error del almacenamiento interno de la librería dinámica.&lt;br /&gt;
&lt;br /&gt;
int drf_get_num_errors();&lt;br /&gt;
Descr:Obtiene el numero de mensajes de error del almacenados por la librería dinámica.&lt;br /&gt;
Return:numero de mensajes almacenados.&lt;br /&gt;
&lt;br /&gt;
const char* drf_get_error(int idx)&lt;br /&gt;
Descr:obtiene el mensajes de error indicado por idx.&lt;br /&gt;
p:idx: Numero de mensaje a obtener.Comprendido ente 0 y (drf_get_num_messages()-1) ambos incluidos.&lt;br /&gt;
Return: un puntero a una cadena de caracteres ASCII terminada por el byte NUL (&#039;\0&#039;), o NULL en caso que &lt;br /&gt;
el valor de idx este fuera de rango.&lt;br /&gt;
&lt;br /&gt;
int drf_to_json(char *path,FILE *json,int options)&lt;br /&gt;
Descr:Serializa a JSON un dibujo DRF.&lt;br /&gt;
p:path: Ruta al fichero DRF a serializar en formato Windows ANSI.&lt;br /&gt;
p:json: puntero FILE ya abierto y con la escritura habilitada.&lt;br /&gt;
p:options: Selecciona que información se serializará. 0 para serializar toda la información disponible.&lt;br /&gt;
Return: 0 para indicar que la operación se ha completado correctamente. Diferente de 0 para indicar error.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== TAGS ===&lt;br /&gt;
&lt;br /&gt;
Codificación a JSON de los datos:&lt;br /&gt;
&lt;br /&gt;
La información se codifica como un objeto. Donde el nombre del tag es la clave y el contenido de este el valor.&lt;br /&gt;
Todos los tags se codifican como&lt;br /&gt;
==== TAGS GENERIC INFO ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Software string&lt;br /&gt;
Nombre del programa que ha generado el fichero .DRF&lt;br /&gt;
&lt;br /&gt;
*DrawName string&lt;br /&gt;
Referencia del dibujo (max. 256 carac).&lt;br /&gt;
&lt;br /&gt;
*Company string&lt;br /&gt;
Compañía que ha creado el dibujo (max. 30 carac).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== TAGS MACHINE INFO ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Machine string&lt;br /&gt;
Campo editable por el diseñador que contiene el nombre, descripción o referencia de la maquina. &lt;br /&gt;
&lt;br /&gt;
*MachineType string&lt;br /&gt;
Nombre del modelo de la maquina. Solo puede contener un nombre de maquina de los que tiene definidos el carta.&lt;br /&gt;
&lt;br /&gt;
*Description string&lt;br /&gt;
Descripción del dibujo introducida por el diseñador.&lt;br /&gt;
&lt;br /&gt;
*Serial string&lt;br /&gt;
Código de serie del dibujo asignado por el diseñador. Puede contener cualquier secuencia de caracteres imprimibles ASCII.&lt;br /&gt;
&lt;br /&gt;
*Version int32&lt;br /&gt;
Versión del formato de DRF con el que se ha guardado el archivo.&lt;br /&gt;
&lt;br /&gt;
*Jacquard int32&lt;br /&gt;
Número de barras de Jacquard independientes. Solo se soporta hasta un máximo de 2 barras. &lt;br /&gt;
&lt;br /&gt;
*BarsRepeat int32&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*NumRepeats int32&lt;br /&gt;
&lt;br /&gt;
*NumBars int32&lt;br /&gt;
Numero de barras que tiene el telar&lt;br /&gt;
&lt;br /&gt;
*Plate int32&lt;br /&gt;
N:1&lt;br /&gt;
&lt;br /&gt;
*JacqNeedles int32&lt;br /&gt;
Numero de agujas de Jacquard del telar&lt;br /&gt;
&lt;br /&gt;
*MachNeedles int32&lt;br /&gt;
Numero total de agujas del telar &lt;br /&gt;
&lt;br /&gt;
*BarsOffset int32&lt;br /&gt;
Desplazamiento respecto a la primera aguja&lt;br /&gt;
&lt;br /&gt;
*JacqOffset int32&lt;br /&gt;
&lt;br /&gt;
*MaxDisp int32&lt;br /&gt;
&lt;br /&gt;
*Proximity int32&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*JacqRt int32&lt;br /&gt;
&lt;br /&gt;
*FinalGauge&lt;br /&gt;
Type:float&lt;br /&gt;
N:1&lt;br /&gt;
&lt;br /&gt;
*FinalQuality&lt;br /&gt;
Type:float&lt;br /&gt;
N:1&lt;br /&gt;
&lt;br /&gt;
*RealGauge&lt;br /&gt;
Type:float&lt;br /&gt;
N:1&lt;br /&gt;
&lt;br /&gt;
*RealQuality&lt;br /&gt;
Type:float&lt;br /&gt;
N:1&lt;br /&gt;
&lt;br /&gt;
*Shrinkage&lt;br /&gt;
Type:float&lt;br /&gt;
N:1&lt;br /&gt;
&lt;br /&gt;
*Elasticity&lt;br /&gt;
Type:float&lt;br /&gt;
N:1&lt;br /&gt;
&lt;br /&gt;
*BarName string(NumBars)&lt;br /&gt;
Nombre de cada una de las barras del telar&lt;br /&gt;
&lt;br /&gt;
*BarNumBar int32(NumBars)&lt;br /&gt;
Numero de cada una de las barras del telar&lt;br /&gt;
&lt;br /&gt;
*BarGroup int32(NumBars)&lt;br /&gt;
&lt;br /&gt;
*BarStop int32(NumBars)&lt;br /&gt;
&lt;br /&gt;
*BarUtil int32(NumBars)&lt;br /&gt;
&lt;br /&gt;
*BarType int32(NumBars)&lt;br /&gt;
&lt;br /&gt;
*BarMaxGimp &lt;br /&gt;
&lt;br /&gt;
*BarDrive&lt;br /&gt;
&lt;br /&gt;
*BarFactor&lt;br /&gt;
&lt;br /&gt;
*BarInvert&lt;br /&gt;
&lt;br /&gt;
*BarWork&lt;br /&gt;
&lt;br /&gt;
*BarKnit&lt;br /&gt;
&lt;br /&gt;
*BarTimes&lt;br /&gt;
&lt;br /&gt;
*BarMode&lt;br /&gt;
&lt;br /&gt;
*BarModif&lt;br /&gt;
&lt;br /&gt;
*BarRepeat&lt;br /&gt;
&lt;br /&gt;
*BarTension&lt;br /&gt;
&lt;br /&gt;
*BarNumFingers int32(NumBars)&lt;br /&gt;
numero de pasadores de la barra&lt;br /&gt;
&lt;br /&gt;
*BarModeDrop&lt;br /&gt;
&lt;br /&gt;
*BarMaxDesp&lt;br /&gt;
&lt;br /&gt;
*BarActive&lt;br /&gt;
&lt;br /&gt;
*BarHalvesUp&lt;br /&gt;
&lt;br /&gt;
*BarHalvesDn&lt;br /&gt;
&lt;br /&gt;
*BarString&lt;br /&gt;
&lt;br /&gt;
*BarFronture NumBars&lt;br /&gt;
&lt;br /&gt;
*BarDropsUtil int32(7*NumBars)&lt;br /&gt;
&lt;br /&gt;
*FingerStop int32(num_fingers) num_fingers=BarNumFingers(0) + ... + BarNumFingers(NumBars-1)&lt;br /&gt;
Stop del pasador relativo al stop de la barra.&lt;br /&gt;
&lt;br /&gt;
*FingerType int32(num_fingers) num_fingers=BarNumFingers(0) + ... + BarNumFingers(NumBars-1)&lt;br /&gt;
Tipo de pasador.&lt;br /&gt;
&lt;br /&gt;
*CGF1Card&lt;br /&gt;
&lt;br /&gt;
*CGF1Type&lt;br /&gt;
&lt;br /&gt;
*CGF1Taille&lt;br /&gt;
&lt;br /&gt;
*CGF1Numlines&lt;br /&gt;
&lt;br /&gt;
*CGF1Script&lt;br /&gt;
&lt;br /&gt;
*CGF1Descrip&lt;br /&gt;
&lt;br /&gt;
*CGF2Card&lt;br /&gt;
&lt;br /&gt;
*CGF2Type&lt;br /&gt;
&lt;br /&gt;
*CGF2Taille&lt;br /&gt;
&lt;br /&gt;
*CGF2Numlines&lt;br /&gt;
&lt;br /&gt;
*CGF2Script&lt;br /&gt;
&lt;br /&gt;
*CGF2Descrip&lt;br /&gt;
&lt;br /&gt;
*CFBNGaits&lt;br /&gt;
&lt;br /&gt;
*CFBCard&lt;br /&gt;
&lt;br /&gt;
*CFBType&lt;br /&gt;
&lt;br /&gt;
*CFBTaille&lt;br /&gt;
&lt;br /&gt;
*CFBNumlines&lt;br /&gt;
&lt;br /&gt;
*CFBScript&lt;br /&gt;
&lt;br /&gt;
*CFBGaitNBar&lt;br /&gt;
&lt;br /&gt;
*CFBGaitNGait&lt;br /&gt;
&lt;br /&gt;
*CFBDescrip&lt;br /&gt;
&lt;br /&gt;
*CFBGaitNRepeat&lt;br /&gt;
&lt;br /&gt;
*JacqRtCourse&lt;br /&gt;
&lt;br /&gt;
*Fronture&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== TAGS DRAFT DATA ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*NumCourses int32&lt;br /&gt;
Numero de pasadas guardadas del dibujo.&lt;br /&gt;
&lt;br /&gt;
*BarHalves int32(NumCourses)&lt;br /&gt;
&lt;br /&gt;
*BarNeedle int32(NumCourses)&lt;br /&gt;
&lt;br /&gt;
*BarKnitting int32(NumCourses)&lt;br /&gt;
&lt;br /&gt;
*BarNeedleB int32(NumCourses)&lt;br /&gt;
&lt;br /&gt;
*BarKnittingB int32(NumCourses)&lt;br /&gt;
&lt;br /&gt;
*Layout_FrontureData&lt;br /&gt;
&lt;br /&gt;
*Layout_WBData&lt;br /&gt;
&lt;br /&gt;
*Layout_JacqData bit(NumCourses*JacqNeedles*Jacquard)&lt;br /&gt;
Bits de Jacquard. &lt;br /&gt;
&lt;br /&gt;
*LayoutCourNRepeats int32&lt;br /&gt;
Numero de repeticiones&lt;br /&gt;
&lt;br /&gt;
*LayoutCourNLayouts int32&lt;br /&gt;
Numero de bloques a repetir&lt;br /&gt;
&lt;br /&gt;
*LayoutCourRepeat int32(LayoutCourNLayouts)&lt;br /&gt;
Numero de pasadas de cada bloque a repetir&lt;br /&gt;
&lt;br /&gt;
*LayoutCourWhich int32(LayoutCourNRepeats)&lt;br /&gt;
indice del bloque que a repetir&lt;br /&gt;
&lt;br /&gt;
*LayoutCourTimes int32(LayoutCourNRepeats)&lt;br /&gt;
numero de veces que se ha de repetir el bloque. Ejemplo:&lt;br /&gt;
&lt;br /&gt;
Supongamos el dibujo:&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
 /-------------------------------------------------------------------------------------\&lt;br /&gt;
 |    ..............OOOOOOOOOOO.OOOOOOOOOOO  ..OOOOOOOOOOO.OOOOOOOOOOO.............    |&lt;br /&gt;
 | O  ..............OOOOO.OOOOO.OOOOO.OOOOO  O.OOOOO.OOOOO.OOOOO.OOOOO.............  O |&lt;br /&gt;
 |    ..............OOOOO.OOOOO.OOOOO.OOOOO  ..OOOOO.OOOOO.OOOOO.OOOOO.............    |&lt;br /&gt;
 |  ()..............OOOOO.OOOOO.OOOOO.OOOOO()..OOOOO.OOOOO.OOOOO.OOOOO.............()  |&lt;br /&gt;
 |    ..............OOOOO.OOOOO.OOOOO.OOOOO  ..OOOOO.OOOOO.OOOOO.OOOOO.............    |&lt;br /&gt;
 |    ..............OOOOO.OOOOO.OOOOO.OOOOO  ..OOOOO.OOOOO.OOOOO.OOOOO.............    |&lt;br /&gt;
 | O  ..............OOOOO.OOOOO.OOOOO.OOOOO  O.OOOOO.OOOOO.OOOOO.OOOOO.............  O |&lt;br /&gt;
 |    ..............OOOOO.OOOOO.OOOOO.OOOOO  ..OOOOO.OOOOO.OOOOO.OOOOO.............    |&lt;br /&gt;
 \-------------------------------------------------------------------------------------/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*LayoutJacqNRepeats int32&lt;br /&gt;
&lt;br /&gt;
*LayoutJacqNLayouts int32&lt;br /&gt;
&lt;br /&gt;
*LayoutJacqRepeat int32(LayoutJacqNLayouts)&lt;br /&gt;
&lt;br /&gt;
*LayoutJacqWhich int32(LayoutJacqNRepeats)&lt;br /&gt;
&lt;br /&gt;
*LayoutJacqTimes int32(LayoutJacqNRepeats)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Pascual</name></author>
	</entry>
	<entry>
		<id>https://wiki.cadt.com/index.php?title=Drf-reader&amp;diff=2943</id>
		<title>Drf-reader</title>
		<link rel="alternate" type="text/html" href="https://wiki.cadt.com/index.php?title=Drf-reader&amp;diff=2943"/>
		<updated>2016-10-03T09:47:46Z</updated>

		<summary type="html">&lt;p&gt;Pascual: /* TAGS GENERIC INFO */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:SAPO]]&lt;br /&gt;
[[Category:Devel]]&lt;br /&gt;
&lt;br /&gt;
=== DLL_EXPORTS ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
void drf_clear_errors()&lt;br /&gt;
Descr:Borra todos los mensajes de error del almacenamiento interno de la librería dinámica.&lt;br /&gt;
&lt;br /&gt;
int drf_get_num_errors();&lt;br /&gt;
Descr:Obtiene el numero de mensajes de error del almacenados por la librería dinámica.&lt;br /&gt;
Return:numero de mensajes almacenados.&lt;br /&gt;
&lt;br /&gt;
const char* drf_get_error(int idx)&lt;br /&gt;
Descr:obtiene el mensajes de error indicado por idx.&lt;br /&gt;
p:idx: Numero de mensaje a obtener.Comprendido ente 0 y (drf_get_num_messages()-1) ambos incluidos.&lt;br /&gt;
Return: un puntero a una cadena de caracteres ASCII terminada por el byte NUL (&#039;\0&#039;), o NULL en caso que &lt;br /&gt;
el valor de idx este fuera de rango.&lt;br /&gt;
&lt;br /&gt;
int drf_to_json(char *path,FILE *json,int options)&lt;br /&gt;
Descr:Serializa a JSON un dibujo DRF.&lt;br /&gt;
p:path: Ruta al fichero DRF a serializar en formato Windows ANSI.&lt;br /&gt;
p:json: puntero FILE ya abierto y con la escritura habilitada.&lt;br /&gt;
p:options: Selecciona que información se serializará. 0 para serializar toda la información disponible.&lt;br /&gt;
Return: 0 para indicar que la operación se ha completado correctamente. Diferente de 0 para indicar error.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== TAGS ===&lt;br /&gt;
&lt;br /&gt;
Codificación a JSON de los datos:&lt;br /&gt;
&lt;br /&gt;
La información se codifica como un objeto. Donde el nombre del tag es la clave y el contenido de este el valor.&lt;br /&gt;
Todos los tags se codifican como&lt;br /&gt;
==== TAGS GENERIC INFO ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Software string&lt;br /&gt;
Nombre del programa que ha generado el fichero .DRF&lt;br /&gt;
&lt;br /&gt;
*DrawName string&lt;br /&gt;
Referencia del dibujo (max. 256 carac).&lt;br /&gt;
&lt;br /&gt;
*Company string&lt;br /&gt;
Compañía que ha creado el dibujo (max. 30 carac).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== TAGS MACHINE INFO ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Machine string&lt;br /&gt;
Campo editable por el diseñador que contiene el nombre, descripción o referencia de la maquina. &lt;br /&gt;
&lt;br /&gt;
*MachineType string&lt;br /&gt;
Nombre del modelo de la maquina. Solo puede contener un nombre de maquina de los que tiene definidos el carta.&lt;br /&gt;
&lt;br /&gt;
*Description string&lt;br /&gt;
Descripción del dibujo introducida por el diseñador.&lt;br /&gt;
&lt;br /&gt;
*Serial string&lt;br /&gt;
Código de serie del dibujo asignado por el diseñador. Puede contener cualquier secuencia de caracteres imprimibles ASCII.&lt;br /&gt;
&lt;br /&gt;
*Version int32&lt;br /&gt;
Versión del formato de DRF con el que se ha guardado el archivo.&lt;br /&gt;
&lt;br /&gt;
*Jacquard int32&lt;br /&gt;
Número de barras de Jacquard independientes. Solo se soporta hasta un máximo de 2 barras. &lt;br /&gt;
&lt;br /&gt;
*BarsRepeat int32&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*NumRepeats int32&lt;br /&gt;
&lt;br /&gt;
*NumBars int32&lt;br /&gt;
Numero de barras que tiene el telar&lt;br /&gt;
&lt;br /&gt;
*Plate int32&lt;br /&gt;
N:1&lt;br /&gt;
&lt;br /&gt;
*JacqNeedles int32&lt;br /&gt;
Numero de agujas de Jacquard del telar&lt;br /&gt;
&lt;br /&gt;
*MachNeedles int32&lt;br /&gt;
Numero total de agujas del telar &lt;br /&gt;
&lt;br /&gt;
*BarsOffset int32&lt;br /&gt;
Desplazamiento respecto a la primera aguja&lt;br /&gt;
&lt;br /&gt;
*JacqOffset int32&lt;br /&gt;
&lt;br /&gt;
*MaxDisp int32&lt;br /&gt;
&lt;br /&gt;
*Proximity int32&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*JacqRt int32&lt;br /&gt;
&lt;br /&gt;
*FinalGauge&lt;br /&gt;
Type:float&lt;br /&gt;
N:1&lt;br /&gt;
&lt;br /&gt;
*FinalQuality&lt;br /&gt;
Type:float&lt;br /&gt;
N:1&lt;br /&gt;
&lt;br /&gt;
*RealGauge&lt;br /&gt;
Type:float&lt;br /&gt;
N:1&lt;br /&gt;
&lt;br /&gt;
*RealQuality&lt;br /&gt;
Type:float&lt;br /&gt;
N:1&lt;br /&gt;
&lt;br /&gt;
*Shrinkage&lt;br /&gt;
Type:float&lt;br /&gt;
N:1&lt;br /&gt;
&lt;br /&gt;
*Elasticity&lt;br /&gt;
Type:float&lt;br /&gt;
N:1&lt;br /&gt;
&lt;br /&gt;
*BarName string(NumBars)&lt;br /&gt;
Nombre de cada una de las barras del telar&lt;br /&gt;
&lt;br /&gt;
*BarNumBar int32(NumBars)&lt;br /&gt;
Numero de cada una de las barras del telar&lt;br /&gt;
&lt;br /&gt;
*BarGroup int32(NumBars)&lt;br /&gt;
&lt;br /&gt;
*BarStop int32(NumBars)&lt;br /&gt;
&lt;br /&gt;
*BarUtil int32(NumBars)&lt;br /&gt;
&lt;br /&gt;
*BarType int32(NumBars)&lt;br /&gt;
&lt;br /&gt;
*BarMaxGimp &lt;br /&gt;
&lt;br /&gt;
*BarDrive&lt;br /&gt;
&lt;br /&gt;
*BarFactor&lt;br /&gt;
&lt;br /&gt;
*BarInvert&lt;br /&gt;
&lt;br /&gt;
*BarWork&lt;br /&gt;
&lt;br /&gt;
*BarKnit&lt;br /&gt;
&lt;br /&gt;
*BarTimes&lt;br /&gt;
&lt;br /&gt;
*BarMode&lt;br /&gt;
&lt;br /&gt;
*BarModif&lt;br /&gt;
&lt;br /&gt;
*BarRepeat&lt;br /&gt;
&lt;br /&gt;
*BarTension&lt;br /&gt;
&lt;br /&gt;
*BarNumFingers int32(NumBars)&lt;br /&gt;
numero de pasadores de la barra&lt;br /&gt;
&lt;br /&gt;
*BarModeDrop&lt;br /&gt;
&lt;br /&gt;
*BarMaxDesp&lt;br /&gt;
&lt;br /&gt;
*BarActive&lt;br /&gt;
&lt;br /&gt;
*BarHalvesUp&lt;br /&gt;
&lt;br /&gt;
*BarHalvesDn&lt;br /&gt;
&lt;br /&gt;
*BarString&lt;br /&gt;
&lt;br /&gt;
*BarFronture NumBars&lt;br /&gt;
&lt;br /&gt;
*BarDropsUtil int32(7*NumBars)&lt;br /&gt;
&lt;br /&gt;
*FingerStop int32(num_fingers) num_fingers=BarNumFingers(0) + ... + BarNumFingers(NumBars-1)&lt;br /&gt;
Stop del pasador relativo al stop de la barra.&lt;br /&gt;
&lt;br /&gt;
*FingerType int32(num_fingers) num_fingers=BarNumFingers(0) + ... + BarNumFingers(NumBars-1)&lt;br /&gt;
Tipo de pasador.&lt;br /&gt;
&lt;br /&gt;
*CGF1Card&lt;br /&gt;
&lt;br /&gt;
*CGF1Type&lt;br /&gt;
&lt;br /&gt;
*CGF1Taille&lt;br /&gt;
&lt;br /&gt;
*CGF1Numlines&lt;br /&gt;
&lt;br /&gt;
*CGF1Script&lt;br /&gt;
&lt;br /&gt;
*CGF1Descrip&lt;br /&gt;
&lt;br /&gt;
*CGF2Card&lt;br /&gt;
&lt;br /&gt;
*CGF2Type&lt;br /&gt;
&lt;br /&gt;
*CGF2Taille&lt;br /&gt;
&lt;br /&gt;
*CGF2Numlines&lt;br /&gt;
&lt;br /&gt;
*CGF2Script&lt;br /&gt;
&lt;br /&gt;
*CGF2Descrip&lt;br /&gt;
&lt;br /&gt;
*CFBNGaits&lt;br /&gt;
&lt;br /&gt;
*CFBCard&lt;br /&gt;
&lt;br /&gt;
*CFBType&lt;br /&gt;
&lt;br /&gt;
*CFBTaille&lt;br /&gt;
&lt;br /&gt;
*CFBNumlines&lt;br /&gt;
&lt;br /&gt;
*CFBScript&lt;br /&gt;
&lt;br /&gt;
*CFBGaitNBar&lt;br /&gt;
&lt;br /&gt;
*CFBGaitNGait&lt;br /&gt;
&lt;br /&gt;
*CFBDescrip&lt;br /&gt;
&lt;br /&gt;
*CFBGaitNRepeat&lt;br /&gt;
&lt;br /&gt;
*JacqRtCourse&lt;br /&gt;
&lt;br /&gt;
*Fronture&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== TAGS DRAFT DATA ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*NumCourses int32&lt;br /&gt;
Numero de pasadas guardadas del dibujo.&lt;br /&gt;
&lt;br /&gt;
*BarHalves int32(NumCourses)&lt;br /&gt;
&lt;br /&gt;
*BarNeedle int32(NumCourses)&lt;br /&gt;
&lt;br /&gt;
*BarKnitting int32(NumCourses)&lt;br /&gt;
&lt;br /&gt;
*BarNeedleB int32(NumCourses)&lt;br /&gt;
&lt;br /&gt;
*BarKnittingB int32(NumCourses)&lt;br /&gt;
&lt;br /&gt;
*Layout_FrontureData&lt;br /&gt;
&lt;br /&gt;
*Layout_WBData&lt;br /&gt;
&lt;br /&gt;
*Layout_JacqData bit(NumCourses*JacqNeedles*Jacquard)&lt;br /&gt;
Bits de Jacquard. &lt;br /&gt;
&lt;br /&gt;
*LayoutCourNRepeats int32&lt;br /&gt;
Numero de repeticiones&lt;br /&gt;
&lt;br /&gt;
*LayoutCourNLayouts int32&lt;br /&gt;
Numero de bloques a repetir&lt;br /&gt;
&lt;br /&gt;
*LayoutCourRepeat int32(LayoutCourNLayouts)&lt;br /&gt;
Numero de pasadas de cada bloque a repetir&lt;br /&gt;
&lt;br /&gt;
*LayoutCourWhich int32(LayoutCourNRepeats)&lt;br /&gt;
indice del bloque que a repetir&lt;br /&gt;
&lt;br /&gt;
*LayoutCourTimes int32(LayoutCourNRepeats)&lt;br /&gt;
numero de veces que se ha de repetir el bloque. Ejemplo:&lt;br /&gt;
&lt;br /&gt;
Supongamos el dibujo:&lt;br /&gt;
&lt;br /&gt;
 AAAAAAAAA&lt;br /&gt;
H * * * * H&lt;br /&gt;
H * * * * H&lt;br /&gt;
H * * * * H&lt;br /&gt;
H * .-. * H&lt;br /&gt;
H  ( * )  H&lt;br /&gt;
H * &#039;-&#039; * H&lt;br /&gt;
H * * * * H&lt;br /&gt;
H * * * * H&lt;br /&gt;
H * .-. * H&lt;br /&gt;
H  ( * )  H&lt;br /&gt;
H * &#039;-&#039; * H&lt;br /&gt;
H * * * * H&lt;br /&gt;
H * * * * H&lt;br /&gt;
 VVVVVVVVV&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*LayoutJacqNRepeats int32&lt;br /&gt;
&lt;br /&gt;
*LayoutJacqNLayouts int32&lt;br /&gt;
&lt;br /&gt;
*LayoutJacqRepeat int32(LayoutJacqNLayouts)&lt;br /&gt;
&lt;br /&gt;
*LayoutJacqWhich int32(LayoutJacqNRepeats)&lt;br /&gt;
&lt;br /&gt;
*LayoutJacqTimes int32(LayoutJacqNRepeats)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Pascual</name></author>
	</entry>
	<entry>
		<id>https://wiki.cadt.com/index.php?title=Devlabel&amp;diff=2932</id>
		<title>Devlabel</title>
		<link rel="alternate" type="text/html" href="https://wiki.cadt.com/index.php?title=Devlabel&amp;diff=2932"/>
		<updated>2016-09-19T12:19:23Z</updated>

		<summary type="html">&lt;p&gt;Pascual: /* Obtenim un identificador UUID a partir d&amp;#039;un symbolic link */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:SysAdmin]]&lt;br /&gt;
&lt;br /&gt;
== devlabel ==&lt;br /&gt;
&lt;br /&gt;
És un programa obsolet per crear de manera automatitzada symbolic-links a dispositius de blocks i particions. Ha sigut substituit per l&#039;udev en les versions més recents del Linux. Ja que l&#039;udev (entre altres coses) permet controlar l&#039;assignació de noms de dispositiu en general, en lloc d&#039;estar limitat només a dispositius de blocks.&lt;br /&gt;
&lt;br /&gt;
=== Sintaxi ===&lt;br /&gt;
&lt;br /&gt;
==== Obtenir un identificador UUID a partir d&#039;un symbolic link ====&lt;br /&gt;
&lt;br /&gt;
  devlabel printid -d &amp;lt;device&amp;gt;&lt;br /&gt;
  Ex:&lt;br /&gt;
    devlabel printid -d /dev/sdb1&lt;br /&gt;
&lt;br /&gt;
==== Afegir una nova definició de symbolic link ====&lt;br /&gt;
* A partir del dispositiu:&lt;br /&gt;
  devlabel add -d &amp;lt;device&amp;gt; -s &amp;lt;symlink&amp;gt;&lt;br /&gt;
  Ex:&lt;br /&gt;
    devlabel add -d /dev/sr0 -s /dev/dvd&lt;br /&gt;
&lt;br /&gt;
* A partir d&#039;un UUID&lt;br /&gt;
  devlabel add -u &amp;lt;uuid&amp;gt; -s &amp;lt;symlink&amp;gt;&lt;br /&gt;
  Ex:&lt;br /&gt;
    devlabel add -u 1234-1234-12aa-dead-beef -s /dev/user_homes&lt;br /&gt;
&lt;br /&gt;
==== Eliminar una entrada ====&lt;br /&gt;
devlabel remove -s &amp;lt;symlink&amp;gt;&lt;br /&gt;
Ex:&lt;br /&gt;
  devlabel remove -s /dev/dvd&lt;br /&gt;
&lt;br /&gt;
==== Status ====&lt;br /&gt;
   devlabel status&lt;br /&gt;
&lt;br /&gt;
=== Fitxers ===&lt;br /&gt;
Les dades es guarden a /etc/sysconfig/devlabel&lt;br /&gt;
&lt;br /&gt;
=== Altres ===&lt;br /&gt;
&lt;br /&gt;
Per més info es pot anar a la pàgina de RedHat corresponent [https://access.redhat.com/knowledge/docs/en-US/Red_Hat_Enterprise_Linux/3/html/System_Administration_Guide/ch-devlabel.html devlabel]&lt;/div&gt;</summary>
		<author><name>Pascual</name></author>
	</entry>
	<entry>
		<id>https://wiki.cadt.com/index.php?title=Devlabel&amp;diff=2931</id>
		<title>Devlabel</title>
		<link rel="alternate" type="text/html" href="https://wiki.cadt.com/index.php?title=Devlabel&amp;diff=2931"/>
		<updated>2016-09-19T12:19:12Z</updated>

		<summary type="html">&lt;p&gt;Pascual: /* Sintaxi */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:SysAdmin]]&lt;br /&gt;
&lt;br /&gt;
== devlabel ==&lt;br /&gt;
&lt;br /&gt;
És un programa obsolet per crear de manera automatitzada symbolic-links a dispositius de blocks i particions. Ha sigut substituit per l&#039;udev en les versions més recents del Linux. Ja que l&#039;udev (entre altres coses) permet controlar l&#039;assignació de noms de dispositiu en general, en lloc d&#039;estar limitat només a dispositius de blocks.&lt;br /&gt;
&lt;br /&gt;
=== Sintaxi ===&lt;br /&gt;
&lt;br /&gt;
==== Obtenim un identificador UUID a partir d&#039;un symbolic link ====&lt;br /&gt;
&lt;br /&gt;
  devlabel printid -d &amp;lt;device&amp;gt;&lt;br /&gt;
  Ex:&lt;br /&gt;
    devlabel printid -d /dev/sdb1&lt;br /&gt;
&lt;br /&gt;
==== Afegir una nova definició de symbolic link ====&lt;br /&gt;
* A partir del dispositiu:&lt;br /&gt;
  devlabel add -d &amp;lt;device&amp;gt; -s &amp;lt;symlink&amp;gt;&lt;br /&gt;
  Ex:&lt;br /&gt;
    devlabel add -d /dev/sr0 -s /dev/dvd&lt;br /&gt;
&lt;br /&gt;
* A partir d&#039;un UUID&lt;br /&gt;
  devlabel add -u &amp;lt;uuid&amp;gt; -s &amp;lt;symlink&amp;gt;&lt;br /&gt;
  Ex:&lt;br /&gt;
    devlabel add -u 1234-1234-12aa-dead-beef -s /dev/user_homes&lt;br /&gt;
&lt;br /&gt;
==== Eliminar una entrada ====&lt;br /&gt;
devlabel remove -s &amp;lt;symlink&amp;gt;&lt;br /&gt;
Ex:&lt;br /&gt;
  devlabel remove -s /dev/dvd&lt;br /&gt;
&lt;br /&gt;
==== Status ====&lt;br /&gt;
   devlabel status&lt;br /&gt;
&lt;br /&gt;
=== Fitxers ===&lt;br /&gt;
Les dades es guarden a /etc/sysconfig/devlabel&lt;br /&gt;
&lt;br /&gt;
=== Altres ===&lt;br /&gt;
&lt;br /&gt;
Per més info es pot anar a la pàgina de RedHat corresponent [https://access.redhat.com/knowledge/docs/en-US/Red_Hat_Enterprise_Linux/3/html/System_Administration_Guide/ch-devlabel.html devlabel]&lt;/div&gt;</summary>
		<author><name>Pascual</name></author>
	</entry>
	<entry>
		<id>https://wiki.cadt.com/index.php?title=Protocol_MayerDLC&amp;diff=2901</id>
		<title>Protocol MayerDLC</title>
		<link rel="alternate" type="text/html" href="https://wiki.cadt.com/index.php?title=Protocol_MayerDLC&amp;diff=2901"/>
		<updated>2016-08-01T16:07:47Z</updated>

		<summary type="html">&lt;p&gt;Pascual: /* Fromat (FO) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
Aquest protocol l&#039;utilitzen les màquines mayer relativament recents per comunicar-se amb la unitat de dades. Està basat en el SDLC/HDLC d&#039;IBM tot i que el format de paquet és diferent.&lt;br /&gt;
&lt;br /&gt;
=== Elèctric ===&lt;br /&gt;
&lt;br /&gt;
S&#039;utilitza un sol parell diferencial tan per la recepció com la transmissió. &lt;br /&gt;
Els transceptors s&#039;acoplen al la linia de transmissió via un transformador. Amb un V&amp;lt;sub&amp;gt;D+&amp;lt;/sub&amp;gt;-V&amp;lt;sub&amp;gt;D-&amp;lt;/sub&amp;gt; entre +5V i -5V.&lt;br /&gt;
La impedància de la línia és de 120 Ohms.&lt;br /&gt;
&lt;br /&gt;
=== Codificació de bits ===&lt;br /&gt;
&lt;br /&gt;
S&#039;utilitza una codificació AMI. És a dir:&lt;br /&gt;
* L&#039; &#039;1&#039; es senyalitza mantenint la línia a 0V&lt;br /&gt;
* El &#039;0&#039; es senyalitza alternativament amb +5V o -5V&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{|class=wikitable&lt;br /&gt;
!Vdiff||Bit&lt;br /&gt;
|-&lt;br /&gt;
| +5V o -5V || 0&lt;br /&gt;
|-&lt;br /&gt;
| 0V || 1&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
S&#039;utilitza el mateix bit-stuffing que el HDLC. És a dir: s&#039;inserta un &#039;0&#039; cada cop que es troben 5 &#039;1&#039; seguits.&lt;br /&gt;
També, al igual que el HDLC s&#039;utilitza els patró de bits &#039;01111110&#039; (7E) per delimitar els paquets i sincronitzar els rellotges del transmisor i el receptor&lt;br /&gt;
Finalment, el patró de bits &#039;1111111&#039; està prohibit. Si es troba dins d&#039;un paquet es considera error de transmissió.&lt;br /&gt;
&lt;br /&gt;
La velocitat de transmissió és de 1024Kbits/s&lt;br /&gt;
&lt;br /&gt;
=== Control de flux ===&lt;br /&gt;
&lt;br /&gt;
El canal és Half-Duplex i el teler controla la direcció de transmissió. La unitat de dades només pot transmetre com a resposta a una peteció i s&#039;ha d&#039;esperar a que la línia quedi inactiva (0V)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;aafigure scale=0.4&amp;gt;&lt;br /&gt;
       -+    +-----------------------+       +---+                       +---+   +---+   +-------+       +---+                           +-------------------+   +-----------+   +-----------------------+   +--------------------------------......&lt;br /&gt;
Data    |    |                       |       |   |                       |   |   |   |   |       |       |   |                           |                   |   |           |   |                       |   |&lt;br /&gt;
        +----+                       +-------+   +-----------------------+   +---+   +---+       +-------+   +---------------------------+                   +---+           +---+                       +---+&lt;br /&gt;
&lt;br /&gt;
         +-+ +-+ +-+ +-+ +-+ +-+ +-+ +-+ +-+ +-+ +-+ +-+ +-+ +-+ +-+ +-+ +-+ +-+ +-+ +-+ +-+ +-+ +-+ +-+ +-+ +-+ +-+ +-+ +-+ +-+ +-+ +-+ +-+ +-+ +-+ +-+ +-+ +-+ +-+ +-+ +-+ +-+ +-+ +-+ +-+ +-+ +-+ +-+ +-+ +-+ +-+ +-+ +-+ +-+ +-+ +-+ +-+ +-....&lt;br /&gt;
Clock    |0| |1| |2| |3| |4| |5| |6| |7| |0| |1| |2| |3| |4| |5| |6| |7| |0| |1| |2| |3| |4| |5| |6| |7| |0| |1| |2| |3| |4| |5| |6| |7| |0| |1| |2| |3| |4| |*| |5| |6| |7| |0| |1| |2| |3| |4| |5| |6| |7| |0| |1| |2| |3| |4| |5| |6| |7| |&lt;br /&gt;
       --+0+-+ +-+ +-+ +-+ +-+ +-+ +-+ +-+1+-+ +-+ +-+ +-+ +-+ +-+ +-+ +-+2+-+ +-+ +-+ +-+ +-+ +-+ +-+ +-+3+-+ +-+ +-+ +-+ +-+ +-+ +-+ +-+4+-+ +-+ +-+ +-+ +-+ +-+ +-+ +-+ +-+5+-+ +-+ +-+ +-+ +-+ +-+ +-+ +-+ +-+ +-+ +-+ +-+ +-+ +-+ +-+ +-+&lt;br /&gt;
&lt;br /&gt;
   &amp;quot;-5V&amp;quot;                             +---+       +---+   +---+   +---+       +---+               +---+       +---+   +---+   +---+   +---+                                   +---+&lt;br /&gt;
                                     |   |       |   |   |   |   |   |       |   |               |   |       |   |   |   |   |   |   |   |                                   |   |&lt;br /&gt;
Line   --+   +-----------------------+   |   +---+   |   |   |   |   |   +---+   +---+   +-------+   |   +---+   |   |   |   |   |   |   +-------------------+   +-----------+   +-----------------------+   +-------------------------------------------------&lt;br /&gt;
         |   |                           |   |       |   |   |   |   |   |           |   |           |   |       |   |   |   |   |   |                       |   |                                       |   |&lt;br /&gt;
   &amp;quot;+5V&amp;quot; +---+                           +---+       +---+   +---+   +---+           +---+           +---+       +---+   +---+   +---+                       +---+                                       +---+&lt;br /&gt;
&lt;br /&gt;
          \                             / \                             / \                             / \                             / \                                 / \                             / \                              /&lt;br /&gt;
           ------------   --------------   ------------  ---------------   -------------  --------------   -------------  --------------   ----------------  ---------------   --------------  -------------   --------------  --------------&lt;br /&gt;
                       \ /                             \/                               \/                              \/                                 \/                                \/                              \/&lt;br /&gt;
                        + &lt;br /&gt;
                        |&lt;br /&gt;
Sync IN  ---------------+&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
DATA     -------------------------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Sync OUT ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/aafigure&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Paquets ===&lt;br /&gt;
&lt;br /&gt;
Els paquets tenen l&#039;estructura:&lt;br /&gt;
&lt;br /&gt;
{|class=wikitable&lt;br /&gt;
|-&lt;br /&gt;
! Camp || Tamany (bytes) || Descripció&lt;br /&gt;
|-&lt;br /&gt;
| FLAG || n || Sync-in normalment de 220 a 250 repeticions del patró &#039;01111110&#039; (7E)&lt;br /&gt;
|-&lt;br /&gt;
| Dest Addr || 1 || Addreça de desti  Maquina=0x01 Unitiat=0x02&lt;br /&gt;
|-&lt;br /&gt;
| Seq No || 1 || Numero de seqüència del paquet del (0x01 al 0xff)&lt;br /&gt;
|-&lt;br /&gt;
| Src Addr || 1 || Addreça d&#039;origen&lt;br /&gt;
|-&lt;br /&gt;
| Op Code|| 1 || Tipus de paquet&lt;br /&gt;
|-&lt;br /&gt;
| Data || n || Dades de 0 a n bytes. Sembla que el limit és de 642 bytes en el nostre cas&lt;br /&gt;
|-&lt;br /&gt;
| FCS || 2 || &#039;&#039;&#039;Frame Check Sequence&#039;&#039;&#039;. A.k.a. Codi de verificació del paquet.&lt;br /&gt;
|-&lt;br /&gt;
| FLAG || n || Sync-out normalment de 30 a 40 repeticions del patró &#039;01111110&#039; (7E)&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Frame Check Sequence ====&lt;br /&gt;
És un CRC amb els paràmetres següents:&lt;br /&gt;
&lt;br /&gt;
* polinomi: x^16+x^12+x^5+1&lt;br /&gt;
* xor final:0xffff&lt;br /&gt;
* init-val:0x84cf&lt;br /&gt;
&lt;br /&gt;
=== Protocol ===&lt;br /&gt;
&lt;br /&gt;
{|class=wikitable&lt;br /&gt;
!colspan=4|Comandaments/Respostes&lt;br /&gt;
|-&lt;br /&gt;
!OP_CODE||Data||Nom||Descripció&lt;br /&gt;
|-&lt;br /&gt;
|0x00||-||PING||es respon amb ACK per indicar recepcio correcte&lt;br /&gt;
|-&lt;br /&gt;
|0x01||-||SC_START||es respon amb ACK si es pot escriure en el disc. En altre cas ERR_ACK (0x80)&lt;br /&gt;
|-&lt;br /&gt;
|0x02||-||LA_START||es respon amb ACK si es pot llegir el disc. En altre cas ERR_ACK (0x80)&lt;br /&gt;
|-&lt;br /&gt;
|0x03||-||REQ_DATA||Demana següent block de dades&lt;br /&gt;
|-&lt;br /&gt;
|0x04||dt_len_hi,dt_len_lo,dt&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;,dt&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;,...,dt&amp;lt;sub&amp;gt;dt_len-1&amp;lt;/sub&amp;gt;|| DATA_BLK ||  Block de dades, 0&amp;lt;=dt_len&amp;lt;=0x280&lt;br /&gt;
|-&lt;br /&gt;
|0x05||&amp;lt;track_no&amp;gt; ||FMT_TRACK|| Formateja pista &amp;lt;track_no&amp;gt;=[0..79]&lt;br /&gt;
|-&lt;br /&gt;
|0x06||-||ACK||Ack pkt&lt;br /&gt;
|-&lt;br /&gt;
|0x80||-||RESET_COMMS||Error ACK: últim comandament ha fallat&lt;br /&gt;
|-&lt;br /&gt;
|0x81||-||ABORT||Aborta operació en curs&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Carrega (LA) ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;mscgen caption=&amp;quot;Carrega (LA)&amp;quot; uniquifier=&amp;quot;DiagramLA&amp;quot; &amp;gt;&lt;br /&gt;
msc {&lt;br /&gt;
a [label=Loom],b[label=DataUnit];&lt;br /&gt;
&lt;br /&gt;
a=&amp;gt;b [label=&amp;quot;LA_START&amp;quot;];&lt;br /&gt;
b=&amp;gt;a [label=&amp;quot;ACK&amp;quot;];&lt;br /&gt;
a=&amp;gt;b [label=&amp;quot;REQ_DATA&amp;quot;];&lt;br /&gt;
b=&amp;gt;a [label=&amp;quot;DATA_BLK,dt_len_Hi,dt_len_Lo,dt0,dt1,...&amp;quot;];&lt;br /&gt;
...;&lt;br /&gt;
...;&lt;br /&gt;
a=&amp;gt;b [label=&amp;quot;REQ_DATA&amp;quot;];&lt;br /&gt;
b=&amp;gt;a [label=&amp;quot;DATA_BLK,dt_len_Hi,dt_len_Lo,dt0,dt1,...&amp;quot;];&lt;br /&gt;
a=&amp;gt;b [label=&amp;quot;RESET_COMMS&amp;quot;];&lt;br /&gt;
b=&amp;gt;a [label=&amp;quot;ACK&amp;quot;];&lt;br /&gt;
a=&amp;gt;b [label=&amp;quot;RESET_COMMS&amp;quot;];&lt;br /&gt;
b=&amp;gt;a [label=&amp;quot;ACK&amp;quot;];&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/mscgen&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Captura LA MayerDLC]]&lt;br /&gt;
&lt;br /&gt;
==== Descarrega (SC) ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;mscgen caption=&amp;quot;Descarrega (SC)&amp;quot; uniquifier=&amp;quot;DiagramSC&amp;quot; &amp;gt;&lt;br /&gt;
msc {&lt;br /&gt;
a [label=Loom],b[label=DataUnit];&lt;br /&gt;
&lt;br /&gt;
a=&amp;gt;b [label=&amp;quot;SC_START&amp;quot;];&lt;br /&gt;
b=&amp;gt;a [label=&amp;quot;ACK&amp;quot;];&lt;br /&gt;
a=&amp;gt;b [label=&amp;quot;DATA_BLK,dt_len_Hi,dt_len_Lo,dt0,dt1,...&amp;quot;];&lt;br /&gt;
b=&amp;gt;a [label=&amp;quot;ACK&amp;quot;];&lt;br /&gt;
...;&lt;br /&gt;
...;&lt;br /&gt;
a=&amp;gt;b [label=&amp;quot;DATA_BLK,dt_len_Hi,dt_len_Lo,dt0,dt1,...&amp;quot;];&lt;br /&gt;
b=&amp;gt;a [label=&amp;quot;ACK&amp;quot;];&lt;br /&gt;
a=&amp;gt;b [label=&amp;quot;DATA_BLK,0,0&amp;quot;];&lt;br /&gt;
b=&amp;gt;a [label=&amp;quot;ACK&amp;quot;];&lt;br /&gt;
a=&amp;gt;b [label=&amp;quot;RESET_COMMS&amp;quot;];&lt;br /&gt;
b=&amp;gt;a [label=&amp;quot;ACK&amp;quot;];&lt;br /&gt;
a=&amp;gt;b [label=&amp;quot;RESET_COMMS&amp;quot;];&lt;br /&gt;
b=&amp;gt;a [label=&amp;quot;ACK&amp;quot;];&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/mscgen&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Captura SC MayerDLC]]&lt;br /&gt;
&lt;br /&gt;
==== Format (FO) ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;mscgen caption=&amp;quot;Format (FO)&amp;quot; uniquifier=&amp;quot;DiagramFO&amp;quot;&amp;gt;&lt;br /&gt;
msc {&lt;br /&gt;
a [label=Loom],b[label=DataUnit];&lt;br /&gt;
&lt;br /&gt;
a=&amp;gt;b [label=&amp;quot;FMT_TRACK,0&amp;quot;];&lt;br /&gt;
b=&amp;gt;a [label=&amp;quot;ACK&amp;quot;];&lt;br /&gt;
a=&amp;gt;b [label=&amp;quot;FMT_TRACK,1&amp;quot;];&lt;br /&gt;
b=&amp;gt;a [label=&amp;quot;ACK&amp;quot;];&lt;br /&gt;
...;&lt;br /&gt;
...;&lt;br /&gt;
a=&amp;gt;b [label=&amp;quot;FMT_TRACK,79&amp;quot;];&lt;br /&gt;
b=&amp;gt;a [label=&amp;quot;ACK&amp;quot;];&lt;br /&gt;
a=&amp;gt;b [label=&amp;quot;RESET_COMMS&amp;quot;];&lt;br /&gt;
b=&amp;gt;a [label=&amp;quot;ACK&amp;quot;];&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/mscgen&amp;gt;&lt;br /&gt;
[[Captura FO MayerDLC]]&lt;br /&gt;
&lt;br /&gt;
==== Errors ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;mscgen caption=&amp;quot;Errors comunicació&amp;quot; uniquifier=&amp;quot;DiagramErrs&amp;quot;&amp;gt;&lt;br /&gt;
msc {&lt;br /&gt;
a [label=&amp;quot;Loom&amp;quot;],b[label=&amp;quot;Data Unit&amp;quot;];&lt;br /&gt;
...;&lt;br /&gt;
...;&lt;br /&gt;
--- [label=Timeout];&lt;br /&gt;
a -x b [label=&amp;quot;PKT SEQ=n&amp;quot;];&lt;br /&gt;
a -x b [label=&amp;quot;PKT SEQ=n&amp;quot;];&lt;br /&gt;
a -x b [label=&amp;quot;PKT SEQ=n&amp;quot;];&lt;br /&gt;
a -x b [label=&amp;quot;PKT SEQ=n&amp;quot;];&lt;br /&gt;
a -x b [label=&amp;quot;PKT SEQ=n&amp;quot;];&lt;br /&gt;
a -x b [label=&amp;quot;PKT SEQ=n&amp;quot;];&lt;br /&gt;
a -x b [label=&amp;quot;RESET_COMMS SEQ=n+1&amp;quot;];&lt;br /&gt;
...;&lt;br /&gt;
...;&lt;br /&gt;
--- [label=&amp;quot;SEQ Error&amp;quot;];&lt;br /&gt;
a =&amp;gt; b [label=&amp;quot;PKT SEQ=n&amp;quot;];&lt;br /&gt;
b =&amp;gt; a [label=&amp;quot;RESP SEQ!=n&amp;quot;]; &lt;br /&gt;
a =&amp;gt; b [label=&amp;quot;RESET_COMMS SEQ=1&amp;quot;];&lt;br /&gt;
...;&lt;br /&gt;
...;&lt;br /&gt;
--- [label=&amp;quot;OP Error&amp;quot;];&lt;br /&gt;
a =&amp;gt; b [label=&amp;quot;PKT&amp;quot;];&lt;br /&gt;
b =&amp;gt; a [label=&amp;quot;ABORT&amp;quot;];&lt;br /&gt;
a =&amp;gt; b [label=&amp;quot;RESET_COMMS&amp;quot;];&lt;br /&gt;
b =&amp;gt; a [label=&amp;quot;ACK&amp;quot;];&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/mscgen&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:LDST]]&lt;br /&gt;
[[Category:Hardware]]&lt;/div&gt;</summary>
		<author><name>Pascual</name></author>
	</entry>
	<entry>
		<id>https://wiki.cadt.com/index.php?title=Catweasel&amp;diff=2688</id>
		<title>Catweasel</title>
		<link rel="alternate" type="text/html" href="https://wiki.cadt.com/index.php?title=Catweasel&amp;diff=2688"/>
		<updated>2015-04-21T09:03:17Z</updated>

		<summary type="html">&lt;p&gt;Pascual: /* Connexió provisional */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Hardware]]&lt;br /&gt;
[[Category:SysAdmin]]&lt;br /&gt;
[[Category:Leavers]]&lt;br /&gt;
&lt;br /&gt;
== Instal·lació ==&lt;br /&gt;
&lt;br /&gt;
=== Connexió provisional ===&lt;br /&gt;
&lt;br /&gt;
Per instalar una disquetera Catweasel primer necessitem afegir un jumper a la disquetera, on diu DC. Aquest jumper es necessari ja que el cable adaptador te tallada la linea &#039;&#039;Disc Change&#039;&#039; i la disquetera no funcionarà si no posem aquest jumper. Desconec si aquest problema es exclusiu de les nostres disqueteres &#039;&#039;Mitsubishi Electric&#039;&#039;. Després hem d&#039;instal·lar la disquetera de forma provisional a l&#039;ordinador, de manera que puguem manipular els jumpers més endavant sense massa dificultat. Per connectar la disquetera i la Catweasel cal seguir el següent document:&lt;br /&gt;
&lt;br /&gt;
/pub/docs/catweasel-installation/howto-french.pdf (Documentació en francès)&lt;br /&gt;
&lt;br /&gt;
=== Instal·lació del driver ===&lt;br /&gt;
&lt;br /&gt;
Ara cal arrencar el sistema operatiu i instal·lar el driver. A linux farem servir el driver cw [http://www.unusedino.de/cw/]. Actualment fem servir la versió 0.13 (05/2009), que es pot trobar al packages/Drivers/Catweasel. En tot cas sempre es interessant provar una versió mes moderna si n&#039;hi ha. Un cop compilat el driver (no ha de donar cap problema) tenim el mòdul &#039;&#039;cw.ko&#039;&#039; i els fitxers de dispositiu &#039;&#039;/dev/cw[01]raw[01]&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Amb el driver instal·lat i carregat, ens hauria de detectar la catweasel (veure &#039;&#039;dmesg&#039;&#039;). En cas contrari cal revisar el cablejat. &lt;br /&gt;
&lt;br /&gt;
=== Comunicació amb la disquetera ===&lt;br /&gt;
&lt;br /&gt;
Per que la instal·lació sigui correcta, cal que ens detecti la disquetera en el dispositiu /dev/cw0raw0 o bé /dev/c0raw1 i que hi puguem llegir d&#039;aquest dispositiu (ara veurem com). En cas contrari hem de modificar el jumper DS (&#039;&#039;Device Select&#039;&#039;) que es troba al costat del connector del cable de dades. Inicialment es troba a 0 pero potser cal posar-ho a 1 o 2. &lt;br /&gt;
&lt;br /&gt;
Per comprovar que la configuració es l&#039;adient, afegim un disquet a la unitat, tanquem la pestanya de seguretat i executem la comanda:&lt;br /&gt;
&lt;br /&gt;
 cwtool -R -v msdos_hd_5.25 /dev/cw0raw0 /tmp/image&lt;br /&gt;
&lt;br /&gt;
En aquest cas no ens hem de preocupar massa de si llegeix correctament (diu good:15 per cada track) o falla la lectura de dels sectors. L&#039;important es que la disquetera es mogui, escoltem el disquete girar i veiem en pantalla com va intentant llegir les diferents pistes. Si no llegeix els 15 sectors segurament sigui perquè el disquet que em ficat no està formatejat com &#039;&#039;msdos_hd_5.25&#039;&#039;. Es pot provar amb &#039;&#039;msdos_dd_5.25&#039;&#039;. Per veure una llista de tots els formats suportats, es pot fer servir la comanda &#039;&#039;cwtool -L&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Un cop estem llegint correctament de la disquetera, ja podem apagar l&#039;ordinador i instalar·la al seu emplaçament definitiu.&lt;br /&gt;
&lt;br /&gt;
== Configuració ==&lt;br /&gt;
&lt;br /&gt;
=== Permisos ===&lt;br /&gt;
&lt;br /&gt;
El driver es carregarà automàticament al arrencar l&#039;ordinador, igual que el fitxer de dispositiu. L&#039;única precaució que hem de prendre son els permisos d&#039;aquests fitxers &#039;&#039;/dev/cw*&#039;&#039;. Per configurar-los, podem afegir un script init de SAPO que realitzi un &#039;&#039;chmod 0666 /dev/cw*&#039;&#039;, o bé afegir un fitxer a &#039;&#039;/etc/security/console.perms.d/&#039;&#039; amb un contingut similar a:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;cw&amp;gt;=/dev/cw[01]raw[01]&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;console&amp;gt; 0666 &amp;lt;cw&amp;gt; 0666 root.root&lt;br /&gt;
&lt;br /&gt;
=== Disquets &#039;&#039;perçage&#039;&#039; ===&lt;br /&gt;
&lt;br /&gt;
Alguns clients tenen disquets de tipus &#039;&#039;perçage&#039;&#039;. Aquests disquets estan gravats amb un sistema [http://es.wikipedia.org/wiki/Sord_Computer_Corporation||SORD] M 68. Aquest ordinador crea els disquets en un format diferent, que només podem llegir amb la Catweasel. Si volem que el client pugui llegir i escriure aquests tipus de disquet cal modificar la configuració de la utilitat &#039;&#039;cwtool&#039;&#039;. Al fitxer /etc/cwtoolrc cal afegir la secció:&lt;br /&gt;
&lt;br /&gt;
 disk &amp;quot;leavers&amp;quot;&lt;br /&gt;
 {&lt;br /&gt;
 info &amp;quot;MFM, 5.25 inch, 154 trks, 2 sides, 8 sec/trk&amp;quot;&lt;br /&gt;
 format &amp;quot;mfm_nec765&amp;quot;&lt;br /&gt;
 clock 28&lt;br /&gt;
 sectors 8&lt;br /&gt;
 sector_sizes&lt;br /&gt;
 {&lt;br /&gt;
  1024 1024 1024 1024 1024 1024 1024 1024&lt;br /&gt;
 }&lt;br /&gt;
 read&lt;br /&gt;
 {&lt;br /&gt;
  timeout 300&lt;br /&gt;
  postcomp yes&lt;br /&gt;
 }&lt;br /&gt;
 write&lt;br /&gt;
 {&lt;br /&gt;
 timeout 500&lt;br /&gt;
 epilog_length 1024&lt;br /&gt;
 }&lt;br /&gt;
 track_range 0 153 1 { }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Al /packages/Drivers/Catweasel Floppy/ es pot trobar el fitxer cwtoolrc complert. Cal dir que el programa &#039;&#039;romi&#039;&#039; no està preparat per treballar amb aquest format. Ni tan sols s&#039;escriuen &#039;&#039;romis&#039;&#039; en aquest tipus de disquet. Lo normal es que incloguin fitxers [[sauvegarde]].&lt;br /&gt;
&lt;br /&gt;
=== Romi Tools ===&lt;br /&gt;
&lt;br /&gt;
A Linux, per treballar amb la catweasel fem servir les eines &#039;&#039;romi&#039;&#039;. Només cal configurar la variable d&#039;entorn &#039;&#039;ROMDISK&#039;&#039; amb el prefix &#039;&#039;cw:&#039;&#039; seguit del fitxer de dispositiu on es troba la catweasel. Per exemple:&lt;br /&gt;
&lt;br /&gt;
 ROMDISK=cw:/dev/cw0raw0&lt;br /&gt;
&lt;br /&gt;
Un cop fet aquest canvi, les utilitats &#039;&#039;romir&#039;&#039; i &#039;&#039;romiw&#039;&#039; treballaran amb la eina &#039;&#039;cwtool&#039;&#039; en comptes de intentar accedir a un disquet del sistema. Cal destacar que amb la catweasel no cal fer init (&#039;&#039;romii&#039;&#039;), purge (&#039;&#039;romip&#039;&#039;) ni res similar, doncs la operació d&#039;escriptura ja s&#039;encarrega d&#039;eliminar tot el contingut del disc (fins i tot el format físic). &lt;br /&gt;
&lt;br /&gt;
Un problema freqüent amb romir/romiw i la catweasel es pot donar quan es vol treballar amb un disquet que no es de tipus HD (&#039;&#039;High Density&#039;&#039;). Ni la catweasel ni cwtool tenen la forma de detectar el format, li hem de dir nosaltres. Per defecte es fa servir msdos_hd_5.25 que es de lluny el més freqüent, però es possible modificar això al fitxer &#039;&#039;/opt/sapo/usr/lib/romi/romi.lib&#039;&#039; (variable &#039;&#039;CWTYPE&#039;&#039;) o amb una variable d&#039;entorn &#039;&#039;DISKTYPE&#039;&#039; a l&#039;hora de cridar les eines romi. Així:&lt;br /&gt;
&lt;br /&gt;
 DISKTYPE=dd; romir &lt;br /&gt;
&lt;br /&gt;
Aquest exemple executarà la utilitat &#039;&#039;romir&#039;&#039; configurada per a un disquet de tipus DD (&#039;&#039;Double Density&#039;&#039;).&lt;br /&gt;
&lt;br /&gt;
== Catweasel sota Windows ==&lt;br /&gt;
&lt;br /&gt;
Per fer servir la catweasel sota Windows, el procés de instalació es similar. Cal connectar la disquetera de la forma descrita al apartat anterior i modificar el jumper DS si tenim problemes. Potser no es necessari el jumper a DC doncs el programa de Windows disposa de una opció &#039;&#039;Ignore Disk Change&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Per treballar a Windows hem fet servir el driver v2.5 BETA(Jul-2008) (a Packages). A la [http://www.jschoenfeld.de/home/indexe.htm pàgina oficial] ([http://siliconsonic.de/indexe.htm link alternatiu]) he trobat el driver v2.6 (Nov-2008) pero no l&#039;he arribat a provar.&lt;br /&gt;
&lt;br /&gt;
Amb aquests drivers hi ve una utilitat gràfica anomenada &#039;&#039;ImageTool&#039;&#039; que ens permet, al igual que &#039;&#039;cwtool&#039;&#039;, triar el format del disquet i llegir una imatge. &lt;br /&gt;
&lt;br /&gt;
== Instal·lacions a clients ==&lt;br /&gt;
&lt;br /&gt;
=== Desseilles ===&lt;br /&gt;
&lt;br /&gt;
Fan la lectura amb un ordinador amb Windows (drivers v2.5 BETA). La imatge que s&#039;escriu/llegeix es troba en un servidor de xarxa, de manera que s&#039;hi pot accedir des dels ordinadors SAPO. Així, les utilitats &#039;&#039;romi&#039;&#039; d&#039;aquests ordinadors escriuen i llegeixen aquesta imatge en comptes d&#039;un disquet.&lt;br /&gt;
&lt;br /&gt;
=== Magniez ===&lt;br /&gt;
&lt;br /&gt;
Recordo que tenia un ordinador antic amb windows i disquetera 5 1/4 integrada (sense Catweasel). Hi vam fer un script (.BAT) amb una mena de menú que li permetia llistar els ROMs a un directori, triar un per escriure, etc. Aquest directori estava compartit de manera que podia accedir als ROMs des de l&#039;ordinador SAPO. &lt;br /&gt;
&lt;br /&gt;
Aquesta aplicació la tenim en paquet instal·lable (InstallUS) en un directori &#039;&#039;win_package&#039;&#039; a les versions recents de &#039;&#039;romi&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Fa poc (2010) li vam instal·lar una Catweasel a un nou ordinador SAPO que va comprar, així que no deu fer servir més aquest sistema.&lt;br /&gt;
&lt;br /&gt;
=== Sophie Hallette ===&lt;br /&gt;
&lt;br /&gt;
El Tony te instalat al seu ordinador SAPO la Catweasel i les eines &#039;&#039;romi&#039;&#039; adients.&lt;br /&gt;
&lt;br /&gt;
=== Andre Laude ===&lt;br /&gt;
&lt;br /&gt;
Te un ordinador dedicat, &#039;&#039;romi&#039;&#039; (192.168.1.103). Es un ordinador antic amb una disquetera de 5 1/4, sense Catweasel. Te una versió de Linux sense X. Al fer login li surt un menú molt simple on pot triar entre llegir, escriure, llistar els ROMIs a disk, etc. Similar al programa per Windows que es va fer mes tard. Te una carpeta compartida per NFS (/home/romi) on hi poden accedir des dels ordinadors SAPO.&lt;/div&gt;</summary>
		<author><name>Pascual</name></author>
	</entry>
	<entry>
		<id>https://wiki.cadt.com/index.php?title=Catweasel&amp;diff=2687</id>
		<title>Catweasel</title>
		<link rel="alternate" type="text/html" href="https://wiki.cadt.com/index.php?title=Catweasel&amp;diff=2687"/>
		<updated>2015-04-21T09:02:50Z</updated>

		<summary type="html">&lt;p&gt;Pascual: /* Connexió provisional */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Hardware]]&lt;br /&gt;
[[Category:SysAdmin]]&lt;br /&gt;
[[Category:Leavers]]&lt;br /&gt;
&lt;br /&gt;
== Instal·lació ==&lt;br /&gt;
&lt;br /&gt;
=== Connexió provisional ===&lt;br /&gt;
&lt;br /&gt;
Per instalar una disquetera Catweasel primer necessitem afegir un jumper a la disquetera, on diu DC. Aquest jumper es necessari ja que el cable adaptador te tallada la linea &#039;&#039;Disc Change&#039;&#039; i la disquetera no funcionarà si no posem aquest jumper. Desconec si aquest problema es exclusiu de les nostres disqueteres &#039;&#039;Mitsubishi Electric&#039;&#039;. Després hem d&#039;instal·lar la disquetera de forma provisional a l&#039;ordinador, de manera que puguem manipular els jumpers més endavant sense massa dificultat. Per connectar la disquetera i la Catweasel cal seguir el següent document:&lt;br /&gt;
&lt;br /&gt;
[http:///pub/docs/catweasel-installation/howto-french.pdf (Documentació en francès)]&lt;br /&gt;
&lt;br /&gt;
=== Instal·lació del driver ===&lt;br /&gt;
&lt;br /&gt;
Ara cal arrencar el sistema operatiu i instal·lar el driver. A linux farem servir el driver cw [http://www.unusedino.de/cw/]. Actualment fem servir la versió 0.13 (05/2009), que es pot trobar al packages/Drivers/Catweasel. En tot cas sempre es interessant provar una versió mes moderna si n&#039;hi ha. Un cop compilat el driver (no ha de donar cap problema) tenim el mòdul &#039;&#039;cw.ko&#039;&#039; i els fitxers de dispositiu &#039;&#039;/dev/cw[01]raw[01]&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Amb el driver instal·lat i carregat, ens hauria de detectar la catweasel (veure &#039;&#039;dmesg&#039;&#039;). En cas contrari cal revisar el cablejat. &lt;br /&gt;
&lt;br /&gt;
=== Comunicació amb la disquetera ===&lt;br /&gt;
&lt;br /&gt;
Per que la instal·lació sigui correcta, cal que ens detecti la disquetera en el dispositiu /dev/cw0raw0 o bé /dev/c0raw1 i que hi puguem llegir d&#039;aquest dispositiu (ara veurem com). En cas contrari hem de modificar el jumper DS (&#039;&#039;Device Select&#039;&#039;) que es troba al costat del connector del cable de dades. Inicialment es troba a 0 pero potser cal posar-ho a 1 o 2. &lt;br /&gt;
&lt;br /&gt;
Per comprovar que la configuració es l&#039;adient, afegim un disquet a la unitat, tanquem la pestanya de seguretat i executem la comanda:&lt;br /&gt;
&lt;br /&gt;
 cwtool -R -v msdos_hd_5.25 /dev/cw0raw0 /tmp/image&lt;br /&gt;
&lt;br /&gt;
En aquest cas no ens hem de preocupar massa de si llegeix correctament (diu good:15 per cada track) o falla la lectura de dels sectors. L&#039;important es que la disquetera es mogui, escoltem el disquete girar i veiem en pantalla com va intentant llegir les diferents pistes. Si no llegeix els 15 sectors segurament sigui perquè el disquet que em ficat no està formatejat com &#039;&#039;msdos_hd_5.25&#039;&#039;. Es pot provar amb &#039;&#039;msdos_dd_5.25&#039;&#039;. Per veure una llista de tots els formats suportats, es pot fer servir la comanda &#039;&#039;cwtool -L&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Un cop estem llegint correctament de la disquetera, ja podem apagar l&#039;ordinador i instalar·la al seu emplaçament definitiu.&lt;br /&gt;
&lt;br /&gt;
== Configuració ==&lt;br /&gt;
&lt;br /&gt;
=== Permisos ===&lt;br /&gt;
&lt;br /&gt;
El driver es carregarà automàticament al arrencar l&#039;ordinador, igual que el fitxer de dispositiu. L&#039;única precaució que hem de prendre son els permisos d&#039;aquests fitxers &#039;&#039;/dev/cw*&#039;&#039;. Per configurar-los, podem afegir un script init de SAPO que realitzi un &#039;&#039;chmod 0666 /dev/cw*&#039;&#039;, o bé afegir un fitxer a &#039;&#039;/etc/security/console.perms.d/&#039;&#039; amb un contingut similar a:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;cw&amp;gt;=/dev/cw[01]raw[01]&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;console&amp;gt; 0666 &amp;lt;cw&amp;gt; 0666 root.root&lt;br /&gt;
&lt;br /&gt;
=== Disquets &#039;&#039;perçage&#039;&#039; ===&lt;br /&gt;
&lt;br /&gt;
Alguns clients tenen disquets de tipus &#039;&#039;perçage&#039;&#039;. Aquests disquets estan gravats amb un sistema [http://es.wikipedia.org/wiki/Sord_Computer_Corporation||SORD] M 68. Aquest ordinador crea els disquets en un format diferent, que només podem llegir amb la Catweasel. Si volem que el client pugui llegir i escriure aquests tipus de disquet cal modificar la configuració de la utilitat &#039;&#039;cwtool&#039;&#039;. Al fitxer /etc/cwtoolrc cal afegir la secció:&lt;br /&gt;
&lt;br /&gt;
 disk &amp;quot;leavers&amp;quot;&lt;br /&gt;
 {&lt;br /&gt;
 info &amp;quot;MFM, 5.25 inch, 154 trks, 2 sides, 8 sec/trk&amp;quot;&lt;br /&gt;
 format &amp;quot;mfm_nec765&amp;quot;&lt;br /&gt;
 clock 28&lt;br /&gt;
 sectors 8&lt;br /&gt;
 sector_sizes&lt;br /&gt;
 {&lt;br /&gt;
  1024 1024 1024 1024 1024 1024 1024 1024&lt;br /&gt;
 }&lt;br /&gt;
 read&lt;br /&gt;
 {&lt;br /&gt;
  timeout 300&lt;br /&gt;
  postcomp yes&lt;br /&gt;
 }&lt;br /&gt;
 write&lt;br /&gt;
 {&lt;br /&gt;
 timeout 500&lt;br /&gt;
 epilog_length 1024&lt;br /&gt;
 }&lt;br /&gt;
 track_range 0 153 1 { }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Al /packages/Drivers/Catweasel Floppy/ es pot trobar el fitxer cwtoolrc complert. Cal dir que el programa &#039;&#039;romi&#039;&#039; no està preparat per treballar amb aquest format. Ni tan sols s&#039;escriuen &#039;&#039;romis&#039;&#039; en aquest tipus de disquet. Lo normal es que incloguin fitxers [[sauvegarde]].&lt;br /&gt;
&lt;br /&gt;
=== Romi Tools ===&lt;br /&gt;
&lt;br /&gt;
A Linux, per treballar amb la catweasel fem servir les eines &#039;&#039;romi&#039;&#039;. Només cal configurar la variable d&#039;entorn &#039;&#039;ROMDISK&#039;&#039; amb el prefix &#039;&#039;cw:&#039;&#039; seguit del fitxer de dispositiu on es troba la catweasel. Per exemple:&lt;br /&gt;
&lt;br /&gt;
 ROMDISK=cw:/dev/cw0raw0&lt;br /&gt;
&lt;br /&gt;
Un cop fet aquest canvi, les utilitats &#039;&#039;romir&#039;&#039; i &#039;&#039;romiw&#039;&#039; treballaran amb la eina &#039;&#039;cwtool&#039;&#039; en comptes de intentar accedir a un disquet del sistema. Cal destacar que amb la catweasel no cal fer init (&#039;&#039;romii&#039;&#039;), purge (&#039;&#039;romip&#039;&#039;) ni res similar, doncs la operació d&#039;escriptura ja s&#039;encarrega d&#039;eliminar tot el contingut del disc (fins i tot el format físic). &lt;br /&gt;
&lt;br /&gt;
Un problema freqüent amb romir/romiw i la catweasel es pot donar quan es vol treballar amb un disquet que no es de tipus HD (&#039;&#039;High Density&#039;&#039;). Ni la catweasel ni cwtool tenen la forma de detectar el format, li hem de dir nosaltres. Per defecte es fa servir msdos_hd_5.25 que es de lluny el més freqüent, però es possible modificar això al fitxer &#039;&#039;/opt/sapo/usr/lib/romi/romi.lib&#039;&#039; (variable &#039;&#039;CWTYPE&#039;&#039;) o amb una variable d&#039;entorn &#039;&#039;DISKTYPE&#039;&#039; a l&#039;hora de cridar les eines romi. Així:&lt;br /&gt;
&lt;br /&gt;
 DISKTYPE=dd; romir &lt;br /&gt;
&lt;br /&gt;
Aquest exemple executarà la utilitat &#039;&#039;romir&#039;&#039; configurada per a un disquet de tipus DD (&#039;&#039;Double Density&#039;&#039;).&lt;br /&gt;
&lt;br /&gt;
== Catweasel sota Windows ==&lt;br /&gt;
&lt;br /&gt;
Per fer servir la catweasel sota Windows, el procés de instalació es similar. Cal connectar la disquetera de la forma descrita al apartat anterior i modificar el jumper DS si tenim problemes. Potser no es necessari el jumper a DC doncs el programa de Windows disposa de una opció &#039;&#039;Ignore Disk Change&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Per treballar a Windows hem fet servir el driver v2.5 BETA(Jul-2008) (a Packages). A la [http://www.jschoenfeld.de/home/indexe.htm pàgina oficial] ([http://siliconsonic.de/indexe.htm link alternatiu]) he trobat el driver v2.6 (Nov-2008) pero no l&#039;he arribat a provar.&lt;br /&gt;
&lt;br /&gt;
Amb aquests drivers hi ve una utilitat gràfica anomenada &#039;&#039;ImageTool&#039;&#039; que ens permet, al igual que &#039;&#039;cwtool&#039;&#039;, triar el format del disquet i llegir una imatge. &lt;br /&gt;
&lt;br /&gt;
== Instal·lacions a clients ==&lt;br /&gt;
&lt;br /&gt;
=== Desseilles ===&lt;br /&gt;
&lt;br /&gt;
Fan la lectura amb un ordinador amb Windows (drivers v2.5 BETA). La imatge que s&#039;escriu/llegeix es troba en un servidor de xarxa, de manera que s&#039;hi pot accedir des dels ordinadors SAPO. Així, les utilitats &#039;&#039;romi&#039;&#039; d&#039;aquests ordinadors escriuen i llegeixen aquesta imatge en comptes d&#039;un disquet.&lt;br /&gt;
&lt;br /&gt;
=== Magniez ===&lt;br /&gt;
&lt;br /&gt;
Recordo que tenia un ordinador antic amb windows i disquetera 5 1/4 integrada (sense Catweasel). Hi vam fer un script (.BAT) amb una mena de menú que li permetia llistar els ROMs a un directori, triar un per escriure, etc. Aquest directori estava compartit de manera que podia accedir als ROMs des de l&#039;ordinador SAPO. &lt;br /&gt;
&lt;br /&gt;
Aquesta aplicació la tenim en paquet instal·lable (InstallUS) en un directori &#039;&#039;win_package&#039;&#039; a les versions recents de &#039;&#039;romi&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Fa poc (2010) li vam instal·lar una Catweasel a un nou ordinador SAPO que va comprar, així que no deu fer servir més aquest sistema.&lt;br /&gt;
&lt;br /&gt;
=== Sophie Hallette ===&lt;br /&gt;
&lt;br /&gt;
El Tony te instalat al seu ordinador SAPO la Catweasel i les eines &#039;&#039;romi&#039;&#039; adients.&lt;br /&gt;
&lt;br /&gt;
=== Andre Laude ===&lt;br /&gt;
&lt;br /&gt;
Te un ordinador dedicat, &#039;&#039;romi&#039;&#039; (192.168.1.103). Es un ordinador antic amb una disquetera de 5 1/4, sense Catweasel. Te una versió de Linux sense X. Al fer login li surt un menú molt simple on pot triar entre llegir, escriure, llistar els ROMIs a disk, etc. Similar al programa per Windows que es va fer mes tard. Te una carpeta compartida per NFS (/home/romi) on hi poden accedir des dels ordinadors SAPO.&lt;/div&gt;</summary>
		<author><name>Pascual</name></author>
	</entry>
	<entry>
		<id>https://wiki.cadt.com/index.php?title=Catweasel&amp;diff=2686</id>
		<title>Catweasel</title>
		<link rel="alternate" type="text/html" href="https://wiki.cadt.com/index.php?title=Catweasel&amp;diff=2686"/>
		<updated>2015-04-21T09:02:16Z</updated>

		<summary type="html">&lt;p&gt;Pascual: /* Connexió provisional */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Hardware]]&lt;br /&gt;
[[Category:SysAdmin]]&lt;br /&gt;
[[Category:Leavers]]&lt;br /&gt;
&lt;br /&gt;
== Instal·lació ==&lt;br /&gt;
&lt;br /&gt;
=== Connexió provisional ===&lt;br /&gt;
&lt;br /&gt;
Per instalar una disquetera Catweasel primer necessitem afegir un jumper a la disquetera, on diu DC. Aquest jumper es necessari ja que el cable adaptador te tallada la linea &#039;&#039;Disc Change&#039;&#039; i la disquetera no funcionarà si no posem aquest jumper. Desconec si aquest problema es exclusiu de les nostres disqueteres &#039;&#039;Mitsubishi Electric&#039;&#039;. Després hem d&#039;instal·lar la disquetera de forma provisional a l&#039;ordinador, de manera que puguem manipular els jumpers més endavant sense massa dificultat. Per connectar la disquetera i la Catweasel cal seguir el següent document:&lt;br /&gt;
&lt;br /&gt;
[file:///pub/docs/catweasel-installation/howto-french.pdf (Documentació en francès)]&lt;br /&gt;
&lt;br /&gt;
=== Instal·lació del driver ===&lt;br /&gt;
&lt;br /&gt;
Ara cal arrencar el sistema operatiu i instal·lar el driver. A linux farem servir el driver cw [http://www.unusedino.de/cw/]. Actualment fem servir la versió 0.13 (05/2009), que es pot trobar al packages/Drivers/Catweasel. En tot cas sempre es interessant provar una versió mes moderna si n&#039;hi ha. Un cop compilat el driver (no ha de donar cap problema) tenim el mòdul &#039;&#039;cw.ko&#039;&#039; i els fitxers de dispositiu &#039;&#039;/dev/cw[01]raw[01]&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Amb el driver instal·lat i carregat, ens hauria de detectar la catweasel (veure &#039;&#039;dmesg&#039;&#039;). En cas contrari cal revisar el cablejat. &lt;br /&gt;
&lt;br /&gt;
=== Comunicació amb la disquetera ===&lt;br /&gt;
&lt;br /&gt;
Per que la instal·lació sigui correcta, cal que ens detecti la disquetera en el dispositiu /dev/cw0raw0 o bé /dev/c0raw1 i que hi puguem llegir d&#039;aquest dispositiu (ara veurem com). En cas contrari hem de modificar el jumper DS (&#039;&#039;Device Select&#039;&#039;) que es troba al costat del connector del cable de dades. Inicialment es troba a 0 pero potser cal posar-ho a 1 o 2. &lt;br /&gt;
&lt;br /&gt;
Per comprovar que la configuració es l&#039;adient, afegim un disquet a la unitat, tanquem la pestanya de seguretat i executem la comanda:&lt;br /&gt;
&lt;br /&gt;
 cwtool -R -v msdos_hd_5.25 /dev/cw0raw0 /tmp/image&lt;br /&gt;
&lt;br /&gt;
En aquest cas no ens hem de preocupar massa de si llegeix correctament (diu good:15 per cada track) o falla la lectura de dels sectors. L&#039;important es que la disquetera es mogui, escoltem el disquete girar i veiem en pantalla com va intentant llegir les diferents pistes. Si no llegeix els 15 sectors segurament sigui perquè el disquet que em ficat no està formatejat com &#039;&#039;msdos_hd_5.25&#039;&#039;. Es pot provar amb &#039;&#039;msdos_dd_5.25&#039;&#039;. Per veure una llista de tots els formats suportats, es pot fer servir la comanda &#039;&#039;cwtool -L&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Un cop estem llegint correctament de la disquetera, ja podem apagar l&#039;ordinador i instalar·la al seu emplaçament definitiu.&lt;br /&gt;
&lt;br /&gt;
== Configuració ==&lt;br /&gt;
&lt;br /&gt;
=== Permisos ===&lt;br /&gt;
&lt;br /&gt;
El driver es carregarà automàticament al arrencar l&#039;ordinador, igual que el fitxer de dispositiu. L&#039;única precaució que hem de prendre son els permisos d&#039;aquests fitxers &#039;&#039;/dev/cw*&#039;&#039;. Per configurar-los, podem afegir un script init de SAPO que realitzi un &#039;&#039;chmod 0666 /dev/cw*&#039;&#039;, o bé afegir un fitxer a &#039;&#039;/etc/security/console.perms.d/&#039;&#039; amb un contingut similar a:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;cw&amp;gt;=/dev/cw[01]raw[01]&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;console&amp;gt; 0666 &amp;lt;cw&amp;gt; 0666 root.root&lt;br /&gt;
&lt;br /&gt;
=== Disquets &#039;&#039;perçage&#039;&#039; ===&lt;br /&gt;
&lt;br /&gt;
Alguns clients tenen disquets de tipus &#039;&#039;perçage&#039;&#039;. Aquests disquets estan gravats amb un sistema [http://es.wikipedia.org/wiki/Sord_Computer_Corporation||SORD] M 68. Aquest ordinador crea els disquets en un format diferent, que només podem llegir amb la Catweasel. Si volem que el client pugui llegir i escriure aquests tipus de disquet cal modificar la configuració de la utilitat &#039;&#039;cwtool&#039;&#039;. Al fitxer /etc/cwtoolrc cal afegir la secció:&lt;br /&gt;
&lt;br /&gt;
 disk &amp;quot;leavers&amp;quot;&lt;br /&gt;
 {&lt;br /&gt;
 info &amp;quot;MFM, 5.25 inch, 154 trks, 2 sides, 8 sec/trk&amp;quot;&lt;br /&gt;
 format &amp;quot;mfm_nec765&amp;quot;&lt;br /&gt;
 clock 28&lt;br /&gt;
 sectors 8&lt;br /&gt;
 sector_sizes&lt;br /&gt;
 {&lt;br /&gt;
  1024 1024 1024 1024 1024 1024 1024 1024&lt;br /&gt;
 }&lt;br /&gt;
 read&lt;br /&gt;
 {&lt;br /&gt;
  timeout 300&lt;br /&gt;
  postcomp yes&lt;br /&gt;
 }&lt;br /&gt;
 write&lt;br /&gt;
 {&lt;br /&gt;
 timeout 500&lt;br /&gt;
 epilog_length 1024&lt;br /&gt;
 }&lt;br /&gt;
 track_range 0 153 1 { }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Al /packages/Drivers/Catweasel Floppy/ es pot trobar el fitxer cwtoolrc complert. Cal dir que el programa &#039;&#039;romi&#039;&#039; no està preparat per treballar amb aquest format. Ni tan sols s&#039;escriuen &#039;&#039;romis&#039;&#039; en aquest tipus de disquet. Lo normal es que incloguin fitxers [[sauvegarde]].&lt;br /&gt;
&lt;br /&gt;
=== Romi Tools ===&lt;br /&gt;
&lt;br /&gt;
A Linux, per treballar amb la catweasel fem servir les eines &#039;&#039;romi&#039;&#039;. Només cal configurar la variable d&#039;entorn &#039;&#039;ROMDISK&#039;&#039; amb el prefix &#039;&#039;cw:&#039;&#039; seguit del fitxer de dispositiu on es troba la catweasel. Per exemple:&lt;br /&gt;
&lt;br /&gt;
 ROMDISK=cw:/dev/cw0raw0&lt;br /&gt;
&lt;br /&gt;
Un cop fet aquest canvi, les utilitats &#039;&#039;romir&#039;&#039; i &#039;&#039;romiw&#039;&#039; treballaran amb la eina &#039;&#039;cwtool&#039;&#039; en comptes de intentar accedir a un disquet del sistema. Cal destacar que amb la catweasel no cal fer init (&#039;&#039;romii&#039;&#039;), purge (&#039;&#039;romip&#039;&#039;) ni res similar, doncs la operació d&#039;escriptura ja s&#039;encarrega d&#039;eliminar tot el contingut del disc (fins i tot el format físic). &lt;br /&gt;
&lt;br /&gt;
Un problema freqüent amb romir/romiw i la catweasel es pot donar quan es vol treballar amb un disquet que no es de tipus HD (&#039;&#039;High Density&#039;&#039;). Ni la catweasel ni cwtool tenen la forma de detectar el format, li hem de dir nosaltres. Per defecte es fa servir msdos_hd_5.25 que es de lluny el més freqüent, però es possible modificar això al fitxer &#039;&#039;/opt/sapo/usr/lib/romi/romi.lib&#039;&#039; (variable &#039;&#039;CWTYPE&#039;&#039;) o amb una variable d&#039;entorn &#039;&#039;DISKTYPE&#039;&#039; a l&#039;hora de cridar les eines romi. Així:&lt;br /&gt;
&lt;br /&gt;
 DISKTYPE=dd; romir &lt;br /&gt;
&lt;br /&gt;
Aquest exemple executarà la utilitat &#039;&#039;romir&#039;&#039; configurada per a un disquet de tipus DD (&#039;&#039;Double Density&#039;&#039;).&lt;br /&gt;
&lt;br /&gt;
== Catweasel sota Windows ==&lt;br /&gt;
&lt;br /&gt;
Per fer servir la catweasel sota Windows, el procés de instalació es similar. Cal connectar la disquetera de la forma descrita al apartat anterior i modificar el jumper DS si tenim problemes. Potser no es necessari el jumper a DC doncs el programa de Windows disposa de una opció &#039;&#039;Ignore Disk Change&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Per treballar a Windows hem fet servir el driver v2.5 BETA(Jul-2008) (a Packages). A la [http://www.jschoenfeld.de/home/indexe.htm pàgina oficial] ([http://siliconsonic.de/indexe.htm link alternatiu]) he trobat el driver v2.6 (Nov-2008) pero no l&#039;he arribat a provar.&lt;br /&gt;
&lt;br /&gt;
Amb aquests drivers hi ve una utilitat gràfica anomenada &#039;&#039;ImageTool&#039;&#039; que ens permet, al igual que &#039;&#039;cwtool&#039;&#039;, triar el format del disquet i llegir una imatge. &lt;br /&gt;
&lt;br /&gt;
== Instal·lacions a clients ==&lt;br /&gt;
&lt;br /&gt;
=== Desseilles ===&lt;br /&gt;
&lt;br /&gt;
Fan la lectura amb un ordinador amb Windows (drivers v2.5 BETA). La imatge que s&#039;escriu/llegeix es troba en un servidor de xarxa, de manera que s&#039;hi pot accedir des dels ordinadors SAPO. Així, les utilitats &#039;&#039;romi&#039;&#039; d&#039;aquests ordinadors escriuen i llegeixen aquesta imatge en comptes d&#039;un disquet.&lt;br /&gt;
&lt;br /&gt;
=== Magniez ===&lt;br /&gt;
&lt;br /&gt;
Recordo que tenia un ordinador antic amb windows i disquetera 5 1/4 integrada (sense Catweasel). Hi vam fer un script (.BAT) amb una mena de menú que li permetia llistar els ROMs a un directori, triar un per escriure, etc. Aquest directori estava compartit de manera que podia accedir als ROMs des de l&#039;ordinador SAPO. &lt;br /&gt;
&lt;br /&gt;
Aquesta aplicació la tenim en paquet instal·lable (InstallUS) en un directori &#039;&#039;win_package&#039;&#039; a les versions recents de &#039;&#039;romi&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Fa poc (2010) li vam instal·lar una Catweasel a un nou ordinador SAPO que va comprar, així que no deu fer servir més aquest sistema.&lt;br /&gt;
&lt;br /&gt;
=== Sophie Hallette ===&lt;br /&gt;
&lt;br /&gt;
El Tony te instalat al seu ordinador SAPO la Catweasel i les eines &#039;&#039;romi&#039;&#039; adients.&lt;br /&gt;
&lt;br /&gt;
=== Andre Laude ===&lt;br /&gt;
&lt;br /&gt;
Te un ordinador dedicat, &#039;&#039;romi&#039;&#039; (192.168.1.103). Es un ordinador antic amb una disquetera de 5 1/4, sense Catweasel. Te una versió de Linux sense X. Al fer login li surt un menú molt simple on pot triar entre llegir, escriure, llistar els ROMIs a disk, etc. Similar al programa per Windows que es va fer mes tard. Te una carpeta compartida per NFS (/home/romi) on hi poden accedir des dels ordinadors SAPO.&lt;/div&gt;</summary>
		<author><name>Pascual</name></author>
	</entry>
	<entry>
		<id>https://wiki.cadt.com/index.php?title=Catweasel&amp;diff=2685</id>
		<title>Catweasel</title>
		<link rel="alternate" type="text/html" href="https://wiki.cadt.com/index.php?title=Catweasel&amp;diff=2685"/>
		<updated>2015-04-21T09:01:30Z</updated>

		<summary type="html">&lt;p&gt;Pascual: /* Connexió provisional */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Hardware]]&lt;br /&gt;
[[Category:SysAdmin]]&lt;br /&gt;
[[Category:Leavers]]&lt;br /&gt;
&lt;br /&gt;
== Instal·lació ==&lt;br /&gt;
&lt;br /&gt;
=== Connexió provisional ===&lt;br /&gt;
&lt;br /&gt;
Per instalar una disquetera Catweasel primer necessitem afegir un jumper a la disquetera, on diu DC. Aquest jumper es necessari ja que el cable adaptador te tallada la linea &#039;&#039;Disc Change&#039;&#039; i la disquetera no funcionarà si no posem aquest jumper. Desconec si aquest problema es exclusiu de les nostres disqueteres &#039;&#039;Mitsubishi Electric&#039;&#039;. Després hem d&#039;instal·lar la disquetera de forma provisional a l&#039;ordinador, de manera que puguem manipular els jumpers més endavant sense massa dificultat. Per connectar la disquetera i la Catweasel cal seguir el següent document:&lt;br /&gt;
&lt;br /&gt;
file://pub/docs/catweasel-installation/howto-french.pdf (Francès)&lt;br /&gt;
&lt;br /&gt;
=== Instal·lació del driver ===&lt;br /&gt;
&lt;br /&gt;
Ara cal arrencar el sistema operatiu i instal·lar el driver. A linux farem servir el driver cw [http://www.unusedino.de/cw/]. Actualment fem servir la versió 0.13 (05/2009), que es pot trobar al packages/Drivers/Catweasel. En tot cas sempre es interessant provar una versió mes moderna si n&#039;hi ha. Un cop compilat el driver (no ha de donar cap problema) tenim el mòdul &#039;&#039;cw.ko&#039;&#039; i els fitxers de dispositiu &#039;&#039;/dev/cw[01]raw[01]&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Amb el driver instal·lat i carregat, ens hauria de detectar la catweasel (veure &#039;&#039;dmesg&#039;&#039;). En cas contrari cal revisar el cablejat. &lt;br /&gt;
&lt;br /&gt;
=== Comunicació amb la disquetera ===&lt;br /&gt;
&lt;br /&gt;
Per que la instal·lació sigui correcta, cal que ens detecti la disquetera en el dispositiu /dev/cw0raw0 o bé /dev/c0raw1 i que hi puguem llegir d&#039;aquest dispositiu (ara veurem com). En cas contrari hem de modificar el jumper DS (&#039;&#039;Device Select&#039;&#039;) que es troba al costat del connector del cable de dades. Inicialment es troba a 0 pero potser cal posar-ho a 1 o 2. &lt;br /&gt;
&lt;br /&gt;
Per comprovar que la configuració es l&#039;adient, afegim un disquet a la unitat, tanquem la pestanya de seguretat i executem la comanda:&lt;br /&gt;
&lt;br /&gt;
 cwtool -R -v msdos_hd_5.25 /dev/cw0raw0 /tmp/image&lt;br /&gt;
&lt;br /&gt;
En aquest cas no ens hem de preocupar massa de si llegeix correctament (diu good:15 per cada track) o falla la lectura de dels sectors. L&#039;important es que la disquetera es mogui, escoltem el disquete girar i veiem en pantalla com va intentant llegir les diferents pistes. Si no llegeix els 15 sectors segurament sigui perquè el disquet que em ficat no està formatejat com &#039;&#039;msdos_hd_5.25&#039;&#039;. Es pot provar amb &#039;&#039;msdos_dd_5.25&#039;&#039;. Per veure una llista de tots els formats suportats, es pot fer servir la comanda &#039;&#039;cwtool -L&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Un cop estem llegint correctament de la disquetera, ja podem apagar l&#039;ordinador i instalar·la al seu emplaçament definitiu.&lt;br /&gt;
&lt;br /&gt;
== Configuració ==&lt;br /&gt;
&lt;br /&gt;
=== Permisos ===&lt;br /&gt;
&lt;br /&gt;
El driver es carregarà automàticament al arrencar l&#039;ordinador, igual que el fitxer de dispositiu. L&#039;única precaució que hem de prendre son els permisos d&#039;aquests fitxers &#039;&#039;/dev/cw*&#039;&#039;. Per configurar-los, podem afegir un script init de SAPO que realitzi un &#039;&#039;chmod 0666 /dev/cw*&#039;&#039;, o bé afegir un fitxer a &#039;&#039;/etc/security/console.perms.d/&#039;&#039; amb un contingut similar a:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;cw&amp;gt;=/dev/cw[01]raw[01]&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;console&amp;gt; 0666 &amp;lt;cw&amp;gt; 0666 root.root&lt;br /&gt;
&lt;br /&gt;
=== Disquets &#039;&#039;perçage&#039;&#039; ===&lt;br /&gt;
&lt;br /&gt;
Alguns clients tenen disquets de tipus &#039;&#039;perçage&#039;&#039;. Aquests disquets estan gravats amb un sistema [http://es.wikipedia.org/wiki/Sord_Computer_Corporation||SORD] M 68. Aquest ordinador crea els disquets en un format diferent, que només podem llegir amb la Catweasel. Si volem que el client pugui llegir i escriure aquests tipus de disquet cal modificar la configuració de la utilitat &#039;&#039;cwtool&#039;&#039;. Al fitxer /etc/cwtoolrc cal afegir la secció:&lt;br /&gt;
&lt;br /&gt;
 disk &amp;quot;leavers&amp;quot;&lt;br /&gt;
 {&lt;br /&gt;
 info &amp;quot;MFM, 5.25 inch, 154 trks, 2 sides, 8 sec/trk&amp;quot;&lt;br /&gt;
 format &amp;quot;mfm_nec765&amp;quot;&lt;br /&gt;
 clock 28&lt;br /&gt;
 sectors 8&lt;br /&gt;
 sector_sizes&lt;br /&gt;
 {&lt;br /&gt;
  1024 1024 1024 1024 1024 1024 1024 1024&lt;br /&gt;
 }&lt;br /&gt;
 read&lt;br /&gt;
 {&lt;br /&gt;
  timeout 300&lt;br /&gt;
  postcomp yes&lt;br /&gt;
 }&lt;br /&gt;
 write&lt;br /&gt;
 {&lt;br /&gt;
 timeout 500&lt;br /&gt;
 epilog_length 1024&lt;br /&gt;
 }&lt;br /&gt;
 track_range 0 153 1 { }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Al /packages/Drivers/Catweasel Floppy/ es pot trobar el fitxer cwtoolrc complert. Cal dir que el programa &#039;&#039;romi&#039;&#039; no està preparat per treballar amb aquest format. Ni tan sols s&#039;escriuen &#039;&#039;romis&#039;&#039; en aquest tipus de disquet. Lo normal es que incloguin fitxers [[sauvegarde]].&lt;br /&gt;
&lt;br /&gt;
=== Romi Tools ===&lt;br /&gt;
&lt;br /&gt;
A Linux, per treballar amb la catweasel fem servir les eines &#039;&#039;romi&#039;&#039;. Només cal configurar la variable d&#039;entorn &#039;&#039;ROMDISK&#039;&#039; amb el prefix &#039;&#039;cw:&#039;&#039; seguit del fitxer de dispositiu on es troba la catweasel. Per exemple:&lt;br /&gt;
&lt;br /&gt;
 ROMDISK=cw:/dev/cw0raw0&lt;br /&gt;
&lt;br /&gt;
Un cop fet aquest canvi, les utilitats &#039;&#039;romir&#039;&#039; i &#039;&#039;romiw&#039;&#039; treballaran amb la eina &#039;&#039;cwtool&#039;&#039; en comptes de intentar accedir a un disquet del sistema. Cal destacar que amb la catweasel no cal fer init (&#039;&#039;romii&#039;&#039;), purge (&#039;&#039;romip&#039;&#039;) ni res similar, doncs la operació d&#039;escriptura ja s&#039;encarrega d&#039;eliminar tot el contingut del disc (fins i tot el format físic). &lt;br /&gt;
&lt;br /&gt;
Un problema freqüent amb romir/romiw i la catweasel es pot donar quan es vol treballar amb un disquet que no es de tipus HD (&#039;&#039;High Density&#039;&#039;). Ni la catweasel ni cwtool tenen la forma de detectar el format, li hem de dir nosaltres. Per defecte es fa servir msdos_hd_5.25 que es de lluny el més freqüent, però es possible modificar això al fitxer &#039;&#039;/opt/sapo/usr/lib/romi/romi.lib&#039;&#039; (variable &#039;&#039;CWTYPE&#039;&#039;) o amb una variable d&#039;entorn &#039;&#039;DISKTYPE&#039;&#039; a l&#039;hora de cridar les eines romi. Així:&lt;br /&gt;
&lt;br /&gt;
 DISKTYPE=dd; romir &lt;br /&gt;
&lt;br /&gt;
Aquest exemple executarà la utilitat &#039;&#039;romir&#039;&#039; configurada per a un disquet de tipus DD (&#039;&#039;Double Density&#039;&#039;).&lt;br /&gt;
&lt;br /&gt;
== Catweasel sota Windows ==&lt;br /&gt;
&lt;br /&gt;
Per fer servir la catweasel sota Windows, el procés de instalació es similar. Cal connectar la disquetera de la forma descrita al apartat anterior i modificar el jumper DS si tenim problemes. Potser no es necessari el jumper a DC doncs el programa de Windows disposa de una opció &#039;&#039;Ignore Disk Change&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Per treballar a Windows hem fet servir el driver v2.5 BETA(Jul-2008) (a Packages). A la [http://www.jschoenfeld.de/home/indexe.htm pàgina oficial] ([http://siliconsonic.de/indexe.htm link alternatiu]) he trobat el driver v2.6 (Nov-2008) pero no l&#039;he arribat a provar.&lt;br /&gt;
&lt;br /&gt;
Amb aquests drivers hi ve una utilitat gràfica anomenada &#039;&#039;ImageTool&#039;&#039; que ens permet, al igual que &#039;&#039;cwtool&#039;&#039;, triar el format del disquet i llegir una imatge. &lt;br /&gt;
&lt;br /&gt;
== Instal·lacions a clients ==&lt;br /&gt;
&lt;br /&gt;
=== Desseilles ===&lt;br /&gt;
&lt;br /&gt;
Fan la lectura amb un ordinador amb Windows (drivers v2.5 BETA). La imatge que s&#039;escriu/llegeix es troba en un servidor de xarxa, de manera que s&#039;hi pot accedir des dels ordinadors SAPO. Així, les utilitats &#039;&#039;romi&#039;&#039; d&#039;aquests ordinadors escriuen i llegeixen aquesta imatge en comptes d&#039;un disquet.&lt;br /&gt;
&lt;br /&gt;
=== Magniez ===&lt;br /&gt;
&lt;br /&gt;
Recordo que tenia un ordinador antic amb windows i disquetera 5 1/4 integrada (sense Catweasel). Hi vam fer un script (.BAT) amb una mena de menú que li permetia llistar els ROMs a un directori, triar un per escriure, etc. Aquest directori estava compartit de manera que podia accedir als ROMs des de l&#039;ordinador SAPO. &lt;br /&gt;
&lt;br /&gt;
Aquesta aplicació la tenim en paquet instal·lable (InstallUS) en un directori &#039;&#039;win_package&#039;&#039; a les versions recents de &#039;&#039;romi&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Fa poc (2010) li vam instal·lar una Catweasel a un nou ordinador SAPO que va comprar, així que no deu fer servir més aquest sistema.&lt;br /&gt;
&lt;br /&gt;
=== Sophie Hallette ===&lt;br /&gt;
&lt;br /&gt;
El Tony te instalat al seu ordinador SAPO la Catweasel i les eines &#039;&#039;romi&#039;&#039; adients.&lt;br /&gt;
&lt;br /&gt;
=== Andre Laude ===&lt;br /&gt;
&lt;br /&gt;
Te un ordinador dedicat, &#039;&#039;romi&#039;&#039; (192.168.1.103). Es un ordinador antic amb una disquetera de 5 1/4, sense Catweasel. Te una versió de Linux sense X. Al fer login li surt un menú molt simple on pot triar entre llegir, escriure, llistar els ROMIs a disk, etc. Similar al programa per Windows que es va fer mes tard. Te una carpeta compartida per NFS (/home/romi) on hi poden accedir des dels ordinadors SAPO.&lt;/div&gt;</summary>
		<author><name>Pascual</name></author>
	</entry>
	<entry>
		<id>https://wiki.cadt.com/index.php?title=Plantilla:MediaFile&amp;diff=2684</id>
		<title>Plantilla:MediaFile</title>
		<link rel="alternate" type="text/html" href="https://wiki.cadt.com/index.php?title=Plantilla:MediaFile&amp;diff=2684"/>
		<updated>2015-04-15T09:55:34Z</updated>

		<summary type="html">&lt;p&gt;Pascual: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[http://wiki.cadt.com/media-files/{{{1}}} {{{2}}}]&lt;/div&gt;</summary>
		<author><name>Pascual</name></author>
	</entry>
	<entry>
		<id>https://wiki.cadt.com/index.php?title=ALC_RAM1-4&amp;diff=2683</id>
		<title>ALC RAM1-4</title>
		<link rel="alternate" type="text/html" href="https://wiki.cadt.com/index.php?title=ALC_RAM1-4&amp;diff=2683"/>
		<updated>2015-04-15T09:48:20Z</updated>

		<summary type="html">&lt;p&gt;Pascual: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:LDST]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=wiki-table&amp;gt;{{MediaImgFile|LDST/LoomComputers/MAYER/CARDS/ALC_RAM/thumb.jpg}}&amp;lt;/div&amp;gt;&lt;br /&gt;
Substitut a la tarja de memòria bombolla, per poder guardar el disseny. s&#039;utilitzen SRAMs que retenen la informació mentre tenen electricitat. Per permetre recordar les dades a la màquina entre apagades la SRAM es pot alimentar d&#039;una petita bateria soldada a la propia tarja o des d&#039;una bateria externa.&lt;br /&gt;
&lt;br /&gt;
Aquest mòdul pot funcionar tan en mode 16bits com 8bits (si es seguis correctament l&#039;estandard del bus no hi haurien problemes però sembla que Mayer ha fet algo estrany per variar...) i és necessari canviar la configuració d&#039;un pont del SW2 en funció del tipus de màquina:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;div style=&amp;quot;font-family: monospace&amp;quot;&amp;gt;&lt;br /&gt;
{|class=wikitable&lt;br /&gt;
!colspan=3|Configuració SW2&lt;br /&gt;
|-&lt;br /&gt;
!Pont||16Bits||8Bits&lt;br /&gt;
|-&lt;br /&gt;
|1-8||&amp;amp;#x233E; &amp;amp;#x233E;||&amp;amp;#x233E; &amp;amp;#x233E;&lt;br /&gt;
|-&lt;br /&gt;
|2-7||&amp;amp;#x233E;=&amp;amp;#x233E;||&amp;amp;#x233E; &amp;amp;#x233E;&lt;br /&gt;
|-&lt;br /&gt;
|3-6||&amp;amp;#x233E; &amp;amp;#x233E; ||&amp;amp;#x233E;=&amp;amp;#x233E;&lt;br /&gt;
|-&lt;br /&gt;
|4-5|| &amp;amp;#x233E;=&amp;amp;#x233E; ||&amp;amp;#x233E;=&amp;amp;#x233E;&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;IMPORTANT&#039;&#039;&#039;: Per màquines del tipus model 1 requereixen la configuració de 8Bits o fallará durant la carrega del disseny amb:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
RIGHT MACHINE TYPE AND SETOUT (J/N) J   0079  MEMORY-ERROR&lt;br /&gt;
NO PATTERN STORED&lt;br /&gt;
NO PATTERN-CASSETTE&lt;br /&gt;
&lt;br /&gt;
PLEASE INSERT THE 1. CASSETTE: THEN PRESS RETURN&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Analisis de la tarja ==&lt;br /&gt;
&lt;br /&gt;
Sempre consta de 32 xips de memòria SRAM que poden ser des de 32Kbytes (1MByte total) fins a un màxim 128Kbytes (4MBytes). un demultiplexador doble de 4 a 16 una PALCE20V10 un xip de gestió d&#039;alimentació corrent/bateria i diversos transceivers de bus i portes lògiques. També hi ha un SW1 amb 8 ponts configuarables que sembla que controlar la addr base de la tarja.&lt;/div&gt;</summary>
		<author><name>Pascual</name></author>
	</entry>
	<entry>
		<id>https://wiki.cadt.com/index.php?title=ALC_RAM1-4&amp;diff=2682</id>
		<title>ALC RAM1-4</title>
		<link rel="alternate" type="text/html" href="https://wiki.cadt.com/index.php?title=ALC_RAM1-4&amp;diff=2682"/>
		<updated>2015-04-15T09:47:23Z</updated>

		<summary type="html">&lt;p&gt;Pascual: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:LDST]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=wiki-table&amp;gt;{{MediaImgFile|LDST/Loom_Computers/MAYER/CARDS/ALC_RAM/thumb.jpg}}&amp;lt;/div&amp;gt;&lt;br /&gt;
Substitut a la tarja de memòria bombolla, per poder guardar el disseny. s&#039;utilitzen SRAMs que retenen la informació mentre tenen electricitat. Per permetre recordar les dades a la màquina entre apagades la SRAM es pot alimentar d&#039;una petita bateria soldada a la propia tarja o des d&#039;una bateria externa.&lt;br /&gt;
&lt;br /&gt;
Aquest mòdul pot funcionar tan en mode 16bits com 8bits (si es seguis correctament l&#039;estandard del bus no hi haurien problemes però sembla que Mayer ha fet algo estrany per variar...) i és necessari canviar la configuració d&#039;un pont del SW2 en funció del tipus de màquina:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;div style=&amp;quot;font-family: monospace&amp;quot;&amp;gt;&lt;br /&gt;
{|class=wikitable&lt;br /&gt;
!colspan=3|Configuració SW2&lt;br /&gt;
|-&lt;br /&gt;
!Pont||16Bits||8Bits&lt;br /&gt;
|-&lt;br /&gt;
|1-8||&amp;amp;#x233E; &amp;amp;#x233E;||&amp;amp;#x233E; &amp;amp;#x233E;&lt;br /&gt;
|-&lt;br /&gt;
|2-7||&amp;amp;#x233E;=&amp;amp;#x233E;||&amp;amp;#x233E; &amp;amp;#x233E;&lt;br /&gt;
|-&lt;br /&gt;
|3-6||&amp;amp;#x233E; &amp;amp;#x233E; ||&amp;amp;#x233E;=&amp;amp;#x233E;&lt;br /&gt;
|-&lt;br /&gt;
|4-5|| &amp;amp;#x233E;=&amp;amp;#x233E; ||&amp;amp;#x233E;=&amp;amp;#x233E;&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;IMPORTANT&#039;&#039;&#039;: Per màquines del tipus model 1 requereixen la configuració de 8Bits o fallará durant la carrega del disseny amb:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
RIGHT MACHINE TYPE AND SETOUT (J/N) J   0079  MEMORY-ERROR&lt;br /&gt;
NO PATTERN STORED&lt;br /&gt;
NO PATTERN-CASSETTE&lt;br /&gt;
&lt;br /&gt;
PLEASE INSERT THE 1. CASSETTE: THEN PRESS RETURN&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Analisis de la tarja ==&lt;br /&gt;
&lt;br /&gt;
Sempre consta de 32 xips de memòria SRAM que poden ser des de 32Kbytes (1MByte total) fins a un màxim 128Kbytes (4MBytes). un demultiplexador doble de 4 a 16 una PALCE20V10 un xip de gestió d&#039;alimentació corrent/bateria i diversos transceivers de bus i portes lògiques. També hi ha un SW1 amb 8 ponts configuarables que sembla que controlar la addr base de la tarja.&lt;/div&gt;</summary>
		<author><name>Pascual</name></author>
	</entry>
	<entry>
		<id>https://wiki.cadt.com/index.php?title=ALC_RAM1-4&amp;diff=2681</id>
		<title>ALC RAM1-4</title>
		<link rel="alternate" type="text/html" href="https://wiki.cadt.com/index.php?title=ALC_RAM1-4&amp;diff=2681"/>
		<updated>2015-04-15T09:46:50Z</updated>

		<summary type="html">&lt;p&gt;Pascual: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:LDST]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=wiki-table&amp;gt;{{MediaImgFile|LDST/LOOM_COMPUTERS/MAYER/CARDS/ALC_RAM/thumb.jpg}}&amp;lt;/div&amp;gt;&lt;br /&gt;
Substitut a la tarja de memòria bombolla, per poder guardar el disseny. s&#039;utilitzen SRAMs que retenen la informació mentre tenen electricitat. Per permetre recordar les dades a la màquina entre apagades la SRAM es pot alimentar d&#039;una petita bateria soldada a la propia tarja o des d&#039;una bateria externa.&lt;br /&gt;
&lt;br /&gt;
Aquest mòdul pot funcionar tan en mode 16bits com 8bits (si es seguis correctament l&#039;estandard del bus no hi haurien problemes però sembla que Mayer ha fet algo estrany per variar...) i és necessari canviar la configuració d&#039;un pont del SW2 en funció del tipus de màquina:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;div style=&amp;quot;font-family: monospace&amp;quot;&amp;gt;&lt;br /&gt;
{|class=wikitable&lt;br /&gt;
!colspan=3|Configuració SW2&lt;br /&gt;
|-&lt;br /&gt;
!Pont||16Bits||8Bits&lt;br /&gt;
|-&lt;br /&gt;
|1-8||&amp;amp;#x233E; &amp;amp;#x233E;||&amp;amp;#x233E; &amp;amp;#x233E;&lt;br /&gt;
|-&lt;br /&gt;
|2-7||&amp;amp;#x233E;=&amp;amp;#x233E;||&amp;amp;#x233E; &amp;amp;#x233E;&lt;br /&gt;
|-&lt;br /&gt;
|3-6||&amp;amp;#x233E; &amp;amp;#x233E; ||&amp;amp;#x233E;=&amp;amp;#x233E;&lt;br /&gt;
|-&lt;br /&gt;
|4-5|| &amp;amp;#x233E;=&amp;amp;#x233E; ||&amp;amp;#x233E;=&amp;amp;#x233E;&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;IMPORTANT&#039;&#039;&#039;: Per màquines del tipus model 1 requereixen la configuració de 8Bits o fallará durant la carrega del disseny amb:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
RIGHT MACHINE TYPE AND SETOUT (J/N) J   0079  MEMORY-ERROR&lt;br /&gt;
NO PATTERN STORED&lt;br /&gt;
NO PATTERN-CASSETTE&lt;br /&gt;
&lt;br /&gt;
PLEASE INSERT THE 1. CASSETTE: THEN PRESS RETURN&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Analisis de la tarja ==&lt;br /&gt;
&lt;br /&gt;
Sempre consta de 32 xips de memòria SRAM que poden ser des de 32Kbytes (1MByte total) fins a un màxim 128Kbytes (4MBytes). un demultiplexador doble de 4 a 16 una PALCE20V10 un xip de gestió d&#039;alimentació corrent/bateria i diversos transceivers de bus i portes lògiques. També hi ha un SW1 amb 8 ponts configuarables que sembla que controlar la addr base de la tarja.&lt;/div&gt;</summary>
		<author><name>Pascual</name></author>
	</entry>
	<entry>
		<id>https://wiki.cadt.com/index.php?title=ALC_RAM1-4&amp;diff=2680</id>
		<title>ALC RAM1-4</title>
		<link rel="alternate" type="text/html" href="https://wiki.cadt.com/index.php?title=ALC_RAM1-4&amp;diff=2680"/>
		<updated>2015-04-15T09:46:26Z</updated>

		<summary type="html">&lt;p&gt;Pascual: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:LDST]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=wiki-table&amp;gt;{{MediaImgFile|LOOM_COMPUTERS/MAYER/CARDS/ALC_RAM/thumb.jpg}}&amp;lt;/div&amp;gt;&lt;br /&gt;
Substitut a la tarja de memòria bombolla, per poder guardar el disseny. s&#039;utilitzen SRAMs que retenen la informació mentre tenen electricitat. Per permetre recordar les dades a la màquina entre apagades la SRAM es pot alimentar d&#039;una petita bateria soldada a la propia tarja o des d&#039;una bateria externa.&lt;br /&gt;
&lt;br /&gt;
Aquest mòdul pot funcionar tan en mode 16bits com 8bits (si es seguis correctament l&#039;estandard del bus no hi haurien problemes però sembla que Mayer ha fet algo estrany per variar...) i és necessari canviar la configuració d&#039;un pont del SW2 en funció del tipus de màquina:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;div style=&amp;quot;font-family: monospace&amp;quot;&amp;gt;&lt;br /&gt;
{|class=wikitable&lt;br /&gt;
!colspan=3|Configuració SW2&lt;br /&gt;
|-&lt;br /&gt;
!Pont||16Bits||8Bits&lt;br /&gt;
|-&lt;br /&gt;
|1-8||&amp;amp;#x233E; &amp;amp;#x233E;||&amp;amp;#x233E; &amp;amp;#x233E;&lt;br /&gt;
|-&lt;br /&gt;
|2-7||&amp;amp;#x233E;=&amp;amp;#x233E;||&amp;amp;#x233E; &amp;amp;#x233E;&lt;br /&gt;
|-&lt;br /&gt;
|3-6||&amp;amp;#x233E; &amp;amp;#x233E; ||&amp;amp;#x233E;=&amp;amp;#x233E;&lt;br /&gt;
|-&lt;br /&gt;
|4-5|| &amp;amp;#x233E;=&amp;amp;#x233E; ||&amp;amp;#x233E;=&amp;amp;#x233E;&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;IMPORTANT&#039;&#039;&#039;: Per màquines del tipus model 1 requereixen la configuració de 8Bits o fallará durant la carrega del disseny amb:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
RIGHT MACHINE TYPE AND SETOUT (J/N) J   0079  MEMORY-ERROR&lt;br /&gt;
NO PATTERN STORED&lt;br /&gt;
NO PATTERN-CASSETTE&lt;br /&gt;
&lt;br /&gt;
PLEASE INSERT THE 1. CASSETTE: THEN PRESS RETURN&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Analisis de la tarja ==&lt;br /&gt;
&lt;br /&gt;
Sempre consta de 32 xips de memòria SRAM que poden ser des de 32Kbytes (1MByte total) fins a un màxim 128Kbytes (4MBytes). un demultiplexador doble de 4 a 16 una PALCE20V10 un xip de gestió d&#039;alimentació corrent/bateria i diversos transceivers de bus i portes lògiques. També hi ha un SW1 amb 8 ponts configuarables que sembla que controlar la addr base de la tarja.&lt;/div&gt;</summary>
		<author><name>Pascual</name></author>
	</entry>
	<entry>
		<id>https://wiki.cadt.com/index.php?title=ALC_RAM1-4&amp;diff=2679</id>
		<title>ALC RAM1-4</title>
		<link rel="alternate" type="text/html" href="https://wiki.cadt.com/index.php?title=ALC_RAM1-4&amp;diff=2679"/>
		<updated>2015-04-15T09:46:12Z</updated>

		<summary type="html">&lt;p&gt;Pascual: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:LDST]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=wiki-table&amp;gt;{{MediaFile|LOOM_COMPUTERS/MAYER/CARDS/ALC_RAM/thumb.jpg}}&amp;lt;/div&amp;gt;&lt;br /&gt;
Substitut a la tarja de memòria bombolla, per poder guardar el disseny. s&#039;utilitzen SRAMs que retenen la informació mentre tenen electricitat. Per permetre recordar les dades a la màquina entre apagades la SRAM es pot alimentar d&#039;una petita bateria soldada a la propia tarja o des d&#039;una bateria externa.&lt;br /&gt;
&lt;br /&gt;
Aquest mòdul pot funcionar tan en mode 16bits com 8bits (si es seguis correctament l&#039;estandard del bus no hi haurien problemes però sembla que Mayer ha fet algo estrany per variar...) i és necessari canviar la configuració d&#039;un pont del SW2 en funció del tipus de màquina:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;div style=&amp;quot;font-family: monospace&amp;quot;&amp;gt;&lt;br /&gt;
{|class=wikitable&lt;br /&gt;
!colspan=3|Configuració SW2&lt;br /&gt;
|-&lt;br /&gt;
!Pont||16Bits||8Bits&lt;br /&gt;
|-&lt;br /&gt;
|1-8||&amp;amp;#x233E; &amp;amp;#x233E;||&amp;amp;#x233E; &amp;amp;#x233E;&lt;br /&gt;
|-&lt;br /&gt;
|2-7||&amp;amp;#x233E;=&amp;amp;#x233E;||&amp;amp;#x233E; &amp;amp;#x233E;&lt;br /&gt;
|-&lt;br /&gt;
|3-6||&amp;amp;#x233E; &amp;amp;#x233E; ||&amp;amp;#x233E;=&amp;amp;#x233E;&lt;br /&gt;
|-&lt;br /&gt;
|4-5|| &amp;amp;#x233E;=&amp;amp;#x233E; ||&amp;amp;#x233E;=&amp;amp;#x233E;&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;IMPORTANT&#039;&#039;&#039;: Per màquines del tipus model 1 requereixen la configuració de 8Bits o fallará durant la carrega del disseny amb:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
RIGHT MACHINE TYPE AND SETOUT (J/N) J   0079  MEMORY-ERROR&lt;br /&gt;
NO PATTERN STORED&lt;br /&gt;
NO PATTERN-CASSETTE&lt;br /&gt;
&lt;br /&gt;
PLEASE INSERT THE 1. CASSETTE: THEN PRESS RETURN&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Analisis de la tarja ==&lt;br /&gt;
&lt;br /&gt;
Sempre consta de 32 xips de memòria SRAM que poden ser des de 32Kbytes (1MByte total) fins a un màxim 128Kbytes (4MBytes). un demultiplexador doble de 4 a 16 una PALCE20V10 un xip de gestió d&#039;alimentació corrent/bateria i diversos transceivers de bus i portes lògiques. També hi ha un SW1 amb 8 ponts configuarables que sembla que controlar la addr base de la tarja.&lt;/div&gt;</summary>
		<author><name>Pascual</name></author>
	</entry>
	<entry>
		<id>https://wiki.cadt.com/index.php?title=Intel_iSBC88/25&amp;diff=2678</id>
		<title>Intel iSBC88/25</title>
		<link rel="alternate" type="text/html" href="https://wiki.cadt.com/index.php?title=Intel_iSBC88/25&amp;diff=2678"/>
		<updated>2015-04-15T09:41:28Z</updated>

		<summary type="html">&lt;p&gt;Pascual: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:LDST]]&lt;br /&gt;
[[Category:Hardware]]&lt;br /&gt;
Computadora industrial Intel SBC88/25 inclou CPU 8088 i la electrònica auxiliar per que funcioni, algo de SRAM (2-4Kbytes) un controlador de interrupcions 8259A, un triple interval timer 8253A i una uart 8251A que és la que s&#039;utilitza per comunicar-se amb el terminal. També hi ha un 8255&lt;/div&gt;</summary>
		<author><name>Pascual</name></author>
	</entry>
	<entry>
		<id>https://wiki.cadt.com/index.php?title=Configuracio_FreeSwitch&amp;diff=2371</id>
		<title>Configuracio FreeSwitch</title>
		<link rel="alternate" type="text/html" href="https://wiki.cadt.com/index.php?title=Configuracio_FreeSwitch&amp;diff=2371"/>
		<updated>2014-06-10T09:34:14Z</updated>

		<summary type="html">&lt;p&gt;Pascual: /* links interessants */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== links interessants ==&lt;br /&gt;
https://plone.lucidsolutions.co.nz/linux/freeswitch/install-freeswitch-on-a-centos-v6-vm&lt;br /&gt;
&lt;br /&gt;
https://wiki.freeswitch.org/wiki/Dialplan_XML&lt;br /&gt;
&lt;br /&gt;
https://confluence.freeswitch.org/display/FREESWITCH/Interoperability&lt;br /&gt;
&lt;br /&gt;
http://www.fredshack.com/docs/freeswitch.html&lt;br /&gt;
&lt;br /&gt;
== Instalació ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rpm -Uvh http://files.freeswitch.org/freeswitch-release-1-0.noarch.rpm   # afegim repo&lt;br /&gt;
yum install freeswitch                                                   # freeswitch base&lt;br /&gt;
yum install sox freeswitch-sounds*                                       # eines per tractar audio + sons per defecte&lt;br /&gt;
yum install freeswitch-lang*                                             # config idiomes&lt;br /&gt;
yum install freeswitch-freetdm                                           # interficie amb dispositius de telefonia (TDM) (opcional)&lt;br /&gt;
yum install freeswitch-spidermonkey                                      # soport per apps javascript (opcional)&lt;br /&gt;
yum install freeswitch-codec-*                                           # codecs audio&lt;br /&gt;
yum install freeswitch-application-*                                     # apps natives del freeswitch&lt;br /&gt;
yum install freeswitch-format*                                           # soport de diferents formats de fitxer (audio, seq tons,....)&lt;br /&gt;
yum install freeswitch-xml-*                                             # eines per CDR via xml i comms xml via http&lt;br /&gt;
chkconfig --add freeswitch &amp;amp;&amp;amp; chkconfig --levels 35 freeswitch on        # activem el servei&lt;br /&gt;
service freeswitch start                                                 # inicialitzem el servei&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Configuracio ==&lt;br /&gt;
&lt;br /&gt;
Path: /etc/freeswitch&lt;br /&gt;
&lt;br /&gt;
fitxers a tocar:&lt;br /&gt;
* vars.xml : definicions usades a la resta de la configuracio important establir el domini&lt;br /&gt;
* directory/default/*.xml : important canviar els passwords dels usuaris&lt;br /&gt;
* autoload_configs/modules.conf : activar xml_rpc si es vol interf web i mod sofia si es vol SIP&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== vars.xml ===&lt;br /&gt;
* canviat default password (linea 16)&lt;br /&gt;
* canviat valor variable domain = cadt.com (linea 55)&lt;br /&gt;
&lt;br /&gt;
=== modules.conf.xml ===&lt;br /&gt;
* activat mod_xml_rpc  (linia 138)&lt;br /&gt;
* activat mod_xml_curl (linia 139)&lt;br /&gt;
* activat mod_xml_cdr  (linia 140)&lt;br /&gt;
&lt;br /&gt;
== Proves ==&lt;br /&gt;
Instalacio de twinkle a CentOS 6&lt;br /&gt;
yum install twinkle &amp;lt;enter&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Configuracio de twinkle &lt;br /&gt;
 Create profile&lt;br /&gt;
 . username 1000&lt;br /&gt;
 . password cadtboira1&lt;br /&gt;
 . proxy 192.168.1.95&lt;br /&gt;
 . Transport/NAT: NAT traversal not needed&lt;br /&gt;
&lt;br /&gt;
Modificacio de regles iptables&lt;br /&gt;
 -A INPUT -m state --state NEW -m udp -p udp --dport 5060       -j voip-local-IN&lt;br /&gt;
 -A INPUT -m state --state NEW -m udp -p udp -m multiport --dports 8000:8005 -j voip-local-IN&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Activacio de trace sofia&lt;br /&gt;
 Entra a la consola&lt;br /&gt;
 * fs_cli &amp;lt;enter&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 Activa trace per SIP&lt;br /&gt;
 * sofia global siptrace &amp;lt;on|off&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Configuracio vars.xml&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;X-PRE-PROCESS cmd=&amp;quot;set&amp;quot; data=&amp;quot;default_password=[PASSWORD]&amp;quot;/&amp;gt;&lt;br /&gt;
 &amp;lt;X-PRE-PROCESS cmd=&amp;quot;set&amp;quot; data=&amp;quot;default_vm_password=[PASSWORD]&amp;quot;/&amp;gt;&lt;br /&gt;
 &amp;lt;X-PRE-PROCESS cmd=&amp;quot;set&amp;quot; data=&amp;quot;ext_prefix=[PREFIX]&amp;quot;/&amp;gt;&lt;br /&gt;
 &amp;lt;X-PRE-PROCESS cmd=&amp;quot;set&amp;quot; data=&amp;quot;domain=[DOMAIN]&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 Per exemple&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;X-PRE-PROCESS cmd=&amp;quot;set&amp;quot; data=&amp;quot;default_password=cadtboira1&amp;quot;/&amp;gt;&lt;br /&gt;
 &amp;lt;X-PRE-PROCESS cmd=&amp;quot;set&amp;quot; data=&amp;quot;default_vm_password=cadtboira1&amp;quot;/&amp;gt;&lt;br /&gt;
 &amp;lt;X-PRE-PROCESS cmd=&amp;quot;set&amp;quot; data=&amp;quot;ext_prefix=10&amp;quot;/&amp;gt;&lt;br /&gt;
 &amp;lt;X-PRE-PROCESS cmd=&amp;quot;set&amp;quot; data=&amp;quot;domain=cadt.com&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Configuracio de servidors SIP&lt;br /&gt;
 &lt;br /&gt;
* sip_profiles/external&lt;br /&gt;
 &lt;br /&gt;
 . localphone&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;include&amp;gt;&lt;br /&gt;
  &amp;lt;gateway name=&amp;quot;localphone-gw&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
     &amp;lt;param name=&amp;quot;contact-params&amp;quot; value=&amp;quot;&amp;quot;/&amp;gt;&lt;br /&gt;
     &amp;lt;param name=&amp;quot;extension&amp;quot; value=&amp;quot;&amp;quot;/&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
    &amp;lt;param name=&amp;quot;from-domain&amp;quot; value=&amp;quot;localphone.com&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;param name=&amp;quot;from-user&amp;quot; value=&amp;quot;[USERID]&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;param name=&amp;quot;realm&amp;quot; value=&amp;quot;localphone.com&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;param name=&amp;quot;proxy&amp;quot; value=&amp;quot;proxy.localphone.com&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;param name=&amp;quot;username&amp;quot; value=&amp;quot;[USERID]&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;param name=&amp;quot;password&amp;quot; value=&amp;quot;[PASSWORD]&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;param name=&amp;quot;extension-in-contact&amp;quot; value=&amp;quot;true&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;param name=&amp;quot;retry-seconds&amp;quot; value=&amp;quot;30&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;param name=&amp;quot;caller-id-in-from&amp;quot; value=&amp;quot;false&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;/gateway&amp;gt;&lt;br /&gt;
 &amp;lt;/include&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 . messagenet&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;include&amp;gt;&lt;br /&gt;
  &amp;lt;gateway name=&amp;quot;messagenet-gw&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
     &amp;lt;param name=&amp;quot;contact-params&amp;quot; value=&amp;quot;&amp;quot;/&amp;gt;&lt;br /&gt;
     &amp;lt;param name=&amp;quot;extension&amp;quot; value=&amp;quot;&amp;quot;/&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
    &amp;lt;param name=&amp;quot;from-domain&amp;quot; value=&amp;quot;messagenet.it&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;param name=&amp;quot;from-user&amp;quot; value=&amp;quot;[USERID]&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;param name=&amp;quot;realm&amp;quot; value=&amp;quot;messagenet.it&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;param name=&amp;quot;proxy&amp;quot; value=&amp;quot;sip.messagenet.it&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;param name=&amp;quot;sip-port&amp;quot; value=&amp;quot;5061&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;param name=&amp;quot;username&amp;quot; value=&amp;quot;[USERID]&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;param name=&amp;quot;password&amp;quot; value=&amp;quot;[PASSWORD]&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;param name=&amp;quot;extension-in-contact&amp;quot; value=&amp;quot;true&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;param name=&amp;quot;retry-seconds&amp;quot; value=&amp;quot;30&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;param name=&amp;quot;caller-id-in-from&amp;quot; value=&amp;quot;false&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;/gateway&amp;gt;&lt;br /&gt;
 &amp;lt;/include&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== TODO ==&lt;br /&gt;
&lt;br /&gt;
* recepcio trucades entrants&lt;br /&gt;
* mode nit trucades entrants&lt;br /&gt;
* passar trucada&lt;br /&gt;
* trucades en espera&lt;br /&gt;
* trunk entre oficines&lt;br /&gt;
* musica trucada en espera ( canviar en funcio estacio)&lt;br /&gt;
* telefons cisco&lt;br /&gt;
* gateway linies analogiques&lt;br /&gt;
* usuaris de confianca externs&lt;br /&gt;
* conferencia&lt;br /&gt;
* trucada a ultim numero&lt;br /&gt;
* tornar trucada&lt;br /&gt;
* integracio skype&lt;br /&gt;
* redireccio e164 / estalvi cost trucada&lt;br /&gt;
* videoconferencia/cursos&lt;br /&gt;
* documentacio.....&lt;br /&gt;
&lt;br /&gt;
== Abreviacions ==&lt;br /&gt;
* DAHDI: Digium/Asterisk Hardware Device Interface&lt;br /&gt;
* CDR: Call Detail Records&lt;br /&gt;
* CID: Call ID&lt;br /&gt;
* DID: irect Inward Dialing. Numero extern que crida a extensio interna...&lt;br /&gt;
* LCR: least cost routing&lt;br /&gt;
* POTS: Plain Old Telephony Service&lt;br /&gt;
* FXO: Foreign eXchange Office. Port on es pot conectar una linia de telefon del proveidor &lt;br /&gt;
* FXS: Foreign eXchange Service. Port on es pot conectar un telefon  &lt;br /&gt;
* snom: control tecles extra softphone&lt;br /&gt;
* e164: Base de dades consultable via DNS query que converteix de nº POTS a contacte VoIP&lt;br /&gt;
* IVR: Interactive Voice Response. menu de veu de la centraleta&lt;br /&gt;
* STUN: Session Traversal Utilities for NAT. Esquiva NAT important per connexio directe&lt;/div&gt;</summary>
		<author><name>Pascual</name></author>
	</entry>
	<entry>
		<id>https://wiki.cadt.com/index.php?title=Configuracio_FreeSwitch&amp;diff=2361</id>
		<title>Configuracio FreeSwitch</title>
		<link rel="alternate" type="text/html" href="https://wiki.cadt.com/index.php?title=Configuracio_FreeSwitch&amp;diff=2361"/>
		<updated>2014-06-04T12:31:03Z</updated>

		<summary type="html">&lt;p&gt;Pascual: /* Proves */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== links interessants ==&lt;br /&gt;
https://plone.lucidsolutions.co.nz/linux/freeswitch/install-freeswitch-on-a-centos-v6-vm&lt;br /&gt;
&lt;br /&gt;
https://wiki.freeswitch.org/wiki/Dialplan_XML&lt;br /&gt;
&lt;br /&gt;
https://confluence.freeswitch.org/display/FREESWITCH/Interoperability&lt;br /&gt;
&lt;br /&gt;
== Instalació ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rpm -Uvh http://files.freeswitch.org/freeswitch-release-1-0.noarch.rpm&lt;br /&gt;
yum install freeswitch-config-vanilla&lt;br /&gt;
yum install sox freeswitch-sounds*&lt;br /&gt;
yum install freeswitch-lang*&lt;br /&gt;
yum install freeswitch-xml-cdr freeswitch-xml-curl&lt;br /&gt;
yum install freeswitch-tdm&lt;br /&gt;
yum install freeswithc-spidermonkey&lt;br /&gt;
chkconfig --add freeswitch &amp;amp;&amp;amp; chkconfig --levels 35 freeswitch on&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Configuracio ==&lt;br /&gt;
&lt;br /&gt;
Path: /etc/freeswitch&lt;br /&gt;
&lt;br /&gt;
fitxers a tocar:&lt;br /&gt;
* vars.xml : definicions usades a la resta de la configuracio important establir el domini&lt;br /&gt;
* directory/default/*.xml : important canviar els passwords dels usuaris&lt;br /&gt;
* autoload_configs/modules.conf : activar xml_rpc si es vol interf web i mod sofia si es vol SIP&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== vars.xml ===&lt;br /&gt;
* canviat default password (linea 16)&lt;br /&gt;
* canviat valor variable domain = cadt.com (linea 55)&lt;br /&gt;
&lt;br /&gt;
=== modules.conf.xml ===&lt;br /&gt;
* activat mod_xml_rpc  (linia 138)&lt;br /&gt;
* activat mod_xml_curl (linia 139)&lt;br /&gt;
* activat mod_xml_cdr  (linia 140)&lt;br /&gt;
&lt;br /&gt;
== Proves ==&lt;br /&gt;
Instalacio de twinkle a CentOS 6&lt;br /&gt;
yum install twinkle &amp;lt;enter&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Configuracio de twinkle &lt;br /&gt;
 Create profile&lt;br /&gt;
 . username 1000&lt;br /&gt;
 . password cadtboira1&lt;br /&gt;
 . proxy 192.168.1.95&lt;br /&gt;
 . Transport/NAT: NAT traversal not needed&lt;br /&gt;
&lt;br /&gt;
Modificacio de regles iptables&lt;br /&gt;
 -A INPUT -m state --state NEW -m udp -p udp --dport 5060       -j voip-local-IN&lt;br /&gt;
 -A INPUT -m state --state NEW -m udp -p udp -m multiport --dports 8000:8005 -j voip-local-IN&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Activacio de trace sofia&lt;br /&gt;
 Entra a la consola&lt;br /&gt;
 * fs_cli &amp;lt;enter&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 Activa trace per SIP&lt;br /&gt;
 * sofia global siptrace &amp;lt;on|off&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Configuracio vars.xml&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;X-PRE-PROCESS cmd=&amp;quot;set&amp;quot; data=&amp;quot;default_password=[PASSWORD]&amp;quot;/&amp;gt;&lt;br /&gt;
 &amp;lt;X-PRE-PROCESS cmd=&amp;quot;set&amp;quot; data=&amp;quot;default_vm_password=[PASSWORD]&amp;quot;/&amp;gt;&lt;br /&gt;
 &amp;lt;X-PRE-PROCESS cmd=&amp;quot;set&amp;quot; data=&amp;quot;ext_prefix=[PREFIX]&amp;quot;/&amp;gt;&lt;br /&gt;
 &amp;lt;X-PRE-PROCESS cmd=&amp;quot;set&amp;quot; data=&amp;quot;domain=[DOMAIN]&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 Per exemple&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;X-PRE-PROCESS cmd=&amp;quot;set&amp;quot; data=&amp;quot;default_password=cadtboira1&amp;quot;/&amp;gt;&lt;br /&gt;
 &amp;lt;X-PRE-PROCESS cmd=&amp;quot;set&amp;quot; data=&amp;quot;default_vm_password=cadtboira1&amp;quot;/&amp;gt;&lt;br /&gt;
 &amp;lt;X-PRE-PROCESS cmd=&amp;quot;set&amp;quot; data=&amp;quot;ext_prefix=10&amp;quot;/&amp;gt;&lt;br /&gt;
 &amp;lt;X-PRE-PROCESS cmd=&amp;quot;set&amp;quot; data=&amp;quot;domain=cadt.com&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Configuracio de servidors SIP&lt;br /&gt;
 &lt;br /&gt;
* sip_profiles/external&lt;br /&gt;
 &lt;br /&gt;
 . localphone&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;include&amp;gt;&lt;br /&gt;
  &amp;lt;gateway name=&amp;quot;localphone-gw&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
     &amp;lt;param name=&amp;quot;contact-params&amp;quot; value=&amp;quot;&amp;quot;/&amp;gt;&lt;br /&gt;
     &amp;lt;param name=&amp;quot;extension&amp;quot; value=&amp;quot;&amp;quot;/&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
    &amp;lt;param name=&amp;quot;from-domain&amp;quot; value=&amp;quot;localphone.com&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;param name=&amp;quot;from-user&amp;quot; value=&amp;quot;[USERID]&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;param name=&amp;quot;realm&amp;quot; value=&amp;quot;localphone.com&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;param name=&amp;quot;proxy&amp;quot; value=&amp;quot;proxy.localphone.com&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;param name=&amp;quot;username&amp;quot; value=&amp;quot;[USERID]&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;param name=&amp;quot;password&amp;quot; value=&amp;quot;[PASSWORD]&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;param name=&amp;quot;extension-in-contact&amp;quot; value=&amp;quot;true&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;param name=&amp;quot;retry-seconds&amp;quot; value=&amp;quot;30&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;param name=&amp;quot;caller-id-in-from&amp;quot; value=&amp;quot;false&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;/gateway&amp;gt;&lt;br /&gt;
 &amp;lt;/include&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 . messagenet&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;include&amp;gt;&lt;br /&gt;
  &amp;lt;gateway name=&amp;quot;messagenet-gw&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
     &amp;lt;param name=&amp;quot;contact-params&amp;quot; value=&amp;quot;&amp;quot;/&amp;gt;&lt;br /&gt;
     &amp;lt;param name=&amp;quot;extension&amp;quot; value=&amp;quot;&amp;quot;/&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
    &amp;lt;param name=&amp;quot;from-domain&amp;quot; value=&amp;quot;messagenet.it&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;param name=&amp;quot;from-user&amp;quot; value=&amp;quot;[USERID]&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;param name=&amp;quot;realm&amp;quot; value=&amp;quot;messagenet.it&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;param name=&amp;quot;proxy&amp;quot; value=&amp;quot;sip.messagenet.it&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;param name=&amp;quot;sip-port&amp;quot; value=&amp;quot;5061&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;param name=&amp;quot;username&amp;quot; value=&amp;quot;[USERID]&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;param name=&amp;quot;password&amp;quot; value=&amp;quot;[PASSWORD]&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;param name=&amp;quot;extension-in-contact&amp;quot; value=&amp;quot;true&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;param name=&amp;quot;retry-seconds&amp;quot; value=&amp;quot;30&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;param name=&amp;quot;caller-id-in-from&amp;quot; value=&amp;quot;false&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;/gateway&amp;gt;&lt;br /&gt;
 &amp;lt;/include&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== TODO ==&lt;br /&gt;
&lt;br /&gt;
* recepcio trucades entrants&lt;br /&gt;
* mode nit trucades entrants&lt;br /&gt;
* passar trucada&lt;br /&gt;
* trucades en espera&lt;br /&gt;
* trunk entre oficines&lt;br /&gt;
* musica trucada en espera ( canviar en funcio estacio)&lt;br /&gt;
* telefons cisco&lt;br /&gt;
* gateway linies analogiques&lt;br /&gt;
* usuaris de confianca externs&lt;br /&gt;
* conferencia&lt;br /&gt;
* trucada a ultim numero&lt;br /&gt;
* tornar trucada&lt;br /&gt;
* integracio skype&lt;br /&gt;
* redireccio e164 / estalvi cost trucada&lt;br /&gt;
* videoconferencia/cursos&lt;br /&gt;
* documentacio.....&lt;br /&gt;
&lt;br /&gt;
== Abreviacions ==&lt;br /&gt;
* DAHDI: Digium/Asterisk Hardware Device Interface&lt;br /&gt;
* CDR: Call Detail Records&lt;br /&gt;
* CID: Call ID&lt;br /&gt;
* DID: irect Inward Dialing. Numero extern que crida a extensio interna...&lt;br /&gt;
* LCR: least cost routing&lt;br /&gt;
* POTS: Plain Old Telephony Service&lt;br /&gt;
* FXO: Foreign eXchange Office. Port on es pot conectar una linia de telefon del proveidor &lt;br /&gt;
* FXS: Foreign eXchange Service. Port on es pot conectar un telefon  &lt;br /&gt;
* snom: control tecles extra softphone&lt;br /&gt;
* e164: Base de dades consultable via DNS query que converteix de nº POTS a contacte VoIP&lt;br /&gt;
* IVR: Interactive Voice Response. menu de veu de la centraleta&lt;br /&gt;
* STUN: Session Traversal Utilities for NAT. Esquiva NAT important per connexio directe&lt;/div&gt;</summary>
		<author><name>Pascual</name></author>
	</entry>
	<entry>
		<id>https://wiki.cadt.com/index.php?title=Configuracio_FreeSwitch&amp;diff=2360</id>
		<title>Configuracio FreeSwitch</title>
		<link rel="alternate" type="text/html" href="https://wiki.cadt.com/index.php?title=Configuracio_FreeSwitch&amp;diff=2360"/>
		<updated>2014-06-04T12:30:14Z</updated>

		<summary type="html">&lt;p&gt;Pascual: /* Proves */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== links interessants ==&lt;br /&gt;
https://plone.lucidsolutions.co.nz/linux/freeswitch/install-freeswitch-on-a-centos-v6-vm&lt;br /&gt;
&lt;br /&gt;
https://wiki.freeswitch.org/wiki/Dialplan_XML&lt;br /&gt;
&lt;br /&gt;
https://confluence.freeswitch.org/display/FREESWITCH/Interoperability&lt;br /&gt;
&lt;br /&gt;
== Instalació ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rpm -Uvh http://files.freeswitch.org/freeswitch-release-1-0.noarch.rpm&lt;br /&gt;
yum install freeswitch-config-vanilla&lt;br /&gt;
yum install sox freeswitch-sounds*&lt;br /&gt;
yum install freeswitch-lang*&lt;br /&gt;
yum install freeswitch-xml-cdr freeswitch-xml-curl&lt;br /&gt;
yum install freeswitch-tdm&lt;br /&gt;
yum install freeswithc-spidermonkey&lt;br /&gt;
chkconfig --add freeswitch &amp;amp;&amp;amp; chkconfig --levels 35 freeswitch on&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Configuracio ==&lt;br /&gt;
&lt;br /&gt;
Path: /etc/freeswitch&lt;br /&gt;
&lt;br /&gt;
fitxers a tocar:&lt;br /&gt;
* vars.xml : definicions usades a la resta de la configuracio important establir el domini&lt;br /&gt;
* directory/default/*.xml : important canviar els passwords dels usuaris&lt;br /&gt;
* autoload_configs/modules.conf : activar xml_rpc si es vol interf web i mod sofia si es vol SIP&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== vars.xml ===&lt;br /&gt;
* canviat default password (linea 16)&lt;br /&gt;
* canviat valor variable domain = cadt.com (linea 55)&lt;br /&gt;
&lt;br /&gt;
=== modules.conf.xml ===&lt;br /&gt;
* activat mod_xml_rpc  (linia 138)&lt;br /&gt;
* activat mod_xml_curl (linia 139)&lt;br /&gt;
* activat mod_xml_cdr  (linia 140)&lt;br /&gt;
&lt;br /&gt;
== Proves ==&lt;br /&gt;
Instalacio de twinkle a CentOS 6&lt;br /&gt;
yum install twinkle &amp;lt;enter&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Configuracio de twinkle &lt;br /&gt;
 Create profile&lt;br /&gt;
 . username 1000&lt;br /&gt;
 . password cadtboira1&lt;br /&gt;
 . proxy 192.168.1.95&lt;br /&gt;
 . Transport/NAT: NAT traversal not needed&lt;br /&gt;
&lt;br /&gt;
Modificacio de regles iptables&lt;br /&gt;
 -A INPUT -m state --state NEW -m udp -p udp --dport 5060       -j voip-local-IN&lt;br /&gt;
 -A INPUT -m state --state NEW -m udp -p udp -m multiport --dports 8000:8005 -j voip-local-IN&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Activacio de trace sofia&lt;br /&gt;
 Entra a la consola&lt;br /&gt;
 * fs_cli &amp;lt;enter&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 Activa trace per SIP&lt;br /&gt;
 * sofia global siptrace &amp;lt;on|off&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Configuracio vars.xml&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;X-PRE-PROCESS cmd=&amp;quot;set&amp;quot; data=&amp;quot;default_password=[[PASSWORD]]&amp;quot;/&amp;gt;&lt;br /&gt;
 &amp;lt;X-PRE-PROCESS cmd=&amp;quot;set&amp;quot; data=&amp;quot;default_vm_password=[[PASSWORD]]&amp;quot;/&amp;gt;&lt;br /&gt;
 &amp;lt;X-PRE-PROCESS cmd=&amp;quot;set&amp;quot; data=&amp;quot;ext_prefix=[[PREFIX]]&amp;quot;/&amp;gt;&lt;br /&gt;
 &amp;lt;X-PRE-PROCESS cmd=&amp;quot;set&amp;quot; data=&amp;quot;domain=[[DOMAIN]&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 Per exemple&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;X-PRE-PROCESS cmd=&amp;quot;set&amp;quot; data=&amp;quot;default_password=cadtboira1&amp;quot;/&amp;gt;&lt;br /&gt;
 &amp;lt;X-PRE-PROCESS cmd=&amp;quot;set&amp;quot; data=&amp;quot;default_vm_password=cadtboira1&amp;quot;/&amp;gt;&lt;br /&gt;
 &amp;lt;X-PRE-PROCESS cmd=&amp;quot;set&amp;quot; data=&amp;quot;ext_prefix=10&amp;quot;/&amp;gt;&lt;br /&gt;
 &amp;lt;X-PRE-PROCESS cmd=&amp;quot;set&amp;quot; data=&amp;quot;domain=cadt.com&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Configuracio de servidors SIP&lt;br /&gt;
 &lt;br /&gt;
* sip_profiles/external&lt;br /&gt;
 &lt;br /&gt;
 . localphone&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;include&amp;gt;&lt;br /&gt;
  &amp;lt;gateway name=&amp;quot;localphone-gw&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
     &amp;lt;param name=&amp;quot;contact-params&amp;quot; value=&amp;quot;&amp;quot;/&amp;gt;&lt;br /&gt;
     &amp;lt;param name=&amp;quot;extension&amp;quot; value=&amp;quot;&amp;quot;/&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
    &amp;lt;param name=&amp;quot;from-domain&amp;quot; value=&amp;quot;localphone.com&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;param name=&amp;quot;from-user&amp;quot; value=&amp;quot;[[USERID]]&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;param name=&amp;quot;realm&amp;quot; value=&amp;quot;localphone.com&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;param name=&amp;quot;proxy&amp;quot; value=&amp;quot;proxy.localphone.com&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;param name=&amp;quot;username&amp;quot; value=&amp;quot;[[USERID]]&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;param name=&amp;quot;password&amp;quot; value=&amp;quot;[[PASSWORD]]&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;param name=&amp;quot;extension-in-contact&amp;quot; value=&amp;quot;true&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;param name=&amp;quot;retry-seconds&amp;quot; value=&amp;quot;30&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;param name=&amp;quot;caller-id-in-from&amp;quot; value=&amp;quot;false&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;/gateway&amp;gt;&lt;br /&gt;
 &amp;lt;/include&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 . messagenet&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;include&amp;gt;&lt;br /&gt;
  &amp;lt;gateway name=&amp;quot;messagenet-gw&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
     &amp;lt;param name=&amp;quot;contact-params&amp;quot; value=&amp;quot;&amp;quot;/&amp;gt;&lt;br /&gt;
     &amp;lt;param name=&amp;quot;extension&amp;quot; value=&amp;quot;&amp;quot;/&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
    &amp;lt;param name=&amp;quot;from-domain&amp;quot; value=&amp;quot;messagenet.it&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;param name=&amp;quot;from-user&amp;quot; value=&amp;quot;[[USERID]]&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;param name=&amp;quot;realm&amp;quot; value=&amp;quot;messagenet.it&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;param name=&amp;quot;proxy&amp;quot; value=&amp;quot;sip.messagenet.it&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;param name=&amp;quot;sip-port&amp;quot; value=&amp;quot;5061&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;param name=&amp;quot;username&amp;quot; value=&amp;quot;[[USERID]]&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;param name=&amp;quot;password&amp;quot; value=&amp;quot;[[PASSWORD]]&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;param name=&amp;quot;extension-in-contact&amp;quot; value=&amp;quot;true&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;param name=&amp;quot;retry-seconds&amp;quot; value=&amp;quot;30&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;param name=&amp;quot;caller-id-in-from&amp;quot; value=&amp;quot;false&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;/gateway&amp;gt;&lt;br /&gt;
 &amp;lt;/include&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== TODO ==&lt;br /&gt;
&lt;br /&gt;
* recepcio trucades entrants&lt;br /&gt;
* mode nit trucades entrants&lt;br /&gt;
* passar trucada&lt;br /&gt;
* trucades en espera&lt;br /&gt;
* trunk entre oficines&lt;br /&gt;
* musica trucada en espera ( canviar en funcio estacio)&lt;br /&gt;
* telefons cisco&lt;br /&gt;
* gateway linies analogiques&lt;br /&gt;
* usuaris de confianca externs&lt;br /&gt;
* conferencia&lt;br /&gt;
* trucada a ultim numero&lt;br /&gt;
* tornar trucada&lt;br /&gt;
* integracio skype&lt;br /&gt;
* redireccio e164 / estalvi cost trucada&lt;br /&gt;
* videoconferencia/cursos&lt;br /&gt;
* documentacio.....&lt;br /&gt;
&lt;br /&gt;
== Abreviacions ==&lt;br /&gt;
* DAHDI: Digium/Asterisk Hardware Device Interface&lt;br /&gt;
* CDR: Call Detail Records&lt;br /&gt;
* CID: Call ID&lt;br /&gt;
* DID: irect Inward Dialing. Numero extern que crida a extensio interna...&lt;br /&gt;
* LCR: least cost routing&lt;br /&gt;
* POTS: Plain Old Telephony Service&lt;br /&gt;
* FXO: Foreign eXchange Office. Port on es pot conectar una linia de telefon del proveidor &lt;br /&gt;
* FXS: Foreign eXchange Service. Port on es pot conectar un telefon  &lt;br /&gt;
* snom: control tecles extra softphone&lt;br /&gt;
* e164: Base de dades consultable via DNS query que converteix de nº POTS a contacte VoIP&lt;br /&gt;
* IVR: Interactive Voice Response. menu de veu de la centraleta&lt;br /&gt;
* STUN: Session Traversal Utilities for NAT. Esquiva NAT important per connexio directe&lt;/div&gt;</summary>
		<author><name>Pascual</name></author>
	</entry>
	<entry>
		<id>https://wiki.cadt.com/index.php?title=Configuracio_FreeSwitch&amp;diff=2359</id>
		<title>Configuracio FreeSwitch</title>
		<link rel="alternate" type="text/html" href="https://wiki.cadt.com/index.php?title=Configuracio_FreeSwitch&amp;diff=2359"/>
		<updated>2014-06-04T12:28:20Z</updated>

		<summary type="html">&lt;p&gt;Pascual: /* Proves */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== links interessants ==&lt;br /&gt;
https://plone.lucidsolutions.co.nz/linux/freeswitch/install-freeswitch-on-a-centos-v6-vm&lt;br /&gt;
&lt;br /&gt;
https://wiki.freeswitch.org/wiki/Dialplan_XML&lt;br /&gt;
&lt;br /&gt;
https://confluence.freeswitch.org/display/FREESWITCH/Interoperability&lt;br /&gt;
&lt;br /&gt;
== Instalació ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rpm -Uvh http://files.freeswitch.org/freeswitch-release-1-0.noarch.rpm&lt;br /&gt;
yum install freeswitch-config-vanilla&lt;br /&gt;
yum install sox freeswitch-sounds*&lt;br /&gt;
yum install freeswitch-lang*&lt;br /&gt;
yum install freeswitch-xml-cdr freeswitch-xml-curl&lt;br /&gt;
yum install freeswitch-tdm&lt;br /&gt;
yum install freeswithc-spidermonkey&lt;br /&gt;
chkconfig --add freeswitch &amp;amp;&amp;amp; chkconfig --levels 35 freeswitch on&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Configuracio ==&lt;br /&gt;
&lt;br /&gt;
Path: /etc/freeswitch&lt;br /&gt;
&lt;br /&gt;
fitxers a tocar:&lt;br /&gt;
* vars.xml : definicions usades a la resta de la configuracio important establir el domini&lt;br /&gt;
* directory/default/*.xml : important canviar els passwords dels usuaris&lt;br /&gt;
* autoload_configs/modules.conf : activar xml_rpc si es vol interf web i mod sofia si es vol SIP&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== vars.xml ===&lt;br /&gt;
* canviat default password (linea 16)&lt;br /&gt;
* canviat valor variable domain = cadt.com (linea 55)&lt;br /&gt;
&lt;br /&gt;
=== modules.conf.xml ===&lt;br /&gt;
* activat mod_xml_rpc  (linia 138)&lt;br /&gt;
* activat mod_xml_curl (linia 139)&lt;br /&gt;
* activat mod_xml_cdr  (linia 140)&lt;br /&gt;
&lt;br /&gt;
== Proves ==&lt;br /&gt;
Instalacio de twinkle a CentOS 6&lt;br /&gt;
yum install twinkle &amp;lt;enter&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Configuracio de twinkle &lt;br /&gt;
 Create profile&lt;br /&gt;
 . username 1000&lt;br /&gt;
 . password cadtboira1&lt;br /&gt;
 . proxy 192.168.1.95&lt;br /&gt;
 . Transport/NAT: NAT traversal not needed&lt;br /&gt;
&lt;br /&gt;
Modificacio de regles iptables&lt;br /&gt;
 -A INPUT -m state --state NEW -m udp -p udp --dport 5060       -j voip-local-IN&lt;br /&gt;
 -A INPUT -m state --state NEW -m udp -p udp -m multiport --dports 8000:8005 -j voip-local-IN&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Activacio de trace sofia&lt;br /&gt;
 Entra a la consola&lt;br /&gt;
 * fs_cli &amp;lt;enter&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 Activa trace per SIP&lt;br /&gt;
 * sofia global siptrace &amp;lt;on|off&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Configuracio de servidors SIP&lt;br /&gt;
 &lt;br /&gt;
* sip_profiles/external&lt;br /&gt;
 &lt;br /&gt;
 . localphone&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;include&amp;gt;&lt;br /&gt;
  &amp;lt;gateway name=&amp;quot;localphone-gw&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
     &amp;lt;param name=&amp;quot;contact-params&amp;quot; value=&amp;quot;&amp;quot;/&amp;gt;&lt;br /&gt;
     &amp;lt;param name=&amp;quot;extension&amp;quot; value=&amp;quot;&amp;quot;/&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
    &amp;lt;param name=&amp;quot;from-domain&amp;quot; value=&amp;quot;localphone.com&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;param name=&amp;quot;from-user&amp;quot; value=&amp;quot;[[USERID]]&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;param name=&amp;quot;realm&amp;quot; value=&amp;quot;localphone.com&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;param name=&amp;quot;proxy&amp;quot; value=&amp;quot;proxy.localphone.com&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;param name=&amp;quot;username&amp;quot; value=&amp;quot;[[USERID]]&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;param name=&amp;quot;password&amp;quot; value=&amp;quot;[[PASSWORD]]&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;param name=&amp;quot;extension-in-contact&amp;quot; value=&amp;quot;true&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;param name=&amp;quot;retry-seconds&amp;quot; value=&amp;quot;30&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;param name=&amp;quot;caller-id-in-from&amp;quot; value=&amp;quot;false&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;/gateway&amp;gt;&lt;br /&gt;
 &amp;lt;/include&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 . messagenet&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;include&amp;gt;&lt;br /&gt;
  &amp;lt;gateway name=&amp;quot;messagenet-gw&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
     &amp;lt;param name=&amp;quot;contact-params&amp;quot; value=&amp;quot;&amp;quot;/&amp;gt;&lt;br /&gt;
     &amp;lt;param name=&amp;quot;extension&amp;quot; value=&amp;quot;&amp;quot;/&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
    &amp;lt;param name=&amp;quot;from-domain&amp;quot; value=&amp;quot;messagenet.it&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;param name=&amp;quot;from-user&amp;quot; value=&amp;quot;[[USERID]]&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;param name=&amp;quot;realm&amp;quot; value=&amp;quot;messagenet.it&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;param name=&amp;quot;proxy&amp;quot; value=&amp;quot;sip.messagenet.it&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;param name=&amp;quot;sip-port&amp;quot; value=&amp;quot;5061&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;param name=&amp;quot;username&amp;quot; value=&amp;quot;[[USERID]]&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;param name=&amp;quot;password&amp;quot; value=&amp;quot;[[PASSWORD]]&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;param name=&amp;quot;extension-in-contact&amp;quot; value=&amp;quot;true&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;param name=&amp;quot;retry-seconds&amp;quot; value=&amp;quot;30&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;param name=&amp;quot;caller-id-in-from&amp;quot; value=&amp;quot;false&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;/gateway&amp;gt;&lt;br /&gt;
 &amp;lt;/include&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== TODO ==&lt;br /&gt;
&lt;br /&gt;
* recepcio trucades entrants&lt;br /&gt;
* mode nit trucades entrants&lt;br /&gt;
* passar trucada&lt;br /&gt;
* trucades en espera&lt;br /&gt;
* trunk entre oficines&lt;br /&gt;
* musica trucada en espera ( canviar en funcio estacio)&lt;br /&gt;
* telefons cisco&lt;br /&gt;
* gateway linies analogiques&lt;br /&gt;
* usuaris de confianca externs&lt;br /&gt;
* conferencia&lt;br /&gt;
* trucada a ultim numero&lt;br /&gt;
* tornar trucada&lt;br /&gt;
* integracio skype&lt;br /&gt;
* redireccio e164 / estalvi cost trucada&lt;br /&gt;
* videoconferencia/cursos&lt;br /&gt;
* documentacio.....&lt;br /&gt;
&lt;br /&gt;
== Abreviacions ==&lt;br /&gt;
* DAHDI: Digium/Asterisk Hardware Device Interface&lt;br /&gt;
* CDR: Call Detail Records&lt;br /&gt;
* CID: Call ID&lt;br /&gt;
* DID: irect Inward Dialing. Numero extern que crida a extensio interna...&lt;br /&gt;
* LCR: least cost routing&lt;br /&gt;
* POTS: Plain Old Telephony Service&lt;br /&gt;
* FXO: Foreign eXchange Office. Port on es pot conectar una linia de telefon del proveidor &lt;br /&gt;
* FXS: Foreign eXchange Service. Port on es pot conectar un telefon  &lt;br /&gt;
* snom: control tecles extra softphone&lt;br /&gt;
* e164: Base de dades consultable via DNS query que converteix de nº POTS a contacte VoIP&lt;br /&gt;
* IVR: Interactive Voice Response. menu de veu de la centraleta&lt;br /&gt;
* STUN: Session Traversal Utilities for NAT. Esquiva NAT important per connexio directe&lt;/div&gt;</summary>
		<author><name>Pascual</name></author>
	</entry>
	<entry>
		<id>https://wiki.cadt.com/index.php?title=Configuracio_FreeSwitch&amp;diff=2358</id>
		<title>Configuracio FreeSwitch</title>
		<link rel="alternate" type="text/html" href="https://wiki.cadt.com/index.php?title=Configuracio_FreeSwitch&amp;diff=2358"/>
		<updated>2014-06-04T12:27:46Z</updated>

		<summary type="html">&lt;p&gt;Pascual: /* Proves */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== links interessants ==&lt;br /&gt;
https://plone.lucidsolutions.co.nz/linux/freeswitch/install-freeswitch-on-a-centos-v6-vm&lt;br /&gt;
&lt;br /&gt;
https://wiki.freeswitch.org/wiki/Dialplan_XML&lt;br /&gt;
&lt;br /&gt;
https://confluence.freeswitch.org/display/FREESWITCH/Interoperability&lt;br /&gt;
&lt;br /&gt;
== Instalació ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rpm -Uvh http://files.freeswitch.org/freeswitch-release-1-0.noarch.rpm&lt;br /&gt;
yum install freeswitch-config-vanilla&lt;br /&gt;
yum install sox freeswitch-sounds*&lt;br /&gt;
yum install freeswitch-lang*&lt;br /&gt;
yum install freeswitch-xml-cdr freeswitch-xml-curl&lt;br /&gt;
yum install freeswitch-tdm&lt;br /&gt;
yum install freeswithc-spidermonkey&lt;br /&gt;
chkconfig --add freeswitch &amp;amp;&amp;amp; chkconfig --levels 35 freeswitch on&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Configuracio ==&lt;br /&gt;
&lt;br /&gt;
Path: /etc/freeswitch&lt;br /&gt;
&lt;br /&gt;
fitxers a tocar:&lt;br /&gt;
* vars.xml : definicions usades a la resta de la configuracio important establir el domini&lt;br /&gt;
* directory/default/*.xml : important canviar els passwords dels usuaris&lt;br /&gt;
* autoload_configs/modules.conf : activar xml_rpc si es vol interf web i mod sofia si es vol SIP&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== vars.xml ===&lt;br /&gt;
* canviat default password (linea 16)&lt;br /&gt;
* canviat valor variable domain = cadt.com (linea 55)&lt;br /&gt;
&lt;br /&gt;
=== modules.conf.xml ===&lt;br /&gt;
* activat mod_xml_rpc  (linia 138)&lt;br /&gt;
* activat mod_xml_curl (linia 139)&lt;br /&gt;
* activat mod_xml_cdr  (linia 140)&lt;br /&gt;
&lt;br /&gt;
== Proves ==&lt;br /&gt;
Instalacio de twinkle a CentOS 6&lt;br /&gt;
yum install twinkle &amp;lt;enter&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Configuracio de twinkle &lt;br /&gt;
 Create profile&lt;br /&gt;
 . username 1000&lt;br /&gt;
 . password cadtboira1&lt;br /&gt;
 . proxy 192.168.1.95&lt;br /&gt;
 . Transport/NAT: NAT traversal not needed&lt;br /&gt;
&lt;br /&gt;
Modificacio de regles iptables&lt;br /&gt;
 -A INPUT -m state --state NEW -m udp -p udp --dport 5060       -j voip-local-IN&lt;br /&gt;
 -A INPUT -m state --state NEW -m udp -p udp -m multiport --dports 8000:8005 -j voip-local-IN&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Activacio de trace sofia&lt;br /&gt;
 Entra a la consola&lt;br /&gt;
 * fs_cli &amp;lt;enter&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 Activa trace per SIP&lt;br /&gt;
 * sofia global siptrace &amp;lt;on|off&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Configuracio de servidors SIP&lt;br /&gt;
 &lt;br /&gt;
* sip_profiles/external&lt;br /&gt;
 &lt;br /&gt;
 - localphone&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;include&amp;gt;&lt;br /&gt;
  &amp;lt;gateway name=&amp;quot;localphone-gw&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
     &amp;lt;param name=&amp;quot;contact-params&amp;quot; value=&amp;quot;&amp;quot;/&amp;gt;&lt;br /&gt;
     &amp;lt;param name=&amp;quot;extension&amp;quot; value=&amp;quot;&amp;quot;/&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
    &amp;lt;param name=&amp;quot;from-domain&amp;quot; value=&amp;quot;localphone.com&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;param name=&amp;quot;from-user&amp;quot; value=&amp;quot;[[USERID]]&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;param name=&amp;quot;realm&amp;quot; value=&amp;quot;localphone.com&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;param name=&amp;quot;proxy&amp;quot; value=&amp;quot;proxy.localphone.com&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;param name=&amp;quot;username&amp;quot; value=&amp;quot;[[USERID]]&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;param name=&amp;quot;password&amp;quot; value=&amp;quot;[[PASSWORD]]&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;param name=&amp;quot;extension-in-contact&amp;quot; value=&amp;quot;true&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;param name=&amp;quot;retry-seconds&amp;quot; value=&amp;quot;30&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;param name=&amp;quot;caller-id-in-from&amp;quot; value=&amp;quot;false&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;/gateway&amp;gt;&lt;br /&gt;
 &amp;lt;/include&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 - messagenet&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;include&amp;gt;&lt;br /&gt;
  &amp;lt;gateway name=&amp;quot;messagenet-gw&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
     &amp;lt;param name=&amp;quot;contact-params&amp;quot; value=&amp;quot;&amp;quot;/&amp;gt;&lt;br /&gt;
     &amp;lt;param name=&amp;quot;extension&amp;quot; value=&amp;quot;&amp;quot;/&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
    &amp;lt;param name=&amp;quot;from-domain&amp;quot; value=&amp;quot;messagenet.it&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;param name=&amp;quot;from-user&amp;quot; value=&amp;quot;[[USERID]]&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;param name=&amp;quot;realm&amp;quot; value=&amp;quot;messagenet.it&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;param name=&amp;quot;proxy&amp;quot; value=&amp;quot;sip.messagenet.it&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;param name=&amp;quot;sip-port&amp;quot; value=&amp;quot;5061&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;param name=&amp;quot;username&amp;quot; value=&amp;quot;[[USERID]]&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;param name=&amp;quot;password&amp;quot; value=&amp;quot;[[PASSWORD]]&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;param name=&amp;quot;extension-in-contact&amp;quot; value=&amp;quot;true&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;param name=&amp;quot;retry-seconds&amp;quot; value=&amp;quot;30&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;param name=&amp;quot;caller-id-in-from&amp;quot; value=&amp;quot;false&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;/gateway&amp;gt;&lt;br /&gt;
 &amp;lt;/include&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== TODO ==&lt;br /&gt;
&lt;br /&gt;
* recepcio trucades entrants&lt;br /&gt;
* mode nit trucades entrants&lt;br /&gt;
* passar trucada&lt;br /&gt;
* trucades en espera&lt;br /&gt;
* trunk entre oficines&lt;br /&gt;
* musica trucada en espera ( canviar en funcio estacio)&lt;br /&gt;
* telefons cisco&lt;br /&gt;
* gateway linies analogiques&lt;br /&gt;
* usuaris de confianca externs&lt;br /&gt;
* conferencia&lt;br /&gt;
* trucada a ultim numero&lt;br /&gt;
* tornar trucada&lt;br /&gt;
* integracio skype&lt;br /&gt;
* redireccio e164 / estalvi cost trucada&lt;br /&gt;
* videoconferencia/cursos&lt;br /&gt;
* documentacio.....&lt;br /&gt;
&lt;br /&gt;
== Abreviacions ==&lt;br /&gt;
* DAHDI: Digium/Asterisk Hardware Device Interface&lt;br /&gt;
* CDR: Call Detail Records&lt;br /&gt;
* CID: Call ID&lt;br /&gt;
* DID: irect Inward Dialing. Numero extern que crida a extensio interna...&lt;br /&gt;
* LCR: least cost routing&lt;br /&gt;
* POTS: Plain Old Telephony Service&lt;br /&gt;
* FXO: Foreign eXchange Office. Port on es pot conectar una linia de telefon del proveidor &lt;br /&gt;
* FXS: Foreign eXchange Service. Port on es pot conectar un telefon  &lt;br /&gt;
* snom: control tecles extra softphone&lt;br /&gt;
* e164: Base de dades consultable via DNS query que converteix de nº POTS a contacte VoIP&lt;br /&gt;
* IVR: Interactive Voice Response. menu de veu de la centraleta&lt;br /&gt;
* STUN: Session Traversal Utilities for NAT. Esquiva NAT important per connexio directe&lt;/div&gt;</summary>
		<author><name>Pascual</name></author>
	</entry>
	<entry>
		<id>https://wiki.cadt.com/index.php?title=Configuracio_FreeSwitch&amp;diff=2357</id>
		<title>Configuracio FreeSwitch</title>
		<link rel="alternate" type="text/html" href="https://wiki.cadt.com/index.php?title=Configuracio_FreeSwitch&amp;diff=2357"/>
		<updated>2014-06-04T12:24:04Z</updated>

		<summary type="html">&lt;p&gt;Pascual: /* Proves */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== links interessants ==&lt;br /&gt;
https://plone.lucidsolutions.co.nz/linux/freeswitch/install-freeswitch-on-a-centos-v6-vm&lt;br /&gt;
&lt;br /&gt;
https://wiki.freeswitch.org/wiki/Dialplan_XML&lt;br /&gt;
&lt;br /&gt;
https://confluence.freeswitch.org/display/FREESWITCH/Interoperability&lt;br /&gt;
&lt;br /&gt;
== Instalació ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rpm -Uvh http://files.freeswitch.org/freeswitch-release-1-0.noarch.rpm&lt;br /&gt;
yum install freeswitch-config-vanilla&lt;br /&gt;
yum install sox freeswitch-sounds*&lt;br /&gt;
yum install freeswitch-lang*&lt;br /&gt;
yum install freeswitch-xml-cdr freeswitch-xml-curl&lt;br /&gt;
yum install freeswitch-tdm&lt;br /&gt;
yum install freeswithc-spidermonkey&lt;br /&gt;
chkconfig --add freeswitch &amp;amp;&amp;amp; chkconfig --levels 35 freeswitch on&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Configuracio ==&lt;br /&gt;
&lt;br /&gt;
Path: /etc/freeswitch&lt;br /&gt;
&lt;br /&gt;
fitxers a tocar:&lt;br /&gt;
* vars.xml : definicions usades a la resta de la configuracio important establir el domini&lt;br /&gt;
* directory/default/*.xml : important canviar els passwords dels usuaris&lt;br /&gt;
* autoload_configs/modules.conf : activar xml_rpc si es vol interf web i mod sofia si es vol SIP&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== vars.xml ===&lt;br /&gt;
* canviat default password (linea 16)&lt;br /&gt;
* canviat valor variable domain = cadt.com (linea 55)&lt;br /&gt;
&lt;br /&gt;
=== modules.conf.xml ===&lt;br /&gt;
* activat mod_xml_rpc  (linia 138)&lt;br /&gt;
* activat mod_xml_curl (linia 139)&lt;br /&gt;
* activat mod_xml_cdr  (linia 140)&lt;br /&gt;
&lt;br /&gt;
== Proves ==&lt;br /&gt;
Instalacio de twinkle a CentOS 6&lt;br /&gt;
yum install twinkle &amp;lt;enter&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Configuracio de twinkle &lt;br /&gt;
 Create profile&lt;br /&gt;
 . username 1000&lt;br /&gt;
 . password cadtboira1&lt;br /&gt;
 . proxy 192.168.1.95&lt;br /&gt;
 . Transport/NAT: NAT traversal not needed&lt;br /&gt;
&lt;br /&gt;
Modificacio de regles iptables&lt;br /&gt;
 -A INPUT -m state --state NEW -m udp -p udp --dport 5060       -j voip-local-IN&lt;br /&gt;
 -A INPUT -m state --state NEW -m udp -p udp -m multiport --dports 8000:8005 -j voip-local-IN&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Activacio de trace sofia&lt;br /&gt;
 Entra a la consola&lt;br /&gt;
 * fs_cli &amp;lt;enter&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 Activa trace per SIP&lt;br /&gt;
 * sofia global siptrace &amp;lt;on|off&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Configuracio de servidors SIP&lt;br /&gt;
 &lt;br /&gt;
 sip_profiles/external&lt;br /&gt;
 &lt;br /&gt;
 * localphone&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;include&amp;gt;&lt;br /&gt;
  &amp;lt;gateway name=&amp;quot;localphone-gw&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
     &amp;lt;param name=&amp;quot;contact-params&amp;quot; value=&amp;quot;&amp;quot;/&amp;gt;&lt;br /&gt;
     &amp;lt;param name=&amp;quot;extension&amp;quot; value=&amp;quot;&amp;quot;/&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
    &amp;lt;param name=&amp;quot;from-domain&amp;quot; value=&amp;quot;localphone.com&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;param name=&amp;quot;from-user&amp;quot; value=&amp;quot;[[USERID]]&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;param name=&amp;quot;realm&amp;quot; value=&amp;quot;localphone.com&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;param name=&amp;quot;proxy&amp;quot; value=&amp;quot;proxy.localphone.com&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;param name=&amp;quot;username&amp;quot; value=&amp;quot;[[USERID]]&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;param name=&amp;quot;password&amp;quot; value=&amp;quot;[[PASSWORD]]&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;param name=&amp;quot;extension-in-contact&amp;quot; value=&amp;quot;true&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;param name=&amp;quot;retry-seconds&amp;quot; value=&amp;quot;30&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;param name=&amp;quot;caller-id-in-from&amp;quot; value=&amp;quot;false&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;/gateway&amp;gt;&lt;br /&gt;
 &amp;lt;/include&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 * messagenet&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;include&amp;gt;&lt;br /&gt;
  &amp;lt;gateway name=&amp;quot;messagenet-gw&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
     &amp;lt;param name=&amp;quot;contact-params&amp;quot; value=&amp;quot;&amp;quot;/&amp;gt;&lt;br /&gt;
     &amp;lt;param name=&amp;quot;extension&amp;quot; value=&amp;quot;&amp;quot;/&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
    &amp;lt;param name=&amp;quot;from-domain&amp;quot; value=&amp;quot;messagenet.it&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;param name=&amp;quot;from-user&amp;quot; value=&amp;quot;[[USERID]]&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;param name=&amp;quot;realm&amp;quot; value=&amp;quot;messagenet.it&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;param name=&amp;quot;proxy&amp;quot; value=&amp;quot;sip.messagenet.it&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;param name=&amp;quot;sip-port&amp;quot; value=&amp;quot;5061&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;param name=&amp;quot;username&amp;quot; value=&amp;quot;[[USERID]]&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;param name=&amp;quot;password&amp;quot; value=&amp;quot;[[PASSWORD]]&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;param name=&amp;quot;extension-in-contact&amp;quot; value=&amp;quot;true&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;param name=&amp;quot;retry-seconds&amp;quot; value=&amp;quot;30&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;param name=&amp;quot;caller-id-in-from&amp;quot; value=&amp;quot;false&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;/gateway&amp;gt;&lt;br /&gt;
 &amp;lt;/include&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== TODO ==&lt;br /&gt;
&lt;br /&gt;
* recepcio trucades entrants&lt;br /&gt;
* mode nit trucades entrants&lt;br /&gt;
* passar trucada&lt;br /&gt;
* trucades en espera&lt;br /&gt;
* trunk entre oficines&lt;br /&gt;
* musica trucada en espera ( canviar en funcio estacio)&lt;br /&gt;
* telefons cisco&lt;br /&gt;
* gateway linies analogiques&lt;br /&gt;
* usuaris de confianca externs&lt;br /&gt;
* conferencia&lt;br /&gt;
* trucada a ultim numero&lt;br /&gt;
* tornar trucada&lt;br /&gt;
* integracio skype&lt;br /&gt;
* redireccio e164 / estalvi cost trucada&lt;br /&gt;
* videoconferencia/cursos&lt;br /&gt;
* documentacio.....&lt;br /&gt;
&lt;br /&gt;
== Abreviacions ==&lt;br /&gt;
* DAHDI: Digium/Asterisk Hardware Device Interface&lt;br /&gt;
* CDR: Call Detail Records&lt;br /&gt;
* CID: Call ID&lt;br /&gt;
* DID: irect Inward Dialing. Numero extern que crida a extensio interna...&lt;br /&gt;
* LCR: least cost routing&lt;br /&gt;
* POTS: Plain Old Telephony Service&lt;br /&gt;
* FXO: Foreign eXchange Office. Port on es pot conectar una linia de telefon del proveidor &lt;br /&gt;
* FXS: Foreign eXchange Service. Port on es pot conectar un telefon  &lt;br /&gt;
* snom: control tecles extra softphone&lt;br /&gt;
* e164: Base de dades consultable via DNS query que converteix de nº POTS a contacte VoIP&lt;br /&gt;
* IVR: Interactive Voice Response. menu de veu de la centraleta&lt;br /&gt;
* STUN: Session Traversal Utilities for NAT. Esquiva NAT important per connexio directe&lt;/div&gt;</summary>
		<author><name>Pascual</name></author>
	</entry>
	<entry>
		<id>https://wiki.cadt.com/index.php?title=Configuracio_FreeSwitch&amp;diff=2356</id>
		<title>Configuracio FreeSwitch</title>
		<link rel="alternate" type="text/html" href="https://wiki.cadt.com/index.php?title=Configuracio_FreeSwitch&amp;diff=2356"/>
		<updated>2014-06-04T12:21:23Z</updated>

		<summary type="html">&lt;p&gt;Pascual: /* Proves */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== links interessants ==&lt;br /&gt;
https://plone.lucidsolutions.co.nz/linux/freeswitch/install-freeswitch-on-a-centos-v6-vm&lt;br /&gt;
&lt;br /&gt;
https://wiki.freeswitch.org/wiki/Dialplan_XML&lt;br /&gt;
&lt;br /&gt;
https://confluence.freeswitch.org/display/FREESWITCH/Interoperability&lt;br /&gt;
&lt;br /&gt;
== Instalació ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rpm -Uvh http://files.freeswitch.org/freeswitch-release-1-0.noarch.rpm&lt;br /&gt;
yum install freeswitch-config-vanilla&lt;br /&gt;
yum install sox freeswitch-sounds*&lt;br /&gt;
yum install freeswitch-lang*&lt;br /&gt;
yum install freeswitch-xml-cdr freeswitch-xml-curl&lt;br /&gt;
yum install freeswitch-tdm&lt;br /&gt;
yum install freeswithc-spidermonkey&lt;br /&gt;
chkconfig --add freeswitch &amp;amp;&amp;amp; chkconfig --levels 35 freeswitch on&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Configuracio ==&lt;br /&gt;
&lt;br /&gt;
Path: /etc/freeswitch&lt;br /&gt;
&lt;br /&gt;
fitxers a tocar:&lt;br /&gt;
* vars.xml : definicions usades a la resta de la configuracio important establir el domini&lt;br /&gt;
* directory/default/*.xml : important canviar els passwords dels usuaris&lt;br /&gt;
* autoload_configs/modules.conf : activar xml_rpc si es vol interf web i mod sofia si es vol SIP&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== vars.xml ===&lt;br /&gt;
* canviat default password (linea 16)&lt;br /&gt;
* canviat valor variable domain = cadt.com (linea 55)&lt;br /&gt;
&lt;br /&gt;
=== modules.conf.xml ===&lt;br /&gt;
* activat mod_xml_rpc  (linia 138)&lt;br /&gt;
* activat mod_xml_curl (linia 139)&lt;br /&gt;
* activat mod_xml_cdr  (linia 140)&lt;br /&gt;
&lt;br /&gt;
== Proves ==&lt;br /&gt;
Instalacio de twinkle a CentOS 6&lt;br /&gt;
yum install twinkle &amp;lt;enter&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Configuracio de twinkle &lt;br /&gt;
 Create profile&lt;br /&gt;
 . username 1000&lt;br /&gt;
 . password cadtboira1&lt;br /&gt;
 . proxy 192.168.1.95&lt;br /&gt;
 . Transport/NAT: NAT traversal not needed&lt;br /&gt;
&lt;br /&gt;
Modificacio de regles iptables&lt;br /&gt;
 -A INPUT -m state --state NEW -m udp -p udp --dport 5060       -j voip-local-IN&lt;br /&gt;
 -A INPUT -m state --state NEW -m udp -p udp -m multiport --dports 8000:8005 -j voip-local-IN&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Activacio de trace sofia&lt;br /&gt;
 Entra a la consola&lt;br /&gt;
 * fs_cli &amp;lt;enter&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 Activa trace per SIP&lt;br /&gt;
 * sofia global siptrace &amp;lt;on|off&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 Configuracio de servidors SIP&lt;br /&gt;
 &lt;br /&gt;
  sip_profiles/external&lt;br /&gt;
 == messagenet ==&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;include&amp;gt;&lt;br /&gt;
  &amp;lt;gateway name=&amp;quot;localphone-gw&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
     &amp;lt;param name=&amp;quot;contact-params&amp;quot; value=&amp;quot;&amp;quot;/&amp;gt;&lt;br /&gt;
     &amp;lt;param name=&amp;quot;extension&amp;quot; value=&amp;quot;&amp;quot;/&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
    &amp;lt;param name=&amp;quot;from-domain&amp;quot; value=&amp;quot;localphone.com&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;param name=&amp;quot;from-user&amp;quot; value=&amp;quot;5003811&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;param name=&amp;quot;realm&amp;quot; value=&amp;quot;localphone.com&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;param name=&amp;quot;proxy&amp;quot; value=&amp;quot;proxy.localphone.com&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;param name=&amp;quot;username&amp;quot; value=&amp;quot;5003811&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;param name=&amp;quot;password&amp;quot; value=&amp;quot;bb7b0b84&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;param name=&amp;quot;extension-in-contact&amp;quot; value=&amp;quot;true&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;param name=&amp;quot;retry-seconds&amp;quot; value=&amp;quot;30&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;param name=&amp;quot;caller-id-in-from&amp;quot; value=&amp;quot;false&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;/gateway&amp;gt;&lt;br /&gt;
&amp;lt;/include&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 == localphone ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== TODO ==&lt;br /&gt;
&lt;br /&gt;
* recepcio trucades entrants&lt;br /&gt;
* mode nit trucades entrants&lt;br /&gt;
* passar trucada&lt;br /&gt;
* trucades en espera&lt;br /&gt;
* trunk entre oficines&lt;br /&gt;
* musica trucada en espera ( canviar en funcio estacio)&lt;br /&gt;
* telefons cisco&lt;br /&gt;
* gateway linies analogiques&lt;br /&gt;
* usuaris de confianca externs&lt;br /&gt;
* conferencia&lt;br /&gt;
* trucada a ultim numero&lt;br /&gt;
* tornar trucada&lt;br /&gt;
* integracio skype&lt;br /&gt;
* redireccio e164 / estalvi cost trucada&lt;br /&gt;
* videoconferencia/cursos&lt;br /&gt;
* documentacio.....&lt;br /&gt;
&lt;br /&gt;
== Abreviacions ==&lt;br /&gt;
* DAHDI: Digium/Asterisk Hardware Device Interface&lt;br /&gt;
* CDR: Call Detail Records&lt;br /&gt;
* CID: Call ID&lt;br /&gt;
* DID: irect Inward Dialing. Numero extern que crida a extensio interna...&lt;br /&gt;
* LCR: least cost routing&lt;br /&gt;
* POTS: Plain Old Telephony Service&lt;br /&gt;
* FXO: Foreign eXchange Office. Port on es pot conectar una linia de telefon del proveidor &lt;br /&gt;
* FXS: Foreign eXchange Service. Port on es pot conectar un telefon  &lt;br /&gt;
* snom: control tecles extra softphone&lt;br /&gt;
* e164: Base de dades consultable via DNS query que converteix de nº POTS a contacte VoIP&lt;br /&gt;
* IVR: Interactive Voice Response. menu de veu de la centraleta&lt;br /&gt;
* STUN: Session Traversal Utilities for NAT. Esquiva NAT important per connexio directe&lt;/div&gt;</summary>
		<author><name>Pascual</name></author>
	</entry>
	<entry>
		<id>https://wiki.cadt.com/index.php?title=Configuracio_FreeSwitch&amp;diff=2355</id>
		<title>Configuracio FreeSwitch</title>
		<link rel="alternate" type="text/html" href="https://wiki.cadt.com/index.php?title=Configuracio_FreeSwitch&amp;diff=2355"/>
		<updated>2014-06-04T10:07:20Z</updated>

		<summary type="html">&lt;p&gt;Pascual: /* links interessants */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== links interessants ==&lt;br /&gt;
https://plone.lucidsolutions.co.nz/linux/freeswitch/install-freeswitch-on-a-centos-v6-vm&lt;br /&gt;
&lt;br /&gt;
https://wiki.freeswitch.org/wiki/Dialplan_XML&lt;br /&gt;
&lt;br /&gt;
https://confluence.freeswitch.org/display/FREESWITCH/Interoperability&lt;br /&gt;
&lt;br /&gt;
== Instalació ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rpm -Uvh http://files.freeswitch.org/freeswitch-release-1-0.noarch.rpm&lt;br /&gt;
yum install freeswitch-config-vanilla&lt;br /&gt;
yum install sox freeswitch-sounds*&lt;br /&gt;
yum install freeswitch-lang*&lt;br /&gt;
yum install freeswitch-xml-cdr freeswitch-xml-curl&lt;br /&gt;
yum install freeswitch-tdm&lt;br /&gt;
yum install freeswithc-spidermonkey&lt;br /&gt;
chkconfig --add freeswitch &amp;amp;&amp;amp; chkconfig --levels 35 freeswitch on&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Configuracio ==&lt;br /&gt;
&lt;br /&gt;
Path: /etc/freeswitch&lt;br /&gt;
&lt;br /&gt;
fitxers a tocar:&lt;br /&gt;
* vars.xml : definicions usades a la resta de la configuracio important establir el domini&lt;br /&gt;
* directory/default/*.xml : important canviar els passwords dels usuaris&lt;br /&gt;
* autoload_configs/modules.conf : activar xml_rpc si es vol interf web i mod sofia si es vol SIP&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== vars.xml ===&lt;br /&gt;
* canviat default password (linea 16)&lt;br /&gt;
* canviat valor variable domain = cadt.com (linea 55)&lt;br /&gt;
&lt;br /&gt;
=== modules.conf.xml ===&lt;br /&gt;
* activat mod_xml_rpc  (linia 138)&lt;br /&gt;
* activat mod_xml_curl (linia 139)&lt;br /&gt;
* activat mod_xml_cdr  (linia 140)&lt;br /&gt;
&lt;br /&gt;
== Proves ==&lt;br /&gt;
Instalacio de twinkle a CentOS 6&lt;br /&gt;
yum install twinkle &amp;lt;enter&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Configuracio de twinkle &lt;br /&gt;
 Create profile&lt;br /&gt;
 . username 1000&lt;br /&gt;
 . password cadtboira1&lt;br /&gt;
 . proxy 192.168.1.95&lt;br /&gt;
 . Transport/NAT: NAT traversal not needed&lt;br /&gt;
&lt;br /&gt;
Modificacio de regles iptables&lt;br /&gt;
 -A INPUT -m state --state NEW -m udp -p udp --dport 5060       -j voip-local-IN&lt;br /&gt;
 -A INPUT -m state --state NEW -m udp -p udp -m multiport --dports 8000:8005 -j voip-local-IN&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Activacio de trace sofia&lt;br /&gt;
 Entra a la consola&lt;br /&gt;
 * fs_cli &amp;lt;enter&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 Activa trace per SIP&lt;br /&gt;
 * sofia global siptrace &amp;lt;on|off&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Abreviacions ==&lt;br /&gt;
* DAHDI: Digium/Asterisk Hardware Device Interface&lt;br /&gt;
* CDR: Call Detail Records&lt;br /&gt;
* CID: Call ID&lt;br /&gt;
* DID: irect Inward Dialing. Numero extern que crida a extensio interna...&lt;br /&gt;
* LCR: least cost routing&lt;br /&gt;
* POTS: Plain Old Telephony Service&lt;br /&gt;
* FXO: Foreign eXchange Office. Port on es pot conectar una linia de telefon del proveidor &lt;br /&gt;
* FXS: Foreign eXchange Service. Port on es pot conectar un telefon  &lt;br /&gt;
* snom: control tecles extra softphone&lt;br /&gt;
* e164: Base de dades consultable via DNS query que converteix de nº POTS a contacte VoIP&lt;br /&gt;
* IVR: Interactive Voice Response. menu de veu de la centraleta&lt;br /&gt;
* STUN: Session Traversal Utilities for NAT. Esquiva NAT important per connexio directe&lt;/div&gt;</summary>
		<author><name>Pascual</name></author>
	</entry>
	<entry>
		<id>https://wiki.cadt.com/index.php?title=Configuracio_FreeSwitch&amp;diff=2354</id>
		<title>Configuracio FreeSwitch</title>
		<link rel="alternate" type="text/html" href="https://wiki.cadt.com/index.php?title=Configuracio_FreeSwitch&amp;diff=2354"/>
		<updated>2014-06-04T09:27:29Z</updated>

		<summary type="html">&lt;p&gt;Pascual: /* links interessants */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== links interessants ==&lt;br /&gt;
https://plone.lucidsolutions.co.nz/linux/freeswitch/install-freeswitch-on-a-centos-v6-vm&lt;br /&gt;
https://wiki.freeswitch.org/wiki/Dialplan_XML&lt;br /&gt;
&lt;br /&gt;
== Instalació ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rpm -Uvh http://files.freeswitch.org/freeswitch-release-1-0.noarch.rpm&lt;br /&gt;
yum install freeswitch-config-vanilla&lt;br /&gt;
yum install sox freeswitch-sounds*&lt;br /&gt;
yum install freeswitch-lang*&lt;br /&gt;
yum install freeswitch-xml-cdr freeswitch-xml-curl&lt;br /&gt;
yum install freeswitch-tdm&lt;br /&gt;
yum install freeswithc-spidermonkey&lt;br /&gt;
chkconfig --add freeswitch &amp;amp;&amp;amp; chkconfig --levels 35 freeswitch on&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Configuracio ==&lt;br /&gt;
&lt;br /&gt;
Path: /etc/freeswitch&lt;br /&gt;
&lt;br /&gt;
fitxers a tocar:&lt;br /&gt;
* vars.xml : definicions usades a la resta de la configuracio important establir el domini&lt;br /&gt;
* directory/default/*.xml : important canviar els passwords dels usuaris&lt;br /&gt;
* autoload_configs/modules.conf : activar xml_rpc si es vol interf web i mod sofia si es vol SIP&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== vars.xml ===&lt;br /&gt;
* canviat default password (linea 16)&lt;br /&gt;
* canviat valor variable domain = cadt.com (linea 55)&lt;br /&gt;
&lt;br /&gt;
=== modules.conf.xml ===&lt;br /&gt;
* activat mod_xml_rpc  (linia 138)&lt;br /&gt;
* activat mod_xml_curl (linia 139)&lt;br /&gt;
* activat mod_xml_cdr  (linia 140)&lt;br /&gt;
&lt;br /&gt;
== Proves ==&lt;br /&gt;
Instalacio de twinkle a CentOS 6&lt;br /&gt;
yum install twinkle &amp;lt;enter&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Configuracio de twinkle &lt;br /&gt;
 Create profile&lt;br /&gt;
 . username 1000&lt;br /&gt;
 . password cadtboira1&lt;br /&gt;
 . proxy 192.168.1.95&lt;br /&gt;
 . Transport/NAT: NAT traversal not needed&lt;br /&gt;
&lt;br /&gt;
Modificacio de regles iptables&lt;br /&gt;
 -A INPUT -m state --state NEW -m udp -p udp --dport 5060       -j voip-local-IN&lt;br /&gt;
 -A INPUT -m state --state NEW -m udp -p udp -m multiport --dports 8000:8005 -j voip-local-IN&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Activacio de trace sofia&lt;br /&gt;
 Entra a la consola&lt;br /&gt;
 * fs_cli &amp;lt;enter&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 Activa trace per SIP&lt;br /&gt;
 * sofia global siptrace &amp;lt;on|off&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Abreviacions ==&lt;br /&gt;
* DAHDI: Digium/Asterisk Hardware Device Interface&lt;br /&gt;
* CDR: Call Detail Records&lt;br /&gt;
* CID: Call ID&lt;br /&gt;
* DID: irect Inward Dialing. Numero extern que crida a extensio interna...&lt;br /&gt;
* LCR: least cost routing&lt;br /&gt;
* POTS: Plain Old Telephony Service&lt;br /&gt;
* FXO: Foreign eXchange Office. Port on es pot conectar una linia de telefon del proveidor &lt;br /&gt;
* FXS: Foreign eXchange Service. Port on es pot conectar un telefon  &lt;br /&gt;
* snom: control tecles extra softphone&lt;br /&gt;
* e164: Base de dades consultable via DNS query que converteix de nº POTS a contacte VoIP&lt;br /&gt;
* IVR: Interactive Voice Response. menu de veu de la centraleta&lt;br /&gt;
* STUN: Session Traversal Utilities for NAT. Esquiva NAT important per connexio directe&lt;/div&gt;</summary>
		<author><name>Pascual</name></author>
	</entry>
	<entry>
		<id>https://wiki.cadt.com/index.php?title=Configuracio_FreeSwitch&amp;diff=2352</id>
		<title>Configuracio FreeSwitch</title>
		<link rel="alternate" type="text/html" href="https://wiki.cadt.com/index.php?title=Configuracio_FreeSwitch&amp;diff=2352"/>
		<updated>2014-06-03T10:34:28Z</updated>

		<summary type="html">&lt;p&gt;Pascual: /* Proves */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== links interessants ==&lt;br /&gt;
https://plone.lucidsolutions.co.nz/linux/freeswitch/install-freeswitch-on-a-centos-v6-vm&lt;br /&gt;
&lt;br /&gt;
== Instalació ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rpm -Uvh http://files.freeswitch.org/freeswitch-release-1-0.noarch.rpm&lt;br /&gt;
yum install freeswitch-config-vanilla&lt;br /&gt;
yum install sox freeswitch-sounds*&lt;br /&gt;
yum install freeswitch-lang*&lt;br /&gt;
yum install freeswitch-xml-cdr freeswitch-xml-curl&lt;br /&gt;
yum install freeswitch-tdm&lt;br /&gt;
yum install freeswithc-spidermonkey&lt;br /&gt;
chkconfig --add freeswitch &amp;amp;&amp;amp; chkconfig --levels 35 freeswitch on&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Configuracio ==&lt;br /&gt;
&lt;br /&gt;
Path: /etc/freeswitch&lt;br /&gt;
&lt;br /&gt;
fitxers a tocar:&lt;br /&gt;
* vars.xml : definicions usades a la resta de la configuracio important establir el domini&lt;br /&gt;
* directory/default/*.xml : important canviar els passwords dels usuaris&lt;br /&gt;
* autoload_configs/modules.conf : activar xml_rpc si es vol interf web i mod sofia si es vol SIP&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== vars.xml ===&lt;br /&gt;
* canviat default password (linea 16)&lt;br /&gt;
* canviat valor variable domain = cadt.com (linea 55)&lt;br /&gt;
&lt;br /&gt;
=== modules.conf.xml ===&lt;br /&gt;
* activat mod_xml_rpc  (linia 138)&lt;br /&gt;
* activat mod_xml_curl (linia 139)&lt;br /&gt;
* activat mod_xml_cdr  (linia 140)&lt;br /&gt;
&lt;br /&gt;
== Proves ==&lt;br /&gt;
Instalacio de twinkle a CentOS 6&lt;br /&gt;
yum install twinkle &amp;lt;enter&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Configuracio de twinkle &lt;br /&gt;
 Create profile&lt;br /&gt;
 . username 1000&lt;br /&gt;
 . password cadtboira1&lt;br /&gt;
 . proxy 192.168.1.95&lt;br /&gt;
 . Transport/NAT: NAT traversal not needed&lt;br /&gt;
&lt;br /&gt;
Modificacio de regles iptables&lt;br /&gt;
 -A INPUT -m state --state NEW -m udp -p udp --dport 5060       -j voip-local-IN&lt;br /&gt;
 -A INPUT -m state --state NEW -m udp -p udp -m multiport --dports 8000:8005 -j voip-local-IN&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Activacio de trace sofia&lt;br /&gt;
 Entra a la consola&lt;br /&gt;
 * fs_cli &amp;lt;enter&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 Activa trace per SIP&lt;br /&gt;
 * sofia global siptrace &amp;lt;on|off&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Abreviacions ==&lt;br /&gt;
* DAHDI: Digium/Asterisk Hardware Device Interface&lt;br /&gt;
* CDR: Call Detail Records&lt;br /&gt;
* CID: Call ID&lt;br /&gt;
* LCR: least cost routing&lt;br /&gt;
* POTS: Plain Old Telephony Service&lt;br /&gt;
* FXO: Foreign eXchange Office. Port on es pot conectar una linia de telefon del proveidor &lt;br /&gt;
* FXS: Foreign eXchange Service. Port on es pot conectar un telefon  &lt;br /&gt;
* snom: control tecles extra softphone&lt;br /&gt;
* e164: Base de dades consultable via DNS query que converteix de nº POTS a contacte VoIP&lt;/div&gt;</summary>
		<author><name>Pascual</name></author>
	</entry>
	<entry>
		<id>https://wiki.cadt.com/index.php?title=Configuracio_FreeSwitch&amp;diff=2351</id>
		<title>Configuracio FreeSwitch</title>
		<link rel="alternate" type="text/html" href="https://wiki.cadt.com/index.php?title=Configuracio_FreeSwitch&amp;diff=2351"/>
		<updated>2014-06-03T10:13:17Z</updated>

		<summary type="html">&lt;p&gt;Pascual: /* Proves */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== links interessants ==&lt;br /&gt;
https://plone.lucidsolutions.co.nz/linux/freeswitch/install-freeswitch-on-a-centos-v6-vm&lt;br /&gt;
&lt;br /&gt;
== Instalació ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rpm -Uvh http://files.freeswitch.org/freeswitch-release-1-0.noarch.rpm&lt;br /&gt;
yum install freeswitch-config-vanilla&lt;br /&gt;
yum install sox freeswitch-sounds*&lt;br /&gt;
yum install freeswitch-lang*&lt;br /&gt;
yum install freeswitch-xml-cdr freeswitch-xml-curl&lt;br /&gt;
yum install freeswitch-tdm&lt;br /&gt;
yum install freeswithc-spidermonkey&lt;br /&gt;
chkconfig --add freeswitch &amp;amp;&amp;amp; chkconfig --levels 35 freeswitch on&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Configuracio ==&lt;br /&gt;
&lt;br /&gt;
Path: /etc/freeswitch&lt;br /&gt;
&lt;br /&gt;
fitxers a tocar:&lt;br /&gt;
* vars.xml : definicions usades a la resta de la configuracio important establir el domini&lt;br /&gt;
* directory/default/*.xml : important canviar els passwords dels usuaris&lt;br /&gt;
* autoload_configs/modules.conf : activar xml_rpc si es vol interf web i mod sofia si es vol SIP&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== vars.xml ===&lt;br /&gt;
* canviat default password (linea 16)&lt;br /&gt;
* canviat valor variable domain = cadt.com (linea 55)&lt;br /&gt;
&lt;br /&gt;
=== modules.conf.xml ===&lt;br /&gt;
* activat mod_xml_rpc  (linia 138)&lt;br /&gt;
* activat mod_xml_curl (linia 139)&lt;br /&gt;
* activat mod_xml_cdr  (linia 140)&lt;br /&gt;
&lt;br /&gt;
== Proves ==&lt;br /&gt;
Instalacio de twinkle a CentOS 6&lt;br /&gt;
yum install twinkle &amp;lt;enter&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Configuracio de twinkle &lt;br /&gt;
 Create profile&lt;br /&gt;
 . username 1000&lt;br /&gt;
 . password cadtboira1&lt;br /&gt;
 . proxy 192.168.1.95&lt;br /&gt;
 . stun server 192.168.1.95&lt;br /&gt;
&lt;br /&gt;
Modificacio de regles iptables&lt;br /&gt;
 -A INPUT -m state --state NEW -m udp -p udp --dport 5060       -j voip-local-IN&lt;br /&gt;
 -A INPUT -m state --state NEW -m udp -p udp -m multiport --dports 8000:8005 -j voip-local-IN&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Activacio de trace sofia&lt;br /&gt;
 Entra a la consola&lt;br /&gt;
 * fs_cli &amp;lt;enter&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 Activa trace per SIP&lt;br /&gt;
 * sofia global siptrace &amp;lt;on|off&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Abreviacions ==&lt;br /&gt;
* DAHDI: Digium/Asterisk Hardware Device Interface&lt;br /&gt;
* CDR: Call Detail Records&lt;br /&gt;
* CID: Call ID&lt;br /&gt;
* LCR: least cost routing&lt;br /&gt;
* POTS: Plain Old Telephony Service&lt;br /&gt;
* FXO: Foreign eXchange Office. Port on es pot conectar una linia de telefon del proveidor &lt;br /&gt;
* FXS: Foreign eXchange Service. Port on es pot conectar un telefon  &lt;br /&gt;
* snom: control tecles extra softphone&lt;br /&gt;
* e164: Base de dades consultable via DNS query que converteix de nº POTS a contacte VoIP&lt;/div&gt;</summary>
		<author><name>Pascual</name></author>
	</entry>
</feed>