00001 #include <iostream>
00002 #include <assert.h>
00003 #include <stdlib.h>
00004 #include <stdio.h>
00005 #include <string.h>
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023 #include "EEdsm2.h"
00024
00025
00026
00027
00028 EEdsm2::EEdsm2(){
00029 mYear=999;
00030 }
00031
00032
00033
00034 EEdsm2::~EEdsm2() { }
00035
00036
00037
00038 void
00039 EEdsm2::clear() {
00040 assert(mYear>2000);
00041 memset(data,0,sizeof(data));
00042 }
00043
00044
00045
00046 void
00047 EEdsm2::setWord(int ch, ushort val){
00048 assert(ch>=0 && ch<nc);
00049 data[ch]=val;
00050 }
00051
00052
00053
00054 ushort
00055 EEdsm2::getJPthr(int jp) const {
00056 assert(jp>=0 && jp<6);
00057 assert(mYear<2006);
00058 int ch= jp/3;
00059 int i=jp%3;
00060 assert(ch>=0 && ch<nc);
00061 ushort val=data[ch]>>8;
00062 val=val>>(2*i);
00063 val=val & 3;
00064 return val;
00065 }
00066
00067
00068
00069 ushort
00070 EEdsm2::get3JPHTthr(int i3p) const {
00071 int ch=i3p;
00072 assert(ch>=0 && ch<nc);
00073 ushort val=data[ch]>>14;
00074 val=val & 3;
00075 return val;
00076 }
00077
00078
00079
00080 ushort
00081 EEdsm2::getHTTPthr(int i3p) const {
00082 int ch=i3p;
00083 assert(ch>=0 && ch<nc);
00084 assert(mYear>=2006);
00085 ushort val=data[ch] >>7;
00086 return val&1;
00087 }
00088
00089
00090
00091 ushort
00092 EEdsm2::getTPthr(int i3p) const {
00093 int ch=i3p;
00094 assert(ch>=0 && ch<nc);
00095 assert(mYear>=2006);
00096 ushort val=data[ch] >>9;
00097 return val&1;
00098 }
00099
00100
00101
00102 ushort
00103 EEdsm2::get3JPsum(int i3p) const {
00104
00105 int ch= i3p;
00106 assert(ch>=0 && ch<nc);
00107 ushort val=data[ch]&0xff;
00108 if(mYear>=2006) val=val &0x1f;
00109 return val;
00110 }
00111
00112
00113
00114
00115 void
00116 EEdsm2::print( int k) const {
00117 printf("EEdsm2:: INPUTS, year=%d \n",mYear);
00118 int i;
00119
00120 printf("\nch = ");
00121 for(i=nc-1;i>=0;i--) printf(" %4d ",i);
00122 printf("\nword = ");
00123 for(i=nc-1;i>=0;i--) printf(" x%4.4x ", data[i] );
00124 if(mYear>=2006) {
00125 printf("\nTPthr = ");
00126 for(i=nc-1;i>=0;i--) printf(" %4d ", getTPthr(i) );
00127 printf("\nHTTPthr = ");
00128 for(i=nc-1;i>=0;i--) printf(" %4d ", getHTTPthr(i) );
00129 }
00130 printf("\nJP_Falk =");
00131 for(i=njp-1;i>=0;i--) printf(" %4d ",i);
00132 printf("\nJP_Steve=");
00133 for(i=njp-1;i>=0; i--) printf(" %4d ",(i+2)%6+1);
00134
00135 if(mYear<2006) {
00136 printf("\nJPthr =");
00137 for(i=njp-1;i>=0;i--) printf(" %4d ", getJPthr(i));
00138 }
00139 printf("\n");
00140
00141 const char *txt="5bit";
00142 if(mYear<2006)txt="8bit";
00143
00144 for(i=0;i<2;i++){
00145 printf("3x.9 JP_Falk(%d+%d+%d) energy/dec: %s=%d HTthr=%d\n",3*i,3*i+1,3*i+2,txt,get3JPsum(i), get3JPHTthr(i));
00146 }
00147 }
00148
00149
00150
00151
00152
00153
00154
00155
00156
00157
00158
00159
00160
00161
00162
00163
00164
00165
00166
00167
00168
00169
00170
00171
00172
00173