module_comp_linuxnqc.h

00001 
00002 /*
00003 
00004         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
00005         ~ m o d u l e _ c o m p _ l i n u x n q c . h ~
00006         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
00007 
00008 Klasse von Modulen zur Kompilierung von NQC-Roboterprogrammen, unter Verwendung
00009 des Linux-NQC-Kompilierers. (http://bricxcc.sourceforge.net/nqc/)
00010 
00011 Alle Konstrukte tragen lateinische Bezeichnungen. Latein ist neben Englisch
00012 womöglich die einzige Weltsprache, die sich korrekt mit den ersten 128 ASCII-
00013 Zeichen schreiben läßt.
00014 
00015 Dieser Quelltext ist ursprünglich Teil des Programmes Eukalyptos, welches zur
00016 Netzwerkfernsteuerung von Lego-RCX-2-Robotern dient und von Lutz Büch, Bastian
00017 Rieck und Carlos Franke im Rahmen eines Praktikums am Interdisziplinären 
00018 Zentrum für Wissenschaftliches Rechnen (IWR) der Universität Heidelberg 
00019 geschaffen wurde.
00020 
00021 */
00022 
00023 
00024 #ifndef MODULE_COMP_LINUXNQCH
00025 #define MODULE_COMP_LINUXNQCH
00026 
00027 
00028 #include "module_comp.h"
00029 #include "module_linuxnqc.h"
00030 #include "module_conf.h"
00031 #include "sim_language.h"
00032 #include <string>
00033 #include <fstream>
00034 #include <sstream>
00035 #include <stdlib.h>
00036 #include <unistd.h>
00037 #include <math.h>
00038 
00039 
00040 using namespace std;
00041 
00042 
00043 
00052 //classis definita
00053 struct module_comp_linuxnqc :
00054   public module_comp, public module_linuxnqc
00055 {
00056   protected:
00057    //via confunditoris:
00058    string via_nqc; 
00059    //via fundaminis rudis:
00060    string via_fun_r; 
00061    //via fundaminis confusi:
00062    string via_fun_c; 
00063 
00064    string machina; //e. g. "-Trcx2"
00065    string turris; //e. g. "-Susb"
00066    
00067    fstream flumen;
00068 
00069    int status;
00070 
00071    virtual int mod_load();
00072    virtual int mod_unload();
00073    virtual int handle_msg(const char*);
00074 
00077    //transformat litteras fontanas datorum lectoris (module*) in NQC. 
00078    //ista functio impleta non est.
00079    virtual bool transscribe_data(char*);
00080    bool transscribe_data(string);
00081 
00082   public:
00084    module_comp_linuxnqc();
00085    module_comp_linuxnqc(string,string,string);
00086    module_comp_linuxnqc(char*,char*,char*);
00087 
00089    //dat via fundaminis confusi:
00090    virtual char* da_via_fun_c()
00091     { return (char*)(via_fun_c.c_str()); }
00092 
00093    virtual int get_status();
00094    virtual char* get_name();
00095 
00097    //confundet ordinem:
00098    virtual bool confunde(string);
00099    virtual bool confunde(char*);
00100 
00102    //confundet ordinem principalis (,,fundamen") in loco ,,da_via_fun_c" rescripto:
00103    virtual bool confunde_fundamen(float&);
00104    virtual bool confunde_fundamen();
00105 };
00106 
00107 
00108 
00109 #endif

Generated on Sun Sep 3 23:47:22 2006 by  doxygen 1.4.7