package uk.co.mmscomputing.device.capi.plc;
import uk.co.mmscomputing.device.capi.*;
import uk.co.mmscomputing.device.capi.q931.*;
public class InfoInd extends CapiIndMsg{
protected int no=0;
protected String info="";
public InfoInd(Rider r){
super(r);
no=r.readWord();
if((no&0x00008000)!=0){
info=Q931Constants.MessageTypeStrs[no&0x00FF];
}else if((no&0x00004000)!=0){
info="[Suppl.Info]";
/*
switch(no&0x000000FF){
case 0x00:
info+="Total charges in charge units = %li\n",
CAPIMsg->info.info_ind.structs[1];
break;
case 0x01:
printf("Total charges in national currency");
printf("\tCharges = %li\n",
CAPIMsg->info.info_ind.structs[1]);
printf("\tExtended Charges = %li\n",
CAPIMsg->info.info_ind.structs[5]);
printf("\tMultiplier = %i",
CAPIMsg->info.info_ind.structs[9]);
//also decode currency sign, ref. ETS 300 182-1, table 2
break;
default:
printf("INFO = %x:",CAPIMsg->info.info_ind.Number);
for(i=0;i<CAPIMsg->info.info_ind.structs[0];i++)
printf(" %02x",CAPIMsg->info.info_ind.structs[1+i]);
printf("\n");
break;
}
*/
}else if((no&0x0000c000)==0){ //ETSI 300 102, table 4.3
info=Q931Factory.create(no,r).toString();
}else{
info="ERROR: Unmatched 0x"+Integer.toHexString(no);
}
// System.err.println(toString());
}
/*
public String toString(){
String s=super.toString();
s+="info = "+info+"\n";
return s;
}
*/
public String toString(){return info;}
}