00001
00014 #include "libfaudes.h"
00015 #include "tp_include.h"
00016
00017
00018
00019 using namespace faudes;
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00039
00041
00042 int main() {
00043
00044
00045
00046
00047
00048
00049
00050
00051 TimeConstraint tc1("data/timeconstraint.txt");
00052
00053
00054
00055 TimeConstraint tc2;
00056
00057
00058
00059 std::cout << "######################################\n";
00060 std::cout << "# a timeconstraint \n";
00061 tc1.DWrite();
00062 std::cout << "######################################\n";
00063
00064
00065
00066 tc1.Write("tmp_timeconstraint.txt");
00067
00068
00069
00070
00071 ClockSet clocks1=tc1.ActiveClocks();
00072
00073
00074
00075 std::cout << "######################################\n";
00076 std::cout << "# inspection ... \n";
00077 ClockSet::Iterator cit;
00078 for(cit = clocks1.Begin(); cit != clocks1.End(); cit++) {
00079 std::cout << "clock: " << clocks1.SymbolicName(*cit) << "\n";
00080 TimeConstraint::Iterator tit;
00081 for(tit = tc1.Begin(*cit); tit != tc1.End(*cit); tit++) {
00082 std::cout << "elem constraint: " << tc1.EStr(*tit) << "\n";
00083 }
00084 TimeInterval tint=tc1.Interval(*cit);
00085 std::cout << "time interval: " << tint.Str() << "\n";
00086 }
00087 std::cout << "######################################\n";
00088
00089
00090
00091
00092
00093
00094
00095
00096
00097 tc1.Insert("clockC", ElemConstraint::LessThan, 125);
00098 tc1.Insert("clockC", ElemConstraint::GreaterThan, 10);
00099 tc1.Insert("clockC", ElemConstraint::GreaterEqual, 10);
00100 tc1.Insert("clockB", ElemConstraint::GreaterThan, 110);
00101 tc1.Insert("clockB", ElemConstraint::GreaterThan, 110);
00102 tc1.Insert("clockB", ElemConstraint::LessEqual, 200);
00103 tc1.Insert("clockB", ElemConstraint::LessEqual, 210);
00104 tc1.Insert("clockB", ElemConstraint::LessThan, 220);
00105
00106
00107
00108 std::cout << "######################################\n";
00109 std::cout << "# after various insertions \n";
00110 tc1.DWrite();
00111 std::cout << "######################################\n";
00112
00113
00114
00115 tc1.Erase("clockB", ElemConstraint::LessEqual, 200);
00116
00117
00118
00119 std::cout << "######################################\n";
00120 std::cout << "# after erase \n";
00121 tc1.DWrite();
00122 std::cout << "######################################\n";
00123
00124
00125
00126 TimeInterval tint;
00127 tint.LB(150);
00128 tint.UB(300);
00129 tint.UBincl(true);
00130 tc2.Interval("clockB",tint);
00131 tc2.Interval("clockD",tint);
00132
00133
00134
00135 std::cout << "######################################\n";
00136 std::cout << "# another constraint \n";
00137 tc2.DWrite();
00138 std::cout << "######################################\n";
00139
00140
00141
00142
00143 tc1.Insert(tc2);
00144
00145
00146
00147 tc1.Minimize();
00148
00149
00150
00151 std::cout << "######################################\n";
00152 std::cout << "# minimal version \n";
00153 tc1.DWrite();
00154 std::cout << "######################################\n";
00155
00156
00157 return 0;
00158 }
00159
00160
00161