Formato de los tutoriales

Si queréis realizar nuevos tutoriales para que aparezcan en el Osciloscopio Virtual, podréis hacerlo muy fácilmente mediate un editor de texto.
El lenguaje que se utiliza es muy básico como veremos y no creo que tengáis problemas para realizar nuevos tutoriales. Lo primero que se debe colocar es un titulo mediante la siguiente sintáxis:

TITULO nombre del título.

Con esta línea hemos introducido toda la información global que necesita el tutorial. Ahora se debe introducir cada uno de los bocadillos como sigue:

NUX coordenada X donde queremos que aparezca el bocadillo.

NUY coordenada Y.

FLECHA true o false dependiendo de si queremos que aparezca la flecha roja o no.

TEXTO
Aquí introduciremos todo el texto
separando cada línea con un salto
de línea.
FINTEXTO

ATRIBUTOS
Aquí colocaremos los cambios que se realizarán sobre el osciloscopio antes de que aparezca el bocadillo.
FINATRIBUTOS

De esta forma podemos introducir tantos bocadillos como queramos repitiendo cada uno de los campos de NUX, NUY, TEXTO y ATRIBUTOS.

Para los más puritanos veamos a continuación la sintaxis exacta:

TITULO título
NUM numero_de_bocadillos
[BOCADILLO...]

Donde cada bocadillo está definido como sigue:

NUX coordenada_X
NUY coordenada_Y
TEXTO
[frase...]
FINTEXTO
[ATRIBUTOS
[atributo valor...]
FINATRIBUTOS]

El atributo puede ser:

btnpower { 0 | 1 } : Despulsa/Pulsa el botón de power.

btnxy { 0 | 1 } : Despulsa/Pulsa el botón de XY

btnatnormal { 0 | 1 } : Despulsa/Pulsa el botón de At/Normal

btn+- { 0 | 1 } : Despulsa/Pulsa el botón de +/-

btnxmag { 0 | 1 } : Despulsa/Pulsa el botón de X-Mag

btninv1 { 0 | 1 } : Despulsa/Pulsa el botón de Inv1

btninv2 { 0 | 1 } : Despulsa/Pulsa el botón de Inv2

btnch12 { 0 | 1 } : Despulsa/Pulsa el botón de CH1/2

btndual { 0 | 1 } : Despulsa/Pulsa el botón de Dual

btnadd { 0 | 1 } : Despulsa/Pulsa el botón de Add

btndigital { 0 | 1 } : Despulsa/Pulsa el botón de Digital

btnacdc1 { 0 | 1 | 2 } : Conmuta los valores del botón en AC/DC/GND siendo GND=0, AC=1 y DC=2.

btnacdc2 { 0 | 1 | 2 } : Conmuta los valores del botón en AC/DC/GND siendo GND=0, AC=1 y DC=2.

btntime { 0.2 | 0.1 | 0.05 | 0.02 | 0.01 | 0.005 | 0.002 | 0.001 | 0.0005 | 0.0002 | 0.0001 | 0.00005 | 0.00002 | 0.00001 | 0.000005 |  0.000002 | 0.000001 0.0000005 }: Pone un valor en el botón TIME.

btntimefino { 0 | 0.5 | 1 | 1.5 | 2 | 2.5 | ... | 22.5 }: Pone un valor en el botón fino de TIME

btnvolt1 { 20 | 10 | 5 | 2 | 1 | 0.5 | 0.2 | 0.1 | 0.05 | 0.02 | 0.01 | 0.005 | 0.002 | 0.001 | 0.0005 }: Pone un valor en el botón V/Div del canal 1

btnvolt2 { 20 | 10 | 5 | 2 | 1 | 0.5 | 0.2 | 0.1 | 0.05 | 0.02 | 0.01 | 0.005 | 0.002 | 0.001 | 0.0005 }: Pone el valor en el botón V/Div del canal 2

btnvoltfino1 { 0 | 0.5 | 1 | 1.5 | 2 | 2.5 | ... | 22.5 }: Pone el valor en el botón fino de V/Div del canal 1

btnvoltfino2 { 0 | 0.5 | 1 | 1.5 | 2 | 2.5 | ... | 22.5 } : Pone el valor en el botón fino de V/Div del canal 2

btnxpos { -20 | -19 | ... | 0 | ... | 18 | 19 }: Pone el valor en el botón XPos

btnintens { i*255/24 }: i>=0 ^ i<=24: Pone el valor en el botón Intens

btnfoco { 0 | 1 | ... | 13 }: Pone el valor en el botón Foco

btnholdoff { i*100/45 }: i>=0 ^ i<=45: Pone el valor en el botón HoldOff

btnlevel { i*100/46-100 }: i>=0 ^ i<=92 : Pone el valor en el botón Level

btnypos1 { -145 | -144 | ... | 0 | ... | 144 | 145 }: Pone el valor en el botón YPos del canal 1

btnypos2 { -145 | -144 | ... | 0 | ... | 144 | 145 }: Pone el valor en el botón YPos del canal 2

btncalidad { 1 | 2 | ... | 10 }: Pone el valor en el botón de Calidad. Estos valores van de 1 a 10

btnciclica1 { 0 | 1 } : Despulsa/Pulsa el botón de Ciclica1

btnciclica2 { 0 | 1 } : Despulsa/Pulsa el botón de Ciclica2

ent1 nombre_archivo : Carga un archivo de muestras en la entrada 1

ent2 nombre_archivo : Carga un archivo de muestras en la entrada 2

Si se introduce un atributo erróneo o un valor que no esté contemplado en ese atributo no cambiará.

Una vez creado el tutorial se debe almacenar en el directorio donde se encuntra el simulador: Osciloscopio/Simulador. Además, debe tener una extensión acorde con el idioma. El archivo Idiomas.txt contiene una lista de los idiomas que se admiten. Esta lista es fácilmente actualizable, sin modificar ninguna línea de código, accediendo al archivo de Idiomas.txt. Dicho archivo contiene el siguiente fragmento de texto:

Español
esp
English
eng

Como se puede apreciar, el archivo Idiomas.txt es muy simple y contiene una lista de idiomas y su correspondiente extensión. La extensión nos indicará qué estensión tiene los archivos de tutoriales. La primera línea corresponde a un idioma, mientras que la segunda a la extensión asociada, así que si un archivo tiene la extensión .esp, el OV sabrá que es un tutorial en Español. La tercera linea vuelve a ser un idioma, mientras que la cuarta es la extensión de los archivos asociados a ese idioma, y así sucesivamente.
Si quisieramos añadir un nuevo idioma, únicamente habría que añadir al archivo anterior el idioma y la extensión asociada a dicho idioma, veamos un ejemplo: vamos a añadir el francés a la lista de idiomas.

Español
esp
English
eng
French
fr

Una vez asinado un nombre y una extensión al archivo y almacenado dicho archivo en el directorio correspondiente, únicamente queda modificar el archivo Directorio.txt para que el OV reconozca que existe dicho archivo, añadiendo el nombre del archivo, a la lista de archivos que contiene este documento.