Síntesis rápida
Necesita crear dos ficheros en el directorio /home/NOMBREDEUSUARIO/.kde/share/apps/okteta/structures/NOMBRE_X
- Un NOMBRE_X.osd donde guardará toda la información de la estructura
- Un NOMBRE_X.desktop para la presentación visual (No es tan importante).
(NOMBRE_X Es cualquier nombre que usted le quiera dar)
Ejemplo de como puede ser la estructura del fichero NOMBRE_X.osd:
<?xml version="1.0" encoding="UTF-8"?>
<data>
<struct name="NombreDeLaEstructura">
<primitive name="UnChar" type="Char"/>
<primitive name="UnEntero" type="Int32"/>
</struct>
</data>
La anterior es una estructura que tiene dos campos primitivos: un carácter y un entero, que en C/C++ equivaldría a algo así:
struct NombreDeLaEstructura{
char UnChar;
int UnEntero;
}
struct NombreDeLaEstructura{
char UnChar;
int UnEntero;
}
El fichero NOMBRE_X.desktop puede ser algo así:
[Desktop Entry]
Encoding=UTF-8
Icon=code-context
Type=Service
ServiceTypes=KPluginInfo
Name[es]=Prueba
X-KDE-PluginInfo-Author=Hector Oliveros
X-KDE-PluginInfo-Email=hector.oliveros.leon@gmail.com
X-KDE-PluginInfo-Name=Prueba
X-KDE-PluginInfo-Version=1.0
X-KDE-PluginInfo-Website=http://www.plugin.org/
X-KDE-PluginInfo-Category=structure
X-KDE-PluginInfo-License=LGPL
X-KDE-PluginInfo-EnabledByDefault=true
Luego lo guarda y ya puede agregar la estructura
Ejemplo:
Imaginemos que queremos analizar un fichero binario que contenga, internamente, varias de estas estructuras
struct BCP{ int idControl; int pid; pid_t ppid; int gradoDePrioridad; int consumoAcumuladoDeCPU; int rafagasDeEjecucion[20];
struct Bloqueo{ int idControlProceso; uint tiempoDeBloqueo; int idRecurso; } bloqueos[20];
int instanteDeLlegada; enum TipoDeProceso{ BATCH = 0, TIEMPO_REAL = 1, INTERACTIVOS = 2 } tipoDeProceso; };
En este caso el fichero .osd sería algo así:
<?xml version="1.0" encoding="UTF-8" ?> <data> <enumDef name="Tipo_De_Proceso" type="Int32"> <entry name="BATCH" value="0" /> <entry name="TIEMPO_REAL" value="1" /> <entry name="INTERACTIVOS" value="2" /> </enumDef> <struct name="BCP"> <primitive name="IDControl" type="Int32" /> <primitive name="PID" type="Int32" /> <primitive name="PPID" type="Int32" /> <primitive name="GradoDePrioridad" type="Int32" /> <primitive name="ConsumoAcumuladoDeCpu" type="Int32" /> <array name="RafagasDeEjecucion" length="20"> <primitive type="Int32" /> </array> <array name="Bloqueos" length="20"> <struct name="Bloqueo"> <primitive name="IDControl" type="Int32" /> <primitive name="TiempodeBloqueo" type="Int32" /> <primitive name="IDRecurso" type="Int32" /> </struct> </array> <primitive name="InstanteDeLlegada" type="Int32" /> <enum name="TipoDeProceso" enum="Tipo_De_Proceso" type="Int32" /> </struct> </data>
Aquí puede descargar este ejemplo completo.
Solo debe pegarlo en la ruta:
/home/NOMBREDEUSUARIO/.kde/share/apps/okteta/structures/
Este es otro ejemplo funcional.
Links recomendados:
http://docs.kde.org/stable/es/kdesdk/okteta/tools-structures.html
http://docs.kde.org/stable/es/kdesdk/okteta/okteta.pdf
Links recomendados:
http://docs.kde.org/stable/es/kdesdk/okteta/tools-structures.html
http://docs.kde.org/stable/es/kdesdk/okteta/okteta.pdf
Wow excellent post..! thanks for sharing
ResponderEliminarRouter Login not working
routerlogin admin page
Routerlogin
Routerlogin Net