DLL_EXPORTS


void drf_clear_errors()
Descr:Borra todos los mensajes de error del almacenamiento interno de la librería dinámica.

int drf_get_num_errors();
Descr:Obtiene el numero de mensajes de error del almacenados por la librería dinámica.
Return:numero de mensajes almacenados.

const char* drf_get_error(int idx)
Descr:obtiene el mensajes de error indicado por idx.
p:idx: Numero de mensaje a obtener.Comprendido ente 0 y (drf_get_num_messages()-1) ambos incluidos.
Return: un puntero a una cadena de caracteres ASCII terminada por el byte NUL ('\0'), o NULL en caso que 
el valor de idx este fuera de rango.

int drf_to_json(char *path,FILE *json,int options)
Descr:Serializa a JSON un dibujo DRF.
p:path: Ruta al fichero DRF a serializar en formato Windows ANSI.
p:json: puntero FILE ya abierto y con la escritura habilitada.
p:options: Selecciona que información se serializará. 0 para serializar toda la información disponible.
Return: 0 para indicar que la operación se ha completado correctamente. Diferente de 0 para indicar error.

TAGS

Codificación a JSON de los datos:

La información se codifica como un objeto. Donde el nombre del tag es la clave y el contenido de este el valor. Todos los tags se codifican como

TAGS GENERIC INFO


*Software string
Nombre del programa que ha generado el fichero .DRF

*DrawName string
Referencia del dibujo (max. 256 carac).

*Company string
Compañía que ha creado el dibujo (max. 30 carac).

TAGS MACHINE INFO


*Machine string
Campo editable por el diseñador que contiene el nombre, descripción o referencia de la maquina. 

*MachineType string
Nombre del modelo de la maquina. Solo puede contener un nombre de maquina de los que tiene definidos el carta.

*Description string
Descripción del dibujo introducida por el diseñador.

*Serial string
Código de serie del dibujo asignado por el diseñador. Puede contener cualquier secuencia de caracteres imprimibles ASCII.

*Version int32
Versión del formato de DRF con el que se ha guardado el archivo.

*Jacquard int32
Número de barras de Jacquard independientes. Solo se soporta hasta un máximo de 2 barras. 

*BarsRepeat int32


*NumRepeats int32

*NumBars int32
Numero de barras que tiene el telar

*Plate int32
N:1

*JacqNeedles int32
Numero de agujas de Jacquard del telar

*MachNeedles int32
Numero total de agujas del telar 

*BarsOffset int32
Desplazamiento respecto a la primera aguja

*JacqOffset int32

*MaxDisp int32

*Proximity int32


*JacqRt int32

*FinalGauge
Type:float
N:1

*FinalQuality
Type:float
N:1

*RealGauge
Type:float
N:1

*RealQuality
Type:float
N:1

*Shrinkage
Type:float
N:1

*Elasticity
Type:float
N:1

*BarName string(NumBars)
Nombre de cada una de las barras del telar

*BarNumBar int32(NumBars)
Numero de cada una de las barras del telar

*BarGroup int32(NumBars)

*BarStop int32(NumBars)

*BarUtil int32(NumBars)

*BarType int32(NumBars)

*BarMaxGimp 

*BarDrive

*BarFactor

*BarInvert

*BarWork

*BarKnit

*BarTimes

*BarMode

*BarModif

*BarRepeat

*BarTension

*BarNumFingers int32(NumBars)
numero de pasadores de la barra

*BarModeDrop

*BarMaxDesp

*BarActive

*BarHalvesUp

*BarHalvesDn

*BarString

*BarFronture NumBars

*BarDropsUtil int32(7*NumBars)

*FingerStop int32(num_fingers) num_fingers=BarNumFingers(0) + ... + BarNumFingers(NumBars-1)
Stop del pasador relativo al stop de la barra.

*FingerType int32(num_fingers) num_fingers=BarNumFingers(0) + ... + BarNumFingers(NumBars-1)
Tipo de pasador.

*CGF1Card

*CGF1Type

*CGF1Taille

*CGF1Numlines

*CGF1Script

*CGF1Descrip

*CGF2Card

*CGF2Type

*CGF2Taille

*CGF2Numlines

*CGF2Script

*CGF2Descrip

*CFBNGaits

*CFBCard

*CFBType

*CFBTaille

*CFBNumlines

*CFBScript

*CFBGaitNBar

*CFBGaitNGait

*CFBDescrip

*CFBGaitNRepeat

*JacqRtCourse

*Fronture

TAGS DRAFT DATA


*NumCourses int32
Numero de pasadas guardadas del dibujo.

*BarHalves int32(NumCourses)

*BarNeedle int32(NumCourses)

*BarKnitting int32(NumCourses)

*BarNeedleB int32(NumCourses)

*BarKnittingB int32(NumCourses)

*Layout_FrontureData

*Layout_WBData

*Layout_JacqData bit(NumCourses*JacqNeedles*Jacquard)
Bits de Jacquard. 

*LayoutCourNRepeats int32
Numero de repeticiones

*LayoutCourNLayouts int32
Numero de bloques a repetir

*LayoutCourRepeat int32(LayoutCourNLayouts)
Numero de pasadas de cada bloque a repetir

*LayoutCourWhich int32(LayoutCourNRepeats)
indice del bloque que a repetir

*LayoutCourTimes int32(LayoutCourNRepeats)
numero de veces que se ha de repetir el bloque. Ejemplo:

Supongamos el dibujo:

 AAAAAAAAA
H * * * * H
H * * * * H
H * * * * H
H * .-. * H
H  ( * )  H
H * '-' * H
H * * * * H
H * * * * H
H * .-. * H
H  ( * )  H
H * '-' * H
H * * * * H
H * * * * H
 VVVVVVVVV



*LayoutJacqNRepeats int32

*LayoutJacqNLayouts int32

*LayoutJacqRepeat int32(LayoutJacqNLayouts)

*LayoutJacqWhich int32(LayoutJacqNRepeats)

*LayoutJacqTimes int32(LayoutJacqNRepeats)