Advertisement
Guest User

Untitled

a guest
Oct 1st, 2014
520
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 83.20 KB | None | 0 0
  1. package ua.com.hardware.billacceptor;
  2.  
  3. import java.io.File;
  4. import java.util.Timer;
  5. import java.util.TimerTask;
  6.  
  7. import javax.xml.bind.annotation.XmlAccessType;
  8. import javax.xml.bind.annotation.XmlAccessorType;
  9. import javax.xml.bind.annotation.XmlElement;
  10. import javax.xml.bind.annotation.XmlRootElement;
  11.  
  12. import com.meiglobal.ebds.api.pub.State;
  13. import jssc.SerialPortList;
  14. import myFiler.MyFiler;
  15. import ua.com.hardware.billacceptor.implementation.CashFlow;
  16. import ua.com.hardware.billacceptor.implementation.CommandsCashCodeID003;
  17. import ua.com.hardware.listeners.ComPortWithListener;
  18. import ua.com.hardware.listeners.Listener;
  19. import ua.com.incassation.Incassation;
  20.  
  21. @XmlRootElement (name = "bv")
  22. @XmlAccessorType( XmlAccessType.FIELD )
  23.  
  24. /**
  25.  * Created by PROGRAMMER II on 14.07.2014.
  26.  */
  27. public class BillAcceptorWork implements Listener {
  28.     @XmlElement  (name="comPortName")
  29.     private String portCOMname="";
  30.  
  31.     @XmlElement (name="protocol")
  32.     private String protocol="";
  33.  
  34.     @XmlElement (name="manufacturer")
  35.     private String manufacturer="";
  36.     public int sum = 0;
  37.     private int baudRate = 9600;
  38.     private int baudRate1 = 19200;
  39.     private int dataBits = 8;
  40.     private int stopBits = 1;
  41.     private int parity = 0;
  42.  
  43.     private static ComPortWithListener comPortWithListener;
  44.  
  45.     private Timer timer2 = null;
  46.     private TimerTask task = null;
  47.  
  48.     private boolean accepting = false;
  49.     private boolean stacking = false;
  50.  
  51.     private boolean valid = false;
  52.     private boolean escrow=false;
  53.     private boolean needReject=false;
  54.  
  55.     private Incassation loadedJAXB=new Incassation();
  56.  
  57.     public static String fileIncashName = MyFiler.getCurrentDirectory()+ File.separator+"logs"+File.separator
  58.             +"incashment"+File.separator+"incashment.xml";
  59.  
  60.  
  61.  
  62.     public void setPortCOMname(String portCOMname) {
  63.         this.portCOMname = portCOMname;
  64.     }
  65.     public String getPortCOMname(){
  66.         return portCOMname;
  67.     }
  68.  
  69.     @Override
  70.     public String toString(){
  71.         return portCOMname;
  72.     }
  73.  
  74.  
  75.     public String getProtocol() {
  76.         return protocol;
  77.     }
  78.     public void setProtocol(String protocol) {
  79.         this.protocol = protocol;
  80.     }
  81.  
  82.     public void setManufacturer(String manufacturer) {
  83.         this.manufacturer = manufacturer;
  84.     }
  85.  
  86.     public String getManufacturer() {
  87.  
  88.         return manufacturer;
  89.     }
  90.  
  91.     public static final String  CCNETProtokol="CCNET";
  92.  
  93.     //***************Init commands here*  CCNET**************
  94.  
  95.     //private int[] buffer1 = { 0x02, 0x03, 0x06, 0x30, 0x41, 0xB3 };
  96.     private int[] cmdReset=                 {0x02,0x03,0x06,0x30,0x41,0xB3}; //reset cmd with no data-dont operate
  97.     private int[] cmdIdentification=       {0x02,0x03,0x06,0x37,0xFE,0xC7};   //identif cmd
  98.     private int[] cmdInit2=                   {0x02,0x03,0x06,0x00, 0xC2, 0x82};//Init2
  99.     private int[] cmdGetBillTable=        {0x02,0x03,0x06,0x41, 0x4F, 0xD1};//Get bill table
  100.     private int[] cmdInit5=                   {0x02,0x03,0x06,0x09, 0x32, 0x00, 0x00, 0x00, 0x26, 0x1F};//Init3
  101.     private int[] cmdEnableBillTypes = {0x02,0x03,0x0C,0x34,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFE, 0xF7};//0xB5,0xC1};
  102.     private int[] cmdDisableBillTypes ={0x02,0x03,0x0C,0x34,0x00,0x00,0x00,0x00,0x00,0x00,0x17,0x0C};
  103.     private static int[] cmdPole=             {0x02,0x03,0x06,0x33,0xDA,0x81};//<- 02, 03, 06, 13, D8, A0
  104.     private int[] cmdACK=              {0x02, 0x03, 0x06, 0x00, 0xC2, 0x82};//<- 02, 03, 06, 13, D8, A0
  105.     private int[] cmdReturn ={ 0x02, 0x03, 0x06, 0x36, 0x77, 0xD6 };//Return
  106.     private int[] cmdHold=                  {0x02,0x03,0x06,0x38,0x09,0x3F};//
  107.     private int[] cmdStack=                  {0x02,0x03,0x06,0x35,0xEC,0xE4};//
  108.     //  private int[] cmdStatistic =            {0x02, 0x03, 0x06, 0x60, 0xC4, 0xE1};
  109. //  private int[] cmdStack={0x02,0x03,0x06,0x35,0xEC,0xE4};
  110. //  private int[] cmdACKPole={0x02,0x03,0x06,0x00,0xC2};
  111. //  private int[] cmdACK={0x02, 0x03, 0x06, 0x00, 0xC2, 0x82};
  112. //  private int[] cmdInit4={0x02, 0x03, 0x06, 0x41, 0x4F, 0xD1};//Init4
  113.     private int[] cmdRequestEscrow={ 0x02, 0x03, 0x06, 0x16, 0x75, 0xF7 };//Return
  114.     //  private int[] statusIdling={0x02, 0x03, 0x06, 0x14, 0x67, 0xD4};
  115. //  private int[] statusUnitDisable={0x02, 0x03, 0x06, 0x19, 0x82, 0x0F};
  116. //  private int[] statusStackerRemoved={0x02, 0x03, 0x06, 0x42, 0xD4, 0xE3};
  117.     private int[][] allStatuses = { { 0x02, 0x03, 0x06, 0x14, 0x67, 0xD4 },//Idling
  118.             { 0x02, 0x03, 0x06, 0x19, 0x82, 0x0F },//UnitDisable
  119.             { 0x02, 0x03, 0x06, 0x42, 0xD4, 0xE3 },//StackerRemoved
  120.             { 0x02, 0x03, 0x06, 0x13, 0xD8, 0xA0 },//Initialize
  121.             { 0x02, 0x03, 0x06, 0x0, 0xC2, 0x82 },//Reset
  122.             { 0x02, 0x03, 0x06, 0x15, 0xEE, 0xC5 },//Accepting
  123.             { 0x02, 0x03, 0x06, 0x17, 0xFC, 0xE6 },//Stacking
  124.             { 0x02, 0x03, 0x06, 0x00, 0xC2, 0x82 },//,//ACK
  125.             { 0x02, 0x03, 0x06, 0x18, 0x0B, 0x1E },//Returning
  126.             { 0x02, 0x03, 0x06, 0x41, 0x4F, 0xD1 },//,//Casette full
  127.             { 0x02, 0x03, 0x06, 0x42, 0xD4, 0xE3 },//Drop cassete out of position
  128.             { 0x02, 0x03, 0x06, 0x43, 0x5D, 0xF2 }, //Validator jammed
  129.             { 0x02, 0x03, 0x06, 0x44, 0xE2, 0x86 } //Drop cassette jammed
  130.  
  131. //                                             { 0x02, 0x03, 0x07, 0x81, 0x1, 0xDD, 0x3B },//BillStacked_2hrn
  132. //                                             { 0x02, 0x03, 0x07, 0x81, 0x02, 0x46,0x09 }//BillStacked_5hrn
  133.     };
  134.     private static String[] statusNames = { "Idling", "UnitDisable", "StackerRemoved",
  135.             "Initialize", "Reset", "Accepting", "Stacking", "ACK", "Returning",
  136.             "Casette full","Drop cassete out of position","Validator jammed",
  137.             "Drop cassette jammed"
  138. //                                                  "BillStacked_2hrn", "BillStacked_5hrn"
  139.     };
  140.  
  141.     public static String status="";
  142.     public static final String  ID003Protokol="ID003";
  143.  
  144.     //########################### ID003 ########################################################################
  145.     private static int[][] command={
  146.             {0xFC, 0x05, 0x11, 0x27, 0x56},//"StatusRequest"
  147.             {0xFC, 0x05, 0x40, 0x2B, 0x15},//"Reset"
  148.             {0xFC, 0x05, 0x45, 0x86, 0x42 },//"Wait"
  149.             {0xFC, 0x05, 0x88, 0x6F, 0x5F},//"Model"
  150.             {0xFC, 0x05, 0x89, 0xE6, 0x4E},//"BootVersion"
  151.             {0xFC, 0x05, 0x8A, 0x7D, 0x7C},//"CurrencyAssign"
  152.             {0xFC, 0x07, 0xC0, 0x00, 0x00, 0x2D, 0xB5},//Enable
  153.             {0xFC, 0x07, 0xC1, 0x00, 0x00, 0xF1, 0xEF},//Security
  154.             {0xFC, 0x06, 0xC2, 0x00, 0xDC, 0xCF},   //setmode
  155.             {0xFC, 0x06, 0xC3, 0x00, 0x04, 0xD6},//not Inhibit(acceptor)
  156.             {0xFC, 0x06, 0xC4, 0x00, 0x0C, 0x9B},//Direction Not inhibit
  157.             {0xFC, 0x05, 0x41, 0xA2, 0x4},  //Stack1
  158.             {0xFC, 0x06, 0x83, 0x00, 0x62, 0x90},//Inhibit(acceptor)
  159.             {0xFC, 0x07, 0x80, 0x0, 0xFB, 0x7, 0xFA},//Enable/disable
  160.             {0xFC, 0x07, 0xC0, 0x00, 0x16, 0x9A, 0xC0},//disable
  161.             {0xFC, 0x06, 0xC3, 0x01, 0x8D, 0xC7},//Inhibit(acceptor)
  162.             {0xFC, 0x07, 0xC4, 0x00,0x01, 0xC5, 0xC7},//Direction inhibit
  163.             {0xFC, 0x07, 0xC5, 0x00, 0x00, 0x90, 0x8C},//set function
  164.             {0xFC, 0x07, 0x80, 0x00, 0x00, 0x5B, 0xB3},
  165.             //19---------------------------------------------------------------
  166.             {0xFC, 0x05, 0x40,0x2B, 0x15},//reset
  167.             {0xFC, 0x07, 0xC0, 0x00, 0x00,0x2D,0xB5},//set disable  0
  168.             {0xFC, 0x07, 0xC1, 0x00, 0x00,0xF1,0xEF},//set security
  169.             {0xFC, 0x06, 0xC3,0x00, 0x04, 0xD6},//inhibit
  170.             {0xFC, 0x06, 0xC4,0x00, 0x0C, 0x9B},//set direction
  171.             {0xFC, 0x07, 0xC5,0x00, 0x00, 0x90, 0x8C},//set function
  172.             {0xFC, 0x06, 0xC2,0x00, 0xDC, 0xCF},//set function
  173.             //26------------
  174.             {0xFC, 0x05, 0x41,0xA2, 0x04},//stack1
  175.             {0xFC, 0x05, 0x50,0xAA, 0x5},//ASC
  176.             {0xFC, 0x05, 0x43, 0xB0, 0x27}
  177.     };
  178.     private String [] commandNames={"StatusRequest", "Reset", "Wait", "Model", "BootVersion", "CurrencyAssign", "Enable/disable", "Inhibit(acceptor)", "Direction",
  179.             "Stack1", "Inhibit(acceptor)2", "Enable/disable2", "disable", "UnInhibit"};
  180.  
  181.     private int BVU_IDLING      =   0x11;
  182.     private int BVU_ACCEPTING   =   0x12;
  183.     private int BVU_ESCROW      =   0x13;
  184.     private int  BVU_STACKING   =   0x14;
  185.     private int  BVU_VEND_VALID =   0x15;
  186.     private int  BVU_STACKED    =   0x16;
  187.     private int  BVU_REJECTING  =   0x17;
  188.     private int  BVU_RETURNING  =   0x18;
  189.     private int  BVU_HOLDING    =       0x19;
  190.     private int  BVU_DISABLED   =   0x1A;
  191.     private int  BVU_INITIALIZING=  0x1B;
  192.     private int  BVU_ACK        =       0x50;
  193.     private int  BVU_VERSION    =       0x88;
  194.     //POWER STATUS RESPONSE
  195.     public static int  BVU_POWERUP  =                   0x40;
  196.     private int  BVU_PWRUP_BILL_INACCEPTOR=     0x41;
  197.     private int  BVU_PWRUP_BILL_INSTACKER =     0x42;
  198.     //ERROR STATUS RESPONSE
  199.     private int BVU_STACKER_FULL    =       0x43;
  200.     private int BVU_STACKER_OPEN    =       0x44;
  201.     private int BVU_JAM_IN_ACCEPTOR =       0x45;
  202.     private int BVU_JAM_IN_STACKER  =       0x46;
  203.     private int BVU_PAUSED          =       0x47;
  204.     private int BVU_CHEATED         =       0x48;
  205.     private int BVU_FAILURE         =       0x49;
  206.     private int BVU_COMMUNICATION_ERROR =   0x4A;
  207.     private int BVU_INVALID_COMMAND =       0x4B;
  208.     // COMMUNICATION ERRORS
  209.     private int DCB_ERROR           =     0x01;
  210.     private int PORT_ALREADY_OPENED =     0x02;
  211.     private int PORT_SETTINGS_FAILED =     0x03;
  212.     private int INVALID_PORT        =     0x04;
  213.     private int ERROR_CE_BREAK      =     0x05;
  214.     private int ERROR_CE_FRAME      =     0x06;
  215.     private int ERROR_CE_IOE        =     0x07;
  216.     private int ERROR_CE_MODE       =     0x08;
  217.     private int ERROR_CE_OVERRUN    =     0x09;
  218.     private int ERROR_CE_RXOVER     =     0x0A;
  219.     private int ERROR_CE_RXPARITY   =     0x0B;
  220.     private int ERROR_CE_TXFULL     =     0x0C;
  221.     private int RXTIME_OUT          =     0x0D;
  222.     private int CRC_ERROR           =     0x0E;
  223.  
  224.  
  225.     private int Enable=0x11;
  226.     private int Accepting=0x12;
  227.     private int Escrow=0x13;
  228.     private int Disable=0x1A;
  229.     private int Initialize=0x1B;
  230.     private int Ack=0x50;
  231.     private int InvalidCommand=0x4B;
  232.     private int JamInAcceptor=0x45;
  233.     private int JamInStacker=0x46;
  234.     private int StackerFull=0x43;
  235.  
  236.     private int[]response={ Enable,Accepting, Initialize, Ack,Disable,InvalidCommand,
  237.             JamInAcceptor,JamInStacker, Escrow, StackerFull
  238.     };
  239.     public int[][] allResponses = {
  240.             { 0xFC, 0x05, BVU_IDLING,  0x27, 0x56},//Idling
  241.             { 0xFC, 0x05, BVU_DISABLED, 0xF4, 0xE8 },//UnitDisable
  242.             { 0xFC, 0x05, BVU_ACCEPTING,0xBC, 0x64 },//Accepting
  243.             { 0xFC, 0x05, BVU_INITIALIZING, 0x7D, 0xF9 },//Initialize
  244.             { 0xFC, 0x05, BVU_ACK, 0xAA, 0x5 },//,//ACK//Reset
  245.             { 0xFC, 0x05, BVU_INVALID_COMMAND, 0xF8, 0xAB },
  246.             { 0xFC, 0x05, BVU_JAM_IN_ACCEPTOR, 0x86, 0x42 },
  247.             { 0xFC, 0x05, BVU_JAM_IN_STACKER, 0x1D, 0x70 },
  248.             { 0xFC, 0x05, BVU_COMMUNICATION_ERROR, 0x71, 0xBA },
  249.             { 0xFC, 0x05, BVU_STACKER_FULL, 0xB0, 0x27 },
  250.             { 0xFC, 0x05, BVU_STACKING, 0xA, 0x18 },//Stacking
  251.             { 0xFC, 0x05, BVU_POWERUP, 0x2B, 0x15}
  252. //                                        StackerRemoved
  253.  
  254.     };
  255.  
  256.     public static String[] statusNamesFromResponse = { "BVIDLING", "BVDISABLED", "BVACCEPTING",
  257.             "BVINITIALIZING", "BVACK", "BVINVALID_COMMAND", "BVJAM_IN_ACCEPTOR", "BVJAM_IN_STACKER",
  258.             "BVCOMMUNICATION_ERROR", "BVSTACKER_FULL", "BVSTACKING", "BVPOWERUP"
  259.     };
  260.     //###############################################################################################
  261.  
  262.     public static final String  CashFlowProtokol="CashFlow";
  263.     private static CashFlow cashflow;
  264.     //###############################################################################################
  265.     public String CashCodeManufacturer="CASHCODE";
  266.     public String JCMManufacturer="JCM";
  267.  
  268.     public static Double maxSumma=0.0;
  269.     public static Double totalAmount=0.0;
  270.     public static Boolean maxReplenishment=false;
  271.  
  272.  
  273.  
  274.     public static void setMaxReplenishment(Boolean maxReplenishment) {
  275.         BillAcceptorWork.maxReplenishment = maxReplenishment;
  276.     }
  277.  
  278.     public static Boolean getMaxReplenishment() {
  279.  
  280.         return maxReplenishment;
  281.     }
  282.  
  283.     public static Double getTotalAmount() {
  284.         return totalAmount;
  285.     }
  286.  
  287.     public static void setTotalAmount(Double totalAmount) {
  288.         BillAcceptorWork.totalAmount = totalAmount;
  289.     }
  290.  
  291.     public static Double getMaxSumma() {
  292.         return maxSumma;
  293.     }
  294.  
  295.     public static void setMaxSumma(Double maxSumma) {
  296.         BillAcceptorWork.maxSumma = maxSumma;
  297.     }
  298.  
  299.     public static String[] getPortNames() {
  300.         String[] portNames = SerialPortList.getPortNames();
  301.         for (int i = 0; i < portNames.length; i++) {
  302.             System.out.println(portNames[i] + " i= " + i);
  303.         }
  304.         return portNames;
  305.     }
  306.  
  307.     public static int getCrc16(int[] data){
  308.         int crc = 0;
  309.  
  310.         for (int i = 0; i < data.length; i++) {
  311.             crc ^= data[i] & 0xFF;
  312.             for (int j = 0; j < 8; j++) {
  313.                 if ((crc & 0x0001) != 0) {
  314.                     crc = 0x8408 ^ crc >>> 1;
  315.                 } else {
  316.                     crc >>>= 1;
  317.                 }
  318.             }
  319.         }
  320.         return crc;
  321.     }
  322.     public static String getHexStrCRC16(int[] data){
  323.         return Integer.toHexString(getCrc16(data)).toUpperCase();
  324.     }
  325.     public static String getHexStrCRC16H(int[] data){
  326.         String digits=Integer.toHexString(getCrc16(data)).toUpperCase();
  327.         return digits.substring(2);
  328.     }
  329.     public static String getHexStrCRC16L(int[] data){
  330.         String digits=Integer.toHexString(getCrc16(data)).toUpperCase();
  331.         return digits.substring(0,2);
  332.     }
  333.     //$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
  334.     public static void main (String[]args){
  335.  
  336. /*
  337.         int[] data={0xFC, 0x05, 0x40};
  338.         System.out.println("getCrc16(data)"+Integer.toHexString(getCrc16(data)).toUpperCase());
  339.         System.out.println(getHexStrCRC16H(data));
  340.         System.out.println(getHexStrCRC16L(data));
  341. */
  342.  
  343.  
  344.         BillAcceptorWork work =new BillAcceptorWork();
  345.         work.setPortCOMname("COM1");
  346.         work.setProtocol("ID003");
  347.  
  348.         work.turnON_CashCodeID003();
  349.         work.setBVEnableID003();
  350.         work.turnOFF();
  351.  
  352.         //work.closeCOM();
  353.  
  354.  
  355.     }
  356.     //$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
  357.     public void reject(){
  358.         maxReplenishment=true;
  359.         if(getProtocol().equals(ID003Protokol)){comPortWithListener.sendCommand(command[28], 5, 50);
  360.             setBVEnableID003();}
  361.         if(getProtocol().equals(CCNETProtokol)){
  362.             comPortWithListener.sendCommand(cmdPole, 6, 50);
  363.             comPortWithListener.sendCommand(cmdACK, 6, 50);
  364.             comPortWithListener.sendCommand(cmdReturn, 6, 50);
  365.             comPortWithListener.sendCommand(cmdPole, 6, 50);
  366. /*
  367.             for (int i=0;i<100 ;i++)//&& (DeviceState->StateCode == 0x18)
  368.             {
  369.  
  370.                 getCurrentStatus();
  371.  
  372.             }
  373. */
  374.             // setBVEnable();
  375.         }
  376.         System.out.println("reject!!!!!!!!!!!!");
  377.     }
  378.     private boolean initBV_CashFlow(){
  379.         comPortWithListener = new ComPortWithListener(portCOMname);
  380.         comPortWithListener.addListener(this);
  381.         if (comPortWithListener.initCOM(baudRate, dataBits, stopBits, 1,1, getProtocol())) {
  382.             if (comPortWithListener.statusCOM()) {
  383.                 comPortWithListener.closeCOM();
  384.             }else{
  385.                 System.out.println(portCOMname + " not opened, like error");
  386.                 return false;
  387.  
  388.             }
  389.         }else{
  390.             System.out.println(portCOMname + " not opened, like error");
  391.             return false;
  392.  
  393.         }
  394.         cashflow=new CashFlow(this, portCOMname);
  395.         try {
  396.  
  397.             cashflow.turnON();
  398.  
  399.         }catch(Exception ex){
  400.             ex.printStackTrace();
  401.             System.out.println(portCOMname + " not opened, like error");
  402.             return false;
  403.  
  404.         }
  405.      return true;
  406.     }
  407.     private boolean initBV(){
  408.         comPortWithListener = new ComPortWithListener(portCOMname);
  409.         comPortWithListener.addListener(this);
  410.  
  411.         if (comPortWithListener.initCOM(baudRate, dataBits, stopBits, parity,1, getProtocol())) {
  412.             if (comPortWithListener.statusCOM()) {
  413.                 initCommandSet();
  414.             }
  415.             else {
  416.                 comPortWithListener.closeCOM();
  417.                 comPortWithListener.initCOM(baudRate, dataBits, stopBits, parity,1, getProtocol());
  418.                 initCommandSet();
  419.             }
  420.             return true;
  421.         }
  422.         else {
  423.             System.out.println(portCOMname + " not opened, like error");
  424.             return false;
  425.         }
  426.     }
  427.     public  boolean initCommandCashCodeID003Set() {
  428.         // if(getCurrentStatus().equals(billAcceptorWork.statusNamesFromResponse[11])) {
  429.         //comPortWithListener.sendCommand(command[0], 5, 1000);//getCommand("Reset")
  430.         //  comPortWithListener.sendCommand(getCommand("StatusRequest"), 5, 50);
  431.         //comPortWithListener.sendCommand(getCommand("VersionRequest"), 5, 100);
  432.         comPortWithListener.sendCommand(command[19], 5, 50);//
  433.  
  434.         comPortWithListener.sendCommand(command[0], 5, 50);
  435. /*
  436.         comPortWithListener.sendCommand(command[20], 7, 50);
  437.         comPortWithListener.sendCommand(command[21], 7, 50);
  438.         comPortWithListener.sendCommand(command[22], 6, 50);
  439.         comPortWithListener.sendCommand(command[23], 6, 50);
  440.         comPortWithListener.sendCommand(command[24], 7, 50);
  441.         comPortWithListener.sendCommand(command[25], 6, 50);
  442. */
  443.  
  444.  
  445.  
  446.  
  447.  
  448.         boolean checkUnitDisable = true;
  449.         int counter = 0;
  450.  
  451.         while (checkUnitDisable) {
  452.             // comPortWithListener.sendCommand(getCommand("VersionRequest"), 5, 1000);
  453.             comPortWithListener.sendCommand(command[0], 5, 40);
  454.             //comPortWithListener.sendCommand(command[0], 5, 50);//getCommand("StatusRequest")
  455.             // comPortWithListener.sendCommand(cmdPole, 6, 250);
  456.             //System.out.println("getCurrentStatusID003()"+getCurrentStatusID003());
  457.             if (getCurrentStatusID003().equals(statusNamesFromResponse[3])) {
  458. /*
  459.             String status=getCurrentStatus();
  460.             if (status.equals(statusNamesFromResponse[3])) {
  461. */
  462.                 checkUnitDisable = false;
  463.             }
  464.             counter++;
  465.             System.out.println("while unit disable, counter = " + counter);
  466.             if (counter >= 20) {
  467.                 checkUnitDisable = false;
  468.                 System.out.println("Cannot move to unit enable status "+status);
  469.             }
  470.         }
  471.         return true;
  472.  
  473.  
  474.     }
  475.  
  476.     private boolean initBV_CashCodeID003(){
  477.         comPortWithListener = new ComPortWithListener(getPortCOMname());
  478.         comPortWithListener.addListener(this);
  479.  
  480.         if (comPortWithListener.initCOM(19200, dataBits, stopBits, 2,1, getProtocol())) {
  481.             if (comPortWithListener.statusCOM()) {
  482.                 CommandsCashCodeID003 id003=new   CommandsCashCodeID003 (this, comPortWithListener);
  483.                 id003.initCommandCashCodeID003Set();
  484. //                initCommandCashCodeID003Set();
  485.  
  486.             }
  487.             else {
  488.                 comPortWithListener.closeCOM();
  489.                 comPortWithListener.initCOM(baudRate1, dataBits, stopBits,2 ,1, getProtocol());
  490.                 if (comPortWithListener.statusCOM()) {
  491.                     CommandsCashCodeID003 id003=new   CommandsCashCodeID003 (this, comPortWithListener);
  492.                     id003.initCommandCashCodeID003Set();
  493.                 }
  494.             }
  495.             return true;
  496.         }
  497.         else {
  498.             System.out.println(portCOMname + " not opened, like error");
  499.             return false;
  500.         }
  501.  
  502.     }
  503.     private boolean initBV_ID003(){
  504.         //System.out.println("portCOMname"+getPortCOMname());
  505.         comPortWithListener = new ComPortWithListener(getPortCOMname());
  506.         comPortWithListener.addListener(this);
  507.  
  508.         if (comPortWithListener.initCOM(baudRate, dataBits, stopBits, 1,1, getProtocol())) {
  509.             if (comPortWithListener.statusCOM()) {
  510.                 initCommandID003Set();
  511.             }
  512.             else {
  513.                 comPortWithListener.closeCOM();
  514.                 comPortWithListener.initCOM(baudRate, dataBits, stopBits,1 ,1, getProtocol());
  515.                 initCommandID003Set();
  516.             }
  517.             return true;
  518.         }
  519.         else {
  520.             System.out.println(portCOMname + " not opened, like error");
  521.             return false;
  522.         }
  523.     }
  524.  
  525.     public void turnON(){
  526.         initBV();
  527.     }
  528.     public void turnON_ID003(){
  529.         initBV_ID003();
  530.     }
  531.     public void turnON_CashCodeID003(){
  532.         initBV_CashCodeID003();
  533.     }
  534.     public void turnON_CashFlow(){
  535.         initBV_CashFlow();
  536.     }
  537.  
  538.     public boolean closeCOM(){
  539.         System.out.println("closing " + portCOMname + " ...");
  540.         comPortWithListener.closeCOM();
  541.         return true;
  542.     }
  543.  
  544.     public void turnOFF(){
  545.         if(getProtocol().equals(CashFlowProtokol)) cashflow.turnOFF();
  546.         else  closeCOM();
  547.     }
  548.  
  549.     private String getBVStatus() {
  550.         comPortWithListener.sendCommand(cmdPole,6,150);
  551.         return status;
  552.     }
  553.     private String getBVStatusID003() {
  554.         comPortWithListener.sendCommand(command[0],5,150);
  555.         return status;
  556.     }
  557.  
  558. //  private int getBVBillValue() { //���������, ���� ������ � ���������?
  559. //      comPortWithListener.sendCommand(cmdInit2, 1, 50);
  560. //      comPortWithListener.sendCommand(cmdPole, 6, 200);
  561. //      return 0;
  562. //  }
  563.  
  564.     private boolean setBVEnable(){ //�������� ��������������
  565.         //��������� ��������� ���������
  566.         //���� UnitDisable -> ����� ��������
  567.         int counter=0;
  568.         if(getCurrentStatus()==statusNames[1]) {
  569.             comPortWithListener.sendCommand(cmdEnableBillTypes,0x0C,200);//
  570.             comPortWithListener.sendCommand(cmdPole,6,150);
  571.             return true;
  572.         }
  573.  
  574.         while (getCurrentStatus() != statusNames[1]) {
  575.             if (getCurrentStatus() == statusNames[1]) {
  576.                 comPortWithListener.sendCommand(cmdEnableBillTypes,0x0C,200);
  577.                 comPortWithListener.sendCommand(cmdPole,6,150);
  578.                 return true;
  579.             }
  580.             if(counter>=10){
  581.                 System.out.println("cannot set unit enable");
  582.                 System.out.println("system in "+getCurrentStatus());
  583.                 return false;
  584.             }
  585.             counter++;
  586.         }
  587.         return false;
  588.     }
  589.     private boolean setBVEnableID003(){ //�������� ��������������
  590.         //��������� ��������� ���������
  591.         //���� UnitDisable -> ����� ��������
  592.         int counter=0;
  593.         if(getCurrentStatusID003().equals(statusNamesFromResponse[1])) {
  594.             comPortWithListener.sendCommand(command[9],6,200);//
  595.             comPortWithListener.sendCommand(command[10],6,200);//
  596.             comPortWithListener.sendCommand(command[0],5,150);
  597.             return true;
  598.         }
  599.  
  600.         while (!getCurrentStatusID003().equals(statusNamesFromResponse[1]))  {
  601.             if (getCurrentStatusID003().equals(statusNamesFromResponse[1])) {
  602.                 comPortWithListener.sendCommand(command[9],6,200);
  603.                 comPortWithListener.sendCommand(command[10],6,200);//
  604.                 comPortWithListener.sendCommand(command[0],5,150);
  605.                 return true;
  606.             }
  607.             if(counter>=10){
  608.                 System.out.println("cannot set unit enable");
  609.                 System.out.println("system in "+getBVStatusID003());
  610.                 return false;
  611.             }
  612.             counter++;
  613.         }
  614.         return false;
  615.     }
  616.  
  617.     private boolean setBVDisable(){ //��������� ��������������
  618.         //��������� ��������� ���������
  619.         //���� Idling -> ����� ���������
  620.  
  621.         int counter=0;
  622.         if(getCurrentStatus()==statusNames[0]) {
  623.             comPortWithListener.sendCommand(cmdDisableBillTypes,0x0C,200);
  624.             comPortWithListener.sendCommand(cmdPole,6,100);
  625.             return true;
  626.         }
  627.  
  628.         while(getCurrentStatus()!=statusNames[0]){
  629.             //
  630.             if(getCurrentStatus()==statusNames[0]){
  631.                 comPortWithListener.sendCommand(cmdDisableBillTypes,0x0C,200);
  632.                 comPortWithListener.sendCommand(cmdPole,6,100);
  633.                 return true;
  634.             }
  635.             if(counter>=10){
  636.                 System.out.println("cannot set unit disable");
  637.                 System.out.println("system in "+getBVStatus());
  638.                 return false;
  639.             }
  640.             counter++;
  641.         }
  642.         return false;
  643.     }
  644.     private boolean setBVDisableID003(){ //��������� ��������������
  645.         //��������� ��������� ���������
  646.         //���� Idling -> ����� ���������
  647.  
  648.         int counter=0;
  649.         if(getCurrentStatusID003().equals(statusNamesFromResponse[0])) {
  650.             comPortWithListener.sendCommand(command[15],6,200);//cmdDisableBillTypes,6,200);//!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
  651.             comPortWithListener.sendCommand(command[0],5,100);
  652.             return true;
  653.         }
  654.  
  655.         while(!getCurrentStatusID003().equals(statusNamesFromResponse[0])){
  656.             //
  657.             if(getCurrentStatusID003().equals(statusNamesFromResponse[0])){
  658.                 comPortWithListener.sendCommand(command[15], 6,200);//cmdDisableBillTypes,6,200);
  659.                 comPortWithListener.sendCommand(command[0],5,100);
  660.  
  661.                 return true;
  662.             }
  663.             if(counter>=10){
  664.                 System.out.println("cannot set unit disable");
  665.                 System.out.println("system in "+getBVStatusID003());
  666.                 return false;
  667.             }
  668.             counter++;
  669.         }
  670.         return false;
  671.     }
  672.  
  673.     private boolean initCommandID003Set() {
  674.         //System.out.println("initCommandID003Set");
  675. /*
  676.         comPortWithListener.sendCommand(command[1], 5, 150);
  677.         comPortWithListener.sendCommand(command[0], 5, 150);
  678.         comPortWithListener.sendCommand(command[6], 7, 150);
  679.         comPortWithListener.sendCommand(command[0], 5, 150);
  680.         comPortWithListener.sendCommand(command[7], 7, 150);
  681.         comPortWithListener.sendCommand(command[0], 5, 150);
  682.         comPortWithListener.sendCommand(command[9], 6, 150);
  683. */
  684.         comPortWithListener.sendCommand(command[19], 5, 50);
  685.         comPortWithListener.sendCommand(command[0], 5, 50);
  686.         comPortWithListener.sendCommand(command[0], 5, 50);
  687.         comPortWithListener.sendCommand(command[0], 5, 50);
  688.         comPortWithListener.sendCommand(command[20], 7, 50);
  689.         comPortWithListener.sendCommand(command[21], 7, 50);
  690.         comPortWithListener.sendCommand(command[22], 6, 50);
  691.         comPortWithListener.sendCommand(command[23], 6, 50);
  692.         comPortWithListener.sendCommand(command[24], 7, 50);
  693.         comPortWithListener.sendCommand(command[25], 6, 50);
  694.         comPortWithListener.sendCommand(command[0], 5, 50);
  695.  
  696.  
  697.         boolean checkUnitDisable=true;
  698.         int counter=0;
  699.  
  700.         while (checkUnitDisable) {
  701.             comPortWithListener.sendCommand(command[0], 5, 50);
  702.             // comPortWithListener.sendCommand(cmdPole, 6, 250);
  703.             //System.out.println("getCurrentStatusID003()"+getCurrentStatusID003());
  704.             if (getCurrentStatusID003().equals(statusNamesFromResponse[3])) {
  705.                 checkUnitDisable = false;
  706.             }
  707.             counter++;
  708.             System.out.println("while unit disable, counter = " + counter);
  709.             if (counter >= 20) {
  710.                 checkUnitDisable = false;
  711.                 System.out.println("Cannot move to unit enable");
  712.             }
  713.         }
  714.         return true;
  715.     }
  716.  
  717.     private boolean initCommandSet() {
  718.         comPortWithListener.sendCommand(cmdReset,6,100);
  719.         comPortWithListener.sendCommand(cmdPole,6,150);
  720.         comPortWithListener.sendCommand(cmdInit2,1,50);
  721.         comPortWithListener.sendCommand(cmdGetBillTable,125,250);
  722.         comPortWithListener.sendCommand(cmdIdentification,39,250);
  723.         comPortWithListener.sendCommand(cmdGetBillTable,125,250);
  724.         comPortWithListener.sendCommand(cmdInit5,1,40);
  725.         comPortWithListener.sendCommand(cmdPole,6,150);
  726.  
  727.         boolean checkUnitDisable=true;
  728.         int counter=0;
  729.  
  730.         while (checkUnitDisable) {
  731.             comPortWithListener.sendCommand(cmdInit2, 1, 50);
  732.             comPortWithListener.sendCommand(cmdPole, 6, 250);
  733.             if (getCurrentStatus()==statusNames[1]) {
  734.                 checkUnitDisable = false;
  735.             }
  736.             counter++;
  737.             System.out.println("while unit disable, counter = " + counter);
  738.             if (counter >= 20) {
  739.                 checkUnitDisable = false;
  740.                 System.out.println("Cannot move to unit enable");
  741.             }
  742.         }
  743.         return true;
  744.     }
  745.     private int billTypeValidationCashFlow(int value){
  746.         System.out.println("Запись <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< в файл инкассации "+value);
  747.         loadedJAXB=loadedJAXB.load(fileIncashName);
  748.         loadedJAXB.setHRN1(loadedJAXB.getHRN1());
  749.         loadedJAXB.setHRN2(loadedJAXB.getHRN2());
  750.         loadedJAXB.setHRN5(loadedJAXB.getHRN5());
  751.         loadedJAXB.setHRN10(loadedJAXB.getHRN10());
  752.         loadedJAXB.setHRN20(loadedJAXB.getHRN20());
  753.         loadedJAXB.setHRN50(loadedJAXB.getHRN50());
  754.         loadedJAXB.setHRN100(loadedJAXB.getHRN100());
  755.         loadedJAXB.setHRN200(loadedJAXB.getHRN200());
  756.         loadedJAXB.setHRN500(loadedJAXB.getHRN500());
  757.  
  758.         if(value==1){
  759.             loadedJAXB.setHRN1((loadedJAXB.getHRN1())+1);
  760.             loadedJAXB.save(fileIncashName);
  761.  
  762.             return value;
  763.         }
  764.         if(value==2){
  765.             loadedJAXB.setHRN2((loadedJAXB.getHRN2())+1);
  766.             loadedJAXB.save(fileIncashName);
  767.             return value;
  768.         }
  769.         if(value==5){
  770.             loadedJAXB.setHRN5((loadedJAXB.getHRN5())+1);
  771.             loadedJAXB.save(fileIncashName);
  772.             return value;
  773.         }
  774.         if(value==10){
  775.             loadedJAXB.setHRN10((loadedJAXB.getHRN10())+1);
  776.             loadedJAXB.save(fileIncashName);
  777.             return value;
  778.         }
  779.         if(value==50){
  780.             loadedJAXB.setHRN50((loadedJAXB.getHRN50())+1);
  781.             loadedJAXB.save(fileIncashName);
  782.             return value;
  783.         }
  784.         if(value==20){
  785.             loadedJAXB.setHRN20((loadedJAXB.getHRN20())+1);
  786.             loadedJAXB.save(fileIncashName);
  787.             return value;
  788.         }
  789.         if(value==100){
  790.             loadedJAXB.setHRN100((loadedJAXB.getHRN100())+1);
  791.             loadedJAXB.save(fileIncashName);
  792.             return value;
  793.         }
  794.         if(value==200){
  795.             loadedJAXB.setHRN200((loadedJAXB.getHRN200())+1);
  796.             loadedJAXB.save(fileIncashName);
  797.             return value;
  798.         }
  799.         if(value==500){
  800.             loadedJAXB.setHRN500((loadedJAXB.getHRN500())+1);
  801.             loadedJAXB.save(fileIncashName);
  802.             return value;
  803.         }
  804.  
  805.     return 0;
  806.     }
  807.     private int billTypeValidation(int[] receivingBuffer){
  808.         int value=0;
  809.         //1 ���
  810.         if(receivingBuffer[4]==0x0){
  811.             if(receivingBuffer[3]==0x81){
  812.                 if(receivingBuffer[2]==0x7){
  813.                     if(receivingBuffer[1]==0x3){
  814.                         if(receivingBuffer[0]==0x2){
  815.                             value=1;
  816.                             //System.outrintln("������� ������ "+value+" ���.");//("1 hrn");
  817.                             System.out.println("Запись в файл инкассации 1");
  818.                             sum += 1;
  819.                             loadedJAXB=loadedJAXB.load(fileIncashName);
  820.                             loadedJAXB.setHRN1(loadedJAXB.getHRN1());
  821.                             loadedJAXB.setHRN2(loadedJAXB.getHRN2());
  822.                             loadedJAXB.setHRN5(loadedJAXB.getHRN5());
  823.                             loadedJAXB.setHRN10(loadedJAXB.getHRN10());
  824.                             loadedJAXB.setHRN20(loadedJAXB.getHRN20());
  825.                             loadedJAXB.setHRN50(loadedJAXB.getHRN50());
  826.                             loadedJAXB.setHRN100(loadedJAXB.getHRN100());
  827.                             loadedJAXB.setHRN200(loadedJAXB.getHRN200());
  828.                             loadedJAXB.setHRN500(loadedJAXB.getHRN500());
  829.                             loadedJAXB.setHRN1((loadedJAXB.getHRN1())+1);
  830.                             loadedJAXB.save(fileIncashName);
  831.  
  832.                             return value;
  833.                         }
  834.                     }
  835.                 }
  836.             }
  837.         }
  838.  
  839.         //2 ���
  840.         if(receivingBuffer[4]==0x1){
  841.             if(receivingBuffer[3]==0x81){
  842.                 if(receivingBuffer[2]==0x7){
  843.                     if(receivingBuffer[1]==0x3){
  844.                         if(receivingBuffer[0]==0x2){
  845.                             value=2;
  846.                             //System.out.println("������� ������ "+value+" ���.");//("2 hrn");
  847.                             System.out.println("Запись в файл инкассации 2");
  848.                             sum += 2;
  849.                             loadedJAXB=loadedJAXB.load(fileIncashName);
  850.                             loadedJAXB.setHRN1(loadedJAXB.getHRN1());
  851.                             loadedJAXB.setHRN2(loadedJAXB.getHRN2());
  852.                             loadedJAXB.setHRN5(loadedJAXB.getHRN5());
  853.                             loadedJAXB.setHRN10(loadedJAXB.getHRN10());
  854.                             loadedJAXB.setHRN20(loadedJAXB.getHRN20());
  855.                             loadedJAXB.setHRN50(loadedJAXB.getHRN50());
  856.                             loadedJAXB.setHRN100(loadedJAXB.getHRN100());
  857.                             loadedJAXB.setHRN200(loadedJAXB.getHRN200());
  858.                             loadedJAXB.setHRN500(loadedJAXB.getHRN500());
  859.  
  860.                             //System.out.println("������� ������ "+value+" ���.");//("2 hrn");
  861.                             loadedJAXB.setHRN2((loadedJAXB.getHRN2())+1);
  862.                             //System.out.println("������� ������ "+value+" ���.");//("2 hrn");
  863.                             loadedJAXB.save(fileIncashName);
  864.                             //System.out.println("������� ������ "+value+" ���.");//("2 hrn");
  865.  
  866.                             return value;
  867.                         }
  868.                     }
  869.                 }
  870.             }
  871.         }
  872.  
  873.         //5 ���
  874.         if(receivingBuffer[4]==0x2){
  875.             if(receivingBuffer[3]==0x81){
  876.                 if(receivingBuffer[2]==0x7){
  877.                     if(receivingBuffer[1]==0x3){
  878.                         if(receivingBuffer[0]==0x2){
  879.                         }
  880.                     }                           value=5;
  881.                     //System.out.println(value+" ���."+fileIncashName);//("5 hrn");
  882.                     try {
  883.  
  884.                         System.out.println("Запись в файл инкассации 5");
  885.                         sum += 5;
  886.                         loadedJAXB=loadedJAXB.load(fileIncashName);
  887.                         loadedJAXB.setHRN1(loadedJAXB.getHRN1());
  888.                         loadedJAXB.setHRN2(loadedJAXB.getHRN2());
  889.                         loadedJAXB.setHRN5(loadedJAXB.getHRN5());
  890.                         loadedJAXB.setHRN10(loadedJAXB.getHRN10());
  891.                         loadedJAXB.setHRN20(loadedJAXB.getHRN20());
  892.                         loadedJAXB.setHRN50(loadedJAXB.getHRN50());
  893.                         loadedJAXB.setHRN100(loadedJAXB.getHRN100());
  894.                         loadedJAXB.setHRN200(loadedJAXB.getHRN200());
  895.                         loadedJAXB.setHRN500(loadedJAXB.getHRN500());
  896.  
  897.                       //  System.out.println("������� ������ "+value+" ���.");//("5 hrn");
  898.                         loadedJAXB.setHRN5((loadedJAXB.getHRN5())+1);
  899.                     //    System.out.println("������� ������ "+value+" ���.");//("5 hrn");
  900.                         loadedJAXB.save(fileIncashName);
  901.                   //      System.out.println("������� ������ "+value+" ���.");//("5 hrn");
  902.                     }catch (Exception ex){
  903.                         System.err.println(ex.getMessage());
  904.                     }
  905.                     return value;
  906.  
  907.                 }
  908.             }
  909.         }
  910.  
  911.         //10 ���
  912.         if(receivingBuffer[4]==0x3){
  913.             if(receivingBuffer[3]==0x81){
  914.                 if(receivingBuffer[2]==0x7){
  915.                     if(receivingBuffer[1]==0x3){
  916.                         if(receivingBuffer[0]==0x2){
  917.                             value=10;
  918.                             //System.out.println("������� ������ "+value+" ���.");//("10 hrn");
  919.                             System.out.println("Запись в файл инкассации 10");
  920.                             sum += 10;
  921.                             loadedJAXB=loadedJAXB.load(fileIncashName);
  922.                             loadedJAXB.setHRN1(loadedJAXB.getHRN1());
  923.                             loadedJAXB.setHRN2(loadedJAXB.getHRN2());
  924.                             loadedJAXB.setHRN5(loadedJAXB.getHRN5());
  925.                             loadedJAXB.setHRN10(loadedJAXB.getHRN10());
  926.                             loadedJAXB.setHRN20(loadedJAXB.getHRN20());
  927.                             loadedJAXB.setHRN50(loadedJAXB.getHRN50());
  928.                             loadedJAXB.setHRN100(loadedJAXB.getHRN100());
  929.                             loadedJAXB.setHRN200(loadedJAXB.getHRN200());
  930.                             loadedJAXB.setHRN500(loadedJAXB.getHRN500());
  931.  
  932.                             loadedJAXB.setHRN10((loadedJAXB.getHRN10())+1);
  933.                             loadedJAXB.save(fileIncashName);
  934.  
  935.                             return value;
  936.                         }
  937.                     }
  938.                 }
  939.             }
  940.         }
  941.  
  942.         //20 ���
  943.         if(receivingBuffer[4]==0x4){
  944.             if(receivingBuffer[3]==0x81){
  945.                 if(receivingBuffer[2]==0x7){
  946.                     if(receivingBuffer[1]==0x3){
  947.                         if(receivingBuffer[0]==0x2){
  948.                             value=20;
  949.                             //System.out.println("������� ������ "+value+" ���.");//("20 hrn");
  950.                             System.out.println("Запись в файл инкассации 20");
  951.                             sum += 20;
  952.                             loadedJAXB=loadedJAXB.load(fileIncashName);
  953.                             loadedJAXB.setHRN1(loadedJAXB.getHRN1());
  954.                             loadedJAXB.setHRN2(loadedJAXB.getHRN2());
  955.                             loadedJAXB.setHRN5(loadedJAXB.getHRN5());
  956.                             loadedJAXB.setHRN10(loadedJAXB.getHRN10());
  957.                             loadedJAXB.setHRN20(loadedJAXB.getHRN20());
  958.                             loadedJAXB.setHRN50(loadedJAXB.getHRN50());
  959.                             loadedJAXB.setHRN100(loadedJAXB.getHRN100());
  960.                             loadedJAXB.setHRN200(loadedJAXB.getHRN200());
  961.                             loadedJAXB.setHRN500(loadedJAXB.getHRN500());
  962.  
  963.                             loadedJAXB.setHRN20((loadedJAXB.getHRN20())+1);
  964.                             loadedJAXB.save(fileIncashName);
  965.  
  966.                             return value;
  967.                         }
  968.                     }
  969.                 }
  970.             }
  971.         }
  972.  
  973.         //50 ���
  974.         if(receivingBuffer[4]==0x5){
  975.             if(receivingBuffer[3]==0x81){
  976.                 if(receivingBuffer[2]==0x7){
  977.                     if(receivingBuffer[1]==0x3){
  978.                         if(receivingBuffer[0]==0x2){
  979.                             value=50;
  980.                             //System.out.println("������� ������ "+value+" ���.");//("50 hrn");
  981.                             System.out.println("Запись в файл инкассации 50");
  982.                             sum += 50;
  983.                             loadedJAXB=loadedJAXB.load(fileIncashName);
  984.                             loadedJAXB.setHRN1(loadedJAXB.getHRN1());
  985.                             loadedJAXB.setHRN2(loadedJAXB.getHRN2());
  986.                             loadedJAXB.setHRN5(loadedJAXB.getHRN5());
  987.                             loadedJAXB.setHRN10(loadedJAXB.getHRN10());
  988.                             loadedJAXB.setHRN20(loadedJAXB.getHRN20());
  989.                             loadedJAXB.setHRN50(loadedJAXB.getHRN50());
  990.                             loadedJAXB.setHRN100(loadedJAXB.getHRN100());
  991.                             loadedJAXB.setHRN200(loadedJAXB.getHRN200());
  992.                             loadedJAXB.setHRN500(loadedJAXB.getHRN500());
  993.  
  994.                             loadedJAXB.setHRN50((loadedJAXB.getHRN50())+1);
  995.                             loadedJAXB.save(fileIncashName);
  996.  
  997.                             return value;
  998.                         }
  999.                     }
  1000.                 }
  1001.             }
  1002.         }
  1003.  
  1004.         //100 ���
  1005.         if(receivingBuffer[4]==0x6){
  1006.             if(receivingBuffer[3]==0x81){
  1007.                 if(receivingBuffer[2]==0x7){
  1008.                     if(receivingBuffer[1]==0x3){
  1009.                         if(receivingBuffer[0]==0x2){
  1010.                             value=100;
  1011.                             //System.out.println("������� ������ "+value+" ���.");//("100 hrn");
  1012.                             System.out.println("Запись в файл инкассации 100");
  1013.                             sum += 100;
  1014.                             loadedJAXB=loadedJAXB.load(fileIncashName);
  1015.                             loadedJAXB.setHRN1(loadedJAXB.getHRN1());
  1016.                             loadedJAXB.setHRN2(loadedJAXB.getHRN2());
  1017.                             loadedJAXB.setHRN5(loadedJAXB.getHRN5());
  1018.                             loadedJAXB.setHRN10(loadedJAXB.getHRN10());
  1019.                             loadedJAXB.setHRN20(loadedJAXB.getHRN20());
  1020.                             loadedJAXB.setHRN50(loadedJAXB.getHRN50());
  1021.                             loadedJAXB.setHRN100(loadedJAXB.getHRN100());
  1022.                             loadedJAXB.setHRN200(loadedJAXB.getHRN200());
  1023.                             loadedJAXB.setHRN500(loadedJAXB.getHRN500());
  1024.  
  1025.                             loadedJAXB.setHRN100((loadedJAXB.getHRN100())+1);
  1026.                             loadedJAXB.save(fileIncashName);
  1027.  
  1028.                             return value;
  1029.                         }
  1030.                     }
  1031.                 }
  1032.             }
  1033.         }
  1034.  
  1035.         //200 ���
  1036.         if(receivingBuffer[4]==0x7){
  1037.             if(receivingBuffer[3]==0x81){
  1038.                 if(receivingBuffer[2]==0x7){
  1039.                     if(receivingBuffer[1]==0x3){
  1040.                         if(receivingBuffer[0]==0x2){
  1041.                             value=200;
  1042.                             //System.out.println("������� ������ "+value+" ���.");//("200 hrn");
  1043.                             System.out.println("Запись в файл инкассации 200");
  1044.                             sum += 200;
  1045.                             loadedJAXB=loadedJAXB.load(fileIncashName);
  1046.                             loadedJAXB.setHRN1(loadedJAXB.getHRN1());
  1047.                             loadedJAXB.setHRN2(loadedJAXB.getHRN2());
  1048.                             loadedJAXB.setHRN5(loadedJAXB.getHRN5());
  1049.                             loadedJAXB.setHRN10(loadedJAXB.getHRN10());
  1050.                             loadedJAXB.setHRN20(loadedJAXB.getHRN20());
  1051.                             loadedJAXB.setHRN50(loadedJAXB.getHRN50());
  1052.                             loadedJAXB.setHRN100(loadedJAXB.getHRN100());
  1053.                             loadedJAXB.setHRN200(loadedJAXB.getHRN200());
  1054.                             loadedJAXB.setHRN500(loadedJAXB.getHRN500());
  1055.  
  1056.                             loadedJAXB.setHRN200((loadedJAXB.getHRN200())+1);
  1057.                             loadedJAXB.save(fileIncashName);
  1058.  
  1059.                             return value;
  1060.                         }
  1061.                     }
  1062.                 }
  1063.             }
  1064.         }
  1065.  
  1066.         //500 ���
  1067.         if(receivingBuffer[4]==0x8){
  1068.             if(receivingBuffer[3]==0x81){
  1069.                 if(receivingBuffer[2]==0x7){
  1070.                     if(receivingBuffer[1]==0x3){
  1071.                         if(receivingBuffer[0]==0x2){
  1072.                             value=500;
  1073.                             //System.out.println("������� ������ "+value+" ���.");//("500 hrn");
  1074.                             System.out.println("Запись в файл инкассации 500");
  1075.                             sum += 500;
  1076.                             loadedJAXB=loadedJAXB.load(fileIncashName);
  1077.                             loadedJAXB.setHRN1(loadedJAXB.getHRN1());
  1078.                             loadedJAXB.setHRN2(loadedJAXB.getHRN2());
  1079.                             loadedJAXB.setHRN5(loadedJAXB.getHRN5());
  1080.                             loadedJAXB.setHRN10(loadedJAXB.getHRN10());
  1081.                             loadedJAXB.setHRN20(loadedJAXB.getHRN20());
  1082.                             loadedJAXB.setHRN50(loadedJAXB.getHRN50());
  1083.                             loadedJAXB.setHRN100(loadedJAXB.getHRN100());
  1084.                             loadedJAXB.setHRN200(loadedJAXB.getHRN200());
  1085.                             loadedJAXB.setHRN500(loadedJAXB.getHRN500());
  1086.  
  1087.                             loadedJAXB.setHRN500((loadedJAXB.getHRN500())+1);
  1088.                             loadedJAXB.save(fileIncashName);
  1089.  
  1090.                             return value;
  1091.                         }
  1092.                     }
  1093.                 }
  1094.             }
  1095.         }
  1096.         return value;
  1097.     }
  1098.     private int billTypeValidationID003(int[] receivingBuffer){
  1099.         int value=0;
  1100.  
  1101.         //1 ���
  1102.  
  1103.         if(receivingBuffer[5]==0xFB){
  1104.             if(receivingBuffer[4]==0xB0){
  1105.                 if(receivingBuffer[3]==0x61){
  1106.                     if(receivingBuffer[2]==0x13){
  1107.                         if(receivingBuffer[1]==0x6){
  1108.  
  1109.                             value=1;
  1110.                             //System.outrintln("������� ������ "+value+" ���.");//("1 hrn");
  1111.                             System.out.println("Запись в файл инкассации 1");
  1112.                             loadedJAXB=loadedJAXB.load(fileIncashName);
  1113.                             loadedJAXB.setHRN1(loadedJAXB.getHRN1());
  1114.                             loadedJAXB.setHRN2(loadedJAXB.getHRN2());
  1115.                             loadedJAXB.setHRN5(loadedJAXB.getHRN5());
  1116.                             loadedJAXB.setHRN10(loadedJAXB.getHRN10());
  1117.                             loadedJAXB.setHRN20(loadedJAXB.getHRN20());
  1118.                             loadedJAXB.setHRN50(loadedJAXB.getHRN50());
  1119.                             loadedJAXB.setHRN100(loadedJAXB.getHRN100());
  1120.                             loadedJAXB.setHRN200(loadedJAXB.getHRN200());
  1121.                             loadedJAXB.setHRN500(loadedJAXB.getHRN500());
  1122.                             loadedJAXB.setHRN1((loadedJAXB.getHRN1())+1);
  1123.                             loadedJAXB.save(fileIncashName);
  1124.  
  1125.                             return value;
  1126.                         }
  1127.                     }
  1128.                 }
  1129.             }
  1130.         }
  1131.  
  1132.         //2
  1133.         if(receivingBuffer[5]==0xC9){
  1134.             if(receivingBuffer[4]==0x2B){
  1135.                 if(receivingBuffer[3]==0x62){
  1136.                     if(receivingBuffer[2]==0x13){
  1137.                         if(receivingBuffer[1]==0x6){
  1138.                             value=2;
  1139.                             //System.out.println("������� ������ "+value+" ���.");//("2 hrn");
  1140.                             System.out.println("Запись в файл инкассации 2");
  1141.                             loadedJAXB=loadedJAXB.load(fileIncashName);
  1142.                             loadedJAXB.setHRN1(loadedJAXB.getHRN1());
  1143.                             loadedJAXB.setHRN2(loadedJAXB.getHRN2());
  1144.                             loadedJAXB.setHRN5(loadedJAXB.getHRN5());
  1145.                             loadedJAXB.setHRN10(loadedJAXB.getHRN10());
  1146.                             loadedJAXB.setHRN20(loadedJAXB.getHRN20());
  1147.                             loadedJAXB.setHRN50(loadedJAXB.getHRN50());
  1148.                             loadedJAXB.setHRN100(loadedJAXB.getHRN100());
  1149.                             loadedJAXB.setHRN200(loadedJAXB.getHRN200());
  1150.                             loadedJAXB.setHRN500(loadedJAXB.getHRN500());
  1151.  
  1152.                             //System.out.println("������� ������ "+value+" ���.");//("2 hrn");
  1153.                             loadedJAXB.setHRN2((loadedJAXB.getHRN2())+1);
  1154.                             //System.out.println("������� ������ "+value+" ���.");//("2 hrn");
  1155.                             loadedJAXB.save(fileIncashName);
  1156.                             //System.out.println("������� ������ "+value+" ���.");//("2 hrn");
  1157.  
  1158.                             return value;
  1159.                         }
  1160.                     }
  1161.                 }
  1162.             }
  1163.         }
  1164.  
  1165.         //5 ���
  1166.         if(receivingBuffer[5]==0xD8){
  1167.             if(receivingBuffer[4]==0xA2){
  1168.                 if(receivingBuffer[3]==0x63){
  1169.                     if(receivingBuffer[2]==0x13){
  1170.                         if(receivingBuffer[1]==0x6){
  1171.                         }
  1172.                     }                           value=5;
  1173.                 //    System.out.println(value+" ���."+fileIncashName);//("5 hrn");
  1174.                     try {
  1175.  
  1176.                         System.out.println("Запись в файл инкассации 5");
  1177.                         loadedJAXB=loadedJAXB.load(fileIncashName);
  1178.                         loadedJAXB.setHRN1(loadedJAXB.getHRN1());
  1179.                         loadedJAXB.setHRN2(loadedJAXB.getHRN2());
  1180.                         loadedJAXB.setHRN5(loadedJAXB.getHRN5());
  1181.                         loadedJAXB.setHRN10(loadedJAXB.getHRN10());
  1182.                         loadedJAXB.setHRN20(loadedJAXB.getHRN20());
  1183.                         loadedJAXB.setHRN50(loadedJAXB.getHRN50());
  1184.                         loadedJAXB.setHRN100(loadedJAXB.getHRN100());
  1185.                         loadedJAXB.setHRN200(loadedJAXB.getHRN200());
  1186.                         loadedJAXB.setHRN500(loadedJAXB.getHRN500());
  1187.  
  1188.           //              System.out.println("������� ������ "+value+" ���.");//("5 hrn");
  1189.                         loadedJAXB.setHRN5((loadedJAXB.getHRN5())+1);
  1190.             //            System.out.println("������� ������ "+value+" ���.");//("5 hrn");
  1191.                         loadedJAXB.save(fileIncashName);
  1192.               //          System.out.println("������� ������ "+value+" ���.");//("5 hrn");
  1193.                     }catch (Exception ex){
  1194.                         System.err.println(ex.getMessage());
  1195.                     }
  1196.                     return value;
  1197.  
  1198.                 }
  1199.             }
  1200.         }
  1201.  
  1202.         //10 ���
  1203.         if(receivingBuffer[5]==0xAC){
  1204.             if(receivingBuffer[4]==0x1D){
  1205.                 if(receivingBuffer[3]==0x64){
  1206.                     if(receivingBuffer[2]==0x13){
  1207.                         if(receivingBuffer[1]==0x6){
  1208.                             value=10;
  1209.                             //System.out.println("������� ������ "+value+" ���.");//("10 hrn");
  1210.                             System.out.println("Запись в файл инкассации 10");
  1211.                             loadedJAXB=loadedJAXB.load(fileIncashName);
  1212.                             loadedJAXB.setHRN1(loadedJAXB.getHRN1());
  1213.                             loadedJAXB.setHRN2(loadedJAXB.getHRN2());
  1214.                             loadedJAXB.setHRN5(loadedJAXB.getHRN5());
  1215.                             loadedJAXB.setHRN10(loadedJAXB.getHRN10());
  1216.                             loadedJAXB.setHRN20(loadedJAXB.getHRN20());
  1217.                             loadedJAXB.setHRN50(loadedJAXB.getHRN50());
  1218.                             loadedJAXB.setHRN100(loadedJAXB.getHRN100());
  1219.                             loadedJAXB.setHRN200(loadedJAXB.getHRN200());
  1220.                             loadedJAXB.setHRN500(loadedJAXB.getHRN500());
  1221.  
  1222.                             loadedJAXB.setHRN10((loadedJAXB.getHRN10())+1);
  1223.                             loadedJAXB.save(fileIncashName);
  1224.  
  1225.                             return value;
  1226.                         }
  1227.                     }
  1228.                 }
  1229.             }
  1230.         }
  1231.  
  1232.         //20 ���
  1233.         if(receivingBuffer[5]==0xBD){
  1234.             if(receivingBuffer[4]==0x94){
  1235.                 if(receivingBuffer[3]==0x65){
  1236.                     if(receivingBuffer[2]==0x13){
  1237.                         if(receivingBuffer[1]==0x6){
  1238.                             value=20;
  1239.                             //System.out.println("������� ������ "+value+" ���.");//("20 hrn");
  1240.                             System.out.println("Запись в файл инкассации 20");
  1241.                             loadedJAXB=loadedJAXB.load(fileIncashName);
  1242.                             loadedJAXB.setHRN1(loadedJAXB.getHRN1());
  1243.                             loadedJAXB.setHRN2(loadedJAXB.getHRN2());
  1244.                             loadedJAXB.setHRN5(loadedJAXB.getHRN5());
  1245.                             loadedJAXB.setHRN10(loadedJAXB.getHRN10());
  1246.                             loadedJAXB.setHRN20(loadedJAXB.getHRN20());
  1247.                             loadedJAXB.setHRN50(loadedJAXB.getHRN50());
  1248.                             loadedJAXB.setHRN100(loadedJAXB.getHRN100());
  1249.                             loadedJAXB.setHRN200(loadedJAXB.getHRN200());
  1250.                             loadedJAXB.setHRN500(loadedJAXB.getHRN500());
  1251.  
  1252.                             loadedJAXB.setHRN20((loadedJAXB.getHRN20())+1);
  1253.                             loadedJAXB.save(fileIncashName);
  1254.  
  1255.                             return value;
  1256.                         }
  1257.                     }
  1258.                 }
  1259.             }
  1260.         }
  1261.  
  1262.         //50 ���
  1263.         if(receivingBuffer[5]==0x8F){
  1264.             if(receivingBuffer[4]==0x0F){
  1265.                 if(receivingBuffer[3]==0x66){
  1266.                     if(receivingBuffer[2]==0x13){
  1267.                         if(receivingBuffer[1]==0x6){
  1268.                             value=50;
  1269.                             //System.out.println("������� ������ "+value+" ���.");//("50 hrn");
  1270.                             System.out.println("Запись в файл AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA инкассации 50");
  1271.                             loadedJAXB=loadedJAXB.load(fileIncashName);
  1272.                             loadedJAXB.setHRN1(loadedJAXB.getHRN1());
  1273.                             loadedJAXB.setHRN2(loadedJAXB.getHRN2());
  1274.                             loadedJAXB.setHRN5(loadedJAXB.getHRN5());
  1275.                             loadedJAXB.setHRN10(loadedJAXB.getHRN10());
  1276.                             loadedJAXB.setHRN20(loadedJAXB.getHRN20());
  1277.                             loadedJAXB.setHRN50(loadedJAXB.getHRN50());
  1278.                             loadedJAXB.setHRN100(loadedJAXB.getHRN100());
  1279.                             loadedJAXB.setHRN200(loadedJAXB.getHRN200());
  1280.                             loadedJAXB.setHRN500(loadedJAXB.getHRN500());
  1281.  
  1282.                             loadedJAXB.setHRN50((loadedJAXB.getHRN50())+1);
  1283.                             loadedJAXB.save(fileIncashName);
  1284.  
  1285.                             return value;
  1286.                         }
  1287.                     }
  1288.                 }
  1289.             }
  1290.         }
  1291.  
  1292.         //100 ���
  1293.         if(receivingBuffer[5]==0x9E){
  1294.             if(receivingBuffer[4]==0x86){
  1295.                 if(receivingBuffer[3]==0x67){
  1296.                     if(receivingBuffer[2]==0x13){
  1297.                         if(receivingBuffer[1]==0x6){
  1298.                             value=100;
  1299.                             //System.out.println("������� ������ "+value+" ���.");//("100 hrn");
  1300.                             System.out.println("Запись в файл инкассации 100");
  1301.                             loadedJAXB=loadedJAXB.load(fileIncashName);
  1302.                             loadedJAXB.setHRN1(loadedJAXB.getHRN1());
  1303.                             loadedJAXB.setHRN2(loadedJAXB.getHRN2());
  1304.                             loadedJAXB.setHRN5(loadedJAXB.getHRN5());
  1305.                             loadedJAXB.setHRN10(loadedJAXB.getHRN10());
  1306.                             loadedJAXB.setHRN20(loadedJAXB.getHRN20());
  1307.                             loadedJAXB.setHRN50(loadedJAXB.getHRN50());
  1308.                             loadedJAXB.setHRN100(loadedJAXB.getHRN100());
  1309.                             loadedJAXB.setHRN200(loadedJAXB.getHRN200());
  1310.                             loadedJAXB.setHRN500(loadedJAXB.getHRN500());
  1311.  
  1312.                             loadedJAXB.setHRN100((loadedJAXB.getHRN100())+1);
  1313.                             loadedJAXB.save(fileIncashName);
  1314.  
  1315.                             return value;
  1316.                         }
  1317.                     }
  1318.                 }
  1319.             }
  1320.         }
  1321.  
  1322.         //200 ���
  1323.         if(receivingBuffer[5]==0x66){
  1324.             if(receivingBuffer[4]==0x71){
  1325.                 if(receivingBuffer[3]==0x68){
  1326.                     if(receivingBuffer[2]==0x13){
  1327.                         if(receivingBuffer[1]==0x6){
  1328.                             value=200;
  1329.                             //System.out.println("������� ������ "+value+" ���.");//("200 hrn");
  1330.                             System.out.println("Запись в файл инкассации 200");
  1331.                             loadedJAXB=loadedJAXB.load(fileIncashName);
  1332.                             loadedJAXB.setHRN1(loadedJAXB.getHRN1());
  1333.                             loadedJAXB.setHRN2(loadedJAXB.getHRN2());
  1334.                             loadedJAXB.setHRN5(loadedJAXB.getHRN5());
  1335.                             loadedJAXB.setHRN10(loadedJAXB.getHRN10());
  1336.                             loadedJAXB.setHRN20(loadedJAXB.getHRN20());
  1337.                             loadedJAXB.setHRN50(loadedJAXB.getHRN50());
  1338.                             loadedJAXB.setHRN100(loadedJAXB.getHRN100());
  1339.                             loadedJAXB.setHRN200(loadedJAXB.getHRN200());
  1340.                             loadedJAXB.setHRN500(loadedJAXB.getHRN500());
  1341.  
  1342.                             loadedJAXB.setHRN200((loadedJAXB.getHRN200())+1);
  1343.                             loadedJAXB.save(fileIncashName);
  1344.  
  1345.                             return value;
  1346.                         }
  1347.                     }
  1348.                 }
  1349.             }
  1350.         }
  1351.  
  1352.         //500 ���
  1353.         if(receivingBuffer[5]==0x77){
  1354.             if(receivingBuffer[4]==0xF8){
  1355.                 if(receivingBuffer[3]==0x69){
  1356.                     if(receivingBuffer[2]==0x13){
  1357.                         if(receivingBuffer[1]==0x6){
  1358.                             value=500;
  1359.                             //System.out.println("������� ������ "+value+" ���.");//("500 hrn");
  1360.                             System.out.println("Запись в файл инкассации 500");
  1361.                             loadedJAXB=loadedJAXB.load(fileIncashName);
  1362.                             loadedJAXB.setHRN1(loadedJAXB.getHRN1());
  1363.                             loadedJAXB.setHRN2(loadedJAXB.getHRN2());
  1364.                             loadedJAXB.setHRN5(loadedJAXB.getHRN5());
  1365.                             loadedJAXB.setHRN10(loadedJAXB.getHRN10());
  1366.                             loadedJAXB.setHRN20(loadedJAXB.getHRN20());
  1367.                             loadedJAXB.setHRN50(loadedJAXB.getHRN50());
  1368.                             loadedJAXB.setHRN100(loadedJAXB.getHRN100());
  1369.                             loadedJAXB.setHRN200(loadedJAXB.getHRN200());
  1370.                             loadedJAXB.setHRN500(loadedJAXB.getHRN500());
  1371.  
  1372.                             loadedJAXB.setHRN500((loadedJAXB.getHRN500())+1);
  1373.                             loadedJAXB.save(fileIncashName);
  1374.  
  1375.                             return value;
  1376.                         }
  1377.                     }
  1378.                 }
  1379.             }
  1380.         }
  1381.         return value;
  1382.     }
  1383.  
  1384.     public String checkStatus(int[] receivingBuffer) {
  1385.         String status = "another status";
  1386.         int counter = 0;
  1387.         try {
  1388.             int ii = receivingBuffer.length;
  1389.             if(ii==0) { }
  1390.             for (int i = 0; i < allStatuses.length; i++) {
  1391.                 for (int j = 0; j < receivingBuffer.length; j++) {
  1392.                     if (j<allStatuses[i].length && receivingBuffer[j] == allStatuses[i][j]) {
  1393.                         counter++;
  1394.                     }
  1395.                 }
  1396.                 if (counter == receivingBuffer.length) {
  1397.                     this.status = statusNames[i];
  1398.                     return statusNames[i];
  1399.                 }
  1400.                 counter = 0;
  1401.             }
  1402.         } catch (Exception e) {
  1403.             System.out.println("in check status exception "+e);
  1404.         }
  1405.         this.status = status;
  1406.         return status;
  1407.     }
  1408.     public String checkStatusID003(int[] receivingBuffer) {
  1409.         String status = "another status";
  1410.         //System.out.println("checkStatus");
  1411.         int counter = 0;
  1412.         try {
  1413.             int ii = receivingBuffer.length;
  1414.             if(ii==0) { }
  1415.             for (int i = 0; i < allResponses.length; i++) {
  1416.                 for (int j = 0; j < receivingBuffer.length; j++) {
  1417.                     if (j<allResponses[i].length && receivingBuffer[j] == allResponses[i][j]) {
  1418.                         counter++;
  1419.                     }
  1420.                 }
  1421.                 if (counter == receivingBuffer.length) {
  1422.                     this.status = statusNamesFromResponse[i];
  1423.                     return statusNamesFromResponse[i];
  1424.                 }
  1425.                 counter = 0;
  1426.             }
  1427.         } catch (Exception e) {
  1428.             System.out.println("check status exception "+e.getMessage());
  1429.         }
  1430.         this.status = status;
  1431.         return status;
  1432.     }
  1433.  
  1434.     public boolean checkBV(){
  1435.         if(getProtocol().equals(CCNETProtokol)){
  1436.  
  1437.             status=getCurrentStatus();
  1438.             System.out.println("!status"+status);
  1439. /*
  1440.             private static String[] statusNames = { "Idling", "UnitDisable", "StackerRemoved",
  1441.                     "Initialize", "Reset", "Accepting", "Stacking", "ACK", "Returning",
  1442.                     "Casette full","Drop cassete out of position","Validator jammed",
  1443.                     "Drop cassette jammed"
  1444. //                                                  "BillStacked_2hrn", "BillStacked_5hrn"
  1445.             };
  1446. */
  1447.  
  1448.             return !status.equals(statusNames[2])&& !status.equals(statusNames[9])
  1449.                     && !status.equals(statusNames[10])&& !status.equals(statusNames[11])&& !status.equals(statusNames[12]);
  1450.         }
  1451.         if(getProtocol().equals(ID003Protokol)){ status=getCurrentStatusID003();
  1452.             System.out.println("ID003 status"+status);
  1453.             return !status.equals(statusNamesFromResponse[6])&& !status.equals(statusNamesFromResponse[7])
  1454.                     && !status.equals(statusNamesFromResponse[9]);
  1455.         }
  1456.         if(getProtocol().equals(CashFlowProtokol) ){ status=cashflow.getCurrentStatusCashFlow();
  1457.             System.out.println("CashFlow status"+status);
  1458.             return !status.equals(State.Disconnected)&& !status.equals(State.Failed)
  1459.             ;
  1460.         }
  1461.  
  1462.         return false;
  1463.  
  1464.     }
  1465.     public static String getCurrentStatus(){
  1466.         comPortWithListener.sendCommand(cmdPole,6,150);
  1467.         String st=status;
  1468.         status="";
  1469.         //System.out.println("in current status st= "+st);
  1470.         return st;
  1471.     }
  1472.     public static String getCurrentStatusID003(){
  1473.         comPortWithListener.sendCommand(command[0],5,50);
  1474.         //System.out.println("getCurrentStatusID003 current status "+status+"!");
  1475.         String st=status;
  1476.         status="";
  1477.         //System.out.println("in current status st= "+st);
  1478.         return st;
  1479.     }
  1480.  
  1481.     public synchronized void startReveivingMoney() {
  1482.         //System.out.println("startReveivingMoney()");
  1483.         if(getProtocol().equals(CCNETProtokol))setBVEnable();
  1484.         if(getProtocol().equals(ID003Protokol))setBVEnableID003();
  1485.         if(getProtocol().equals(CashFlowProtokol)) cashflow.startReceivingMoney();
  1486.         try {
  1487.             Thread.sleep(200);
  1488.         } catch (InterruptedException e) {
  1489.             e.printStackTrace();
  1490.         }
  1491.         timer2 = new java.util.Timer();
  1492.         task = new TimerTask() {
  1493.             public void run() {
  1494.               //  System.out.println("timer");
  1495.                 if(getProtocol().equals(CCNETProtokol)){
  1496.                     comPortWithListener.sendCommand(cmdInit2, 1, 30);
  1497.                     comPortWithListener.sendCommand(cmdPole, 6, 50);
  1498.                 }
  1499.                 //++++++++++++++++++++++++++++++++++++++++++++++++
  1500.                 if(getProtocol().equals(ID003Protokol)){
  1501.                   //  System.out.println("timer ID003");
  1502.                     // comPortWithListener.sendCommand(command[18], 7,50);
  1503. /*
  1504.  
  1505.                     comPortWithListener.sendCommand(command[10],6,50);//
  1506. */
  1507.                     //comPortWithListener.sendCommand(command[9], 6,50);
  1508.                     if(escrow && !stacking && !valid){
  1509.           //              System.out.println("resend 26");
  1510.                         comPortWithListener.sendCommand(command[26],5,30);}//
  1511.                     if(valid ){
  1512.             //            System.out.println("valid ASK");
  1513.                         comPortWithListener.sendCommand(command[27], 5, 50);
  1514.                         valid=false;
  1515.                     }
  1516.                     comPortWithListener.sendCommand(command[0], 5,50);
  1517.                 }//++++++++++++++++++++++++++++++++++++++++++++++++
  1518.                 if(getProtocol().equals(CCNETProtokol)){
  1519.               //      System.out.println("timer CCNET");
  1520.  
  1521.                     if(accepting ){//&& stacking
  1522.                         System.out.println("accepting!Request escrow");
  1523.                         // comPortWithListener.sendCommand(cmdACK, 6,50);//ACK
  1524.                         comPortWithListener.sendCommand(cmdPole, 6, 50);
  1525.                     }
  1526.                     if(escrow ){
  1527.                         if(!needReject && !stacking) {
  1528.                             comPortWithListener.sendCommand(cmdStack, 6, 50);
  1529.                         }
  1530.                         comPortWithListener.sendCommand(cmdPole, 6, 50);
  1531.                     }
  1532.  
  1533.                 }
  1534.                 if(getProtocol().equals(CashFlowProtokol)){
  1535.  
  1536.                 }
  1537.             }
  1538.         };
  1539.         timer2.schedule(task, 0, 150);
  1540.     }
  1541.  
  1542.     public synchronized void stopReveivingMoney() {
  1543.         System.out.println("!!!stop");
  1544.         timer2.cancel();
  1545.         if(getProtocol().equals(CCNETProtokol))setBVDisable();
  1546.         if(getProtocol().equals(ID003Protokol))setBVDisableID003();
  1547.         if(getProtocol().equals(CashFlowProtokol))cashflow.stopReceivingMoney();
  1548.     }
  1549.  
  1550.     @Override
  1551.     public void doEvent(int[] receivingBufferListener, String answer) {
  1552.         System.out.print("doEvent");
  1553.         String str;
  1554.  
  1555.         if(receivingBufferListener!=null)
  1556.         for(int i=0;i<receivingBufferListener.length;i++) {
  1557.             str = Integer.toHexString(receivingBufferListener[i]).toUpperCase();
  1558.           //  String.format("%x",receivingBufferListener[i]);
  1559.             //System.out.print(str+" ");
  1560.         }
  1561.         //System.out.println("doSomething");
  1562.         if(getProtocol().equals(CCNETProtokol)){
  1563.            // System.out.println("CCNET");
  1564.             doSomething(receivingBufferListener, answer);}
  1565.         if(getProtocol().equals(ID003Protokol)){
  1566.           //  System.out.println("ID003");
  1567.             doSomethingID003(receivingBufferListener, answer);}
  1568.         if(getProtocol().equals(CashFlowProtokol))  {
  1569.           //  cashflow.doEvent(receivingBufferListener, answer);
  1570.             doSomethingCashFlow(receivingBufferListener, answer);
  1571.         }
  1572.  
  1573.     }
  1574.     public void doSomethingID003(int[] receivingBufferListener, String answer) {
  1575.         //System.out.println("doSomethingID003  "receivingBufferListener );
  1576.         if(receivingBufferListener[2]==BVU_VEND_VALID && receivingBufferListener[3]==0x03  &&
  1577.                 receivingBufferListener[4]==0x10 ) {
  1578.           //  System.out.println("valid");
  1579.             valid = true;
  1580.         }
  1581.         if(receivingBufferListener[2]==BVU_ACCEPTING && receivingBufferListener[3]==0xBC  &&
  1582.                 receivingBufferListener[4]==0x64 ) {
  1583.             System.out.println("accepting");
  1584.             accepting = true;
  1585.         }
  1586.  
  1587.  
  1588.         if(receivingBufferListener[2]==BVU_STACKING && receivingBufferListener[3]==0xA &&
  1589.                 receivingBufferListener[4]==0x18 ) {
  1590.             System.out.println("stacking");
  1591.             stacking = true;
  1592.         }
  1593.         if(receivingBufferListener[2]==BVU_REJECTING){
  1594.             accepting=false;
  1595.             stacking=false;
  1596.             valid=false;
  1597.             escrow=false;
  1598.         }
  1599.         if(receivingBufferListener[2]==BVU_ESCROW && receivingBufferListener[3] >=  0x61 &&
  1600.                 receivingBufferListener[3] <=  0x69 )
  1601.         {
  1602.             System.out.println("escrow");
  1603.             escrow=true;
  1604.             needReject=false;
  1605.             maxReplenishment=false;
  1606.             if( accepting){
  1607.                 // ServicePayment servicePayment=new  ServicePayment();
  1608.                 System.out.println("ServicePayment.maxSumma.doubleValue()"+maxSumma.doubleValue());
  1609.                 System.out.println("totalAmount"+getTotalAmount());
  1610.                 if(Double.valueOf(getTotalAmount()).doubleValue()>maxSumma.doubleValue())
  1611.                 {needReject=true;reject();}
  1612.                 switch(receivingBufferListener[3]){
  1613.                     case 0x61:{if(maxSumma.doubleValue()<1){needReject=true;reject();}
  1614.                         if(Double.valueOf(getTotalAmount()).doubleValue()+1>maxSumma.doubleValue())
  1615.                         {needReject=true;reject();}
  1616.                         break;
  1617.                     }
  1618.                     case 0x62:{if(maxSumma.doubleValue()<2){needReject=true;reject();}
  1619.                         if(Double.valueOf(getTotalAmount()).doubleValue()+2>maxSumma.doubleValue())
  1620.                         {needReject=true;reject();}
  1621.  
  1622.                         break;
  1623.                     }
  1624.                     case 0x63:{if(maxSumma.doubleValue()<5){needReject=true;reject();}
  1625.                         if(Double.valueOf(getTotalAmount()).doubleValue()+5>maxSumma.doubleValue())
  1626.                         {needReject=true;reject();}
  1627.  
  1628.                         break;}
  1629.                     case 0x64:{if(maxSumma.doubleValue()<10){needReject=true;reject();}
  1630.                         if(Double.valueOf(getTotalAmount()).doubleValue()+10>maxSumma.doubleValue())
  1631.                         {needReject=true;reject();}
  1632.  
  1633.                         break;}
  1634.                     case 0x65:{if(maxSumma.doubleValue()<20){needReject=true;reject();}
  1635.                         if(Double.valueOf(getTotalAmount()).doubleValue()+20>maxSumma.doubleValue())
  1636.                         {needReject=true;reject();}
  1637.  
  1638.                         break;}
  1639.                     case 0x66:{if(maxSumma.doubleValue()<50){needReject=true;reject();}
  1640.                         if(Double.valueOf(getTotalAmount()).doubleValue()+50>maxSumma.doubleValue())
  1641.                         {needReject=true;reject();}
  1642.                         break;
  1643.                     }
  1644.                     case 0x67:{if(maxSumma.doubleValue()<100){needReject=true;reject();}
  1645.                         if(Double.valueOf(getTotalAmount()).doubleValue()+100>maxSumma.doubleValue())
  1646.                         {needReject=true;reject();}
  1647.  
  1648.                         break;}
  1649.                     case 0x68:{if(maxSumma.doubleValue()<200){needReject=true;reject();}
  1650.                         if(Double.valueOf(getTotalAmount()).doubleValue()+200>maxSumma.doubleValue())
  1651.                         {needReject=true;reject();}
  1652.  
  1653.                         break;}
  1654.                     case 0x69:{if(maxSumma.doubleValue()<500){needReject=true;reject();}
  1655.                         if(Double.valueOf(getTotalAmount()).doubleValue()+500>maxSumma.doubleValue())
  1656.                         {needReject=true;reject();}
  1657.  
  1658.                         break;}
  1659.                     default:
  1660.                         break;
  1661.                 }
  1662.             }
  1663.         }
  1664.         //System.out.println("receivingBufferListener[3]"+Integer.toHexString(receivingBufferListener[3]).toUpperCase());
  1665.         if(receivingBufferListener[2]==BVU_ESCROW && receivingBufferListener[3] >=  0x61
  1666.                 && receivingBufferListener[3] <=  0x69 && accepting && !needReject){//&& stacking
  1667.             int m = 0;
  1668.             System.out.println("!!!!!!!!Запись в файл инкассации"+receivingBufferListener);
  1669.             m=billTypeValidationID003(receivingBufferListener);
  1670.             if(m>0 && m<=500){
  1671.                 MoneyReceiver.staticData("from BV", m, " ");
  1672.                 escrow=false;
  1673.                 accepting = false;
  1674.                 stacking = false;
  1675.                 needReject=false;
  1676.             }
  1677.  
  1678.             return;
  1679.         }
  1680.  
  1681.  
  1682.  
  1683.  
  1684.         answer=checkStatusID003(receivingBufferListener);
  1685.  
  1686.     }
  1687.     public void doSomething(int[] receivingBufferListener, String answer) {
  1688.         //bill table
  1689.         if (receivingBufferListener[2] ==  0x7d
  1690.                 && receivingBufferListener[1] ==  0x03
  1691.                 && receivingBufferListener[0] == 0x02) {
  1692.             for (int i = 3; i < receivingBufferListener.length-2;) {
  1693.                 if(receivingBufferListener[i+4]==(int)0x1) {
  1694.                     receivingBufferListener[i]*=10;
  1695.                 }
  1696.                 if(receivingBufferListener[i+4]==(int)0x2){
  1697.                     receivingBufferListener[i]*=100;
  1698.                 }
  1699. //              System.out.print(receivingBufferListener[i]+"");
  1700.                 i++;
  1701. //              System.out.print((char) receivingBufferListener[i]+"");
  1702.                 i++;
  1703. //              System.out.print((char) receivingBufferListener[i]+"");
  1704.                 i++;
  1705. //              System.out.print((char) receivingBufferListener[i]+"");
  1706.                 i++;
  1707.                 i++;
  1708. //              System.out.print(" ");
  1709.             }
  1710.             System.out.println();
  1711.             return;
  1712.         }
  1713.  
  1714.         //identification
  1715. /*
  1716.         if (receivingBufferListener[2] == 0x27
  1717.                 && receivingBufferListener[1] == 0x03
  1718.                 && receivingBufferListener[0] == 0x02) {
  1719.             for (int i = 3; i < receivingBufferListener.length - 2; i++) {
  1720.                 if(i>=3 && i<=18) {
  1721.                     //System.out.print((char) receivingBufferListener[i]+"");
  1722.                     if(i==18) {
  1723.                         //System.out.println("");
  1724.                     }
  1725.                 }
  1726.                 if(i>18 && i<=30) {
  1727.                     //System.out.print((char) receivingBufferListener[i]+"");
  1728.                     if(i==30) {
  1729.                         //System.out.println("");
  1730.                     }
  1731.                 }
  1732.  
  1733.                 if(i>30) {
  1734.                     //System.out.print(receivingBufferListener[i]+"");
  1735.                 }
  1736.             }
  1737.             //System.out.println("");
  1738.             return;
  1739.         }
  1740. */
  1741.  
  1742.         /*
  1743.             { 0x02, 0x03, 0x06, 0x15, 0xEE, 0xC5 },//Accepting
  1744.             { 0x02, 0x03, 0x06, 0x17, 0xFC, 0xE6 },//Stacking
  1745.             { 0x02, 0x03, 0x06, 0x18, 0x0B, 0x1E },//Returning
  1746.          */
  1747.  
  1748. /*
  1749.        if(receivingBufferListener[2]==0x06 && receivingBufferListener[3]==0x18 &&
  1750.                receivingBufferListener[4]==0x0B && receivingBufferListener[5]==0x1E ) {//,
  1751.            needReject = false;
  1752.            escrow=false;
  1753.            rejecting = true;
  1754.        }
  1755. */
  1756.         if(receivingBufferListener[2]==0x06 && receivingBufferListener[3]==0x15 &&
  1757.                 receivingBufferListener[4]==0xEE && receivingBufferListener[5]==0xC5 ) {//accepting == true;
  1758.             accepting = true;
  1759.         }
  1760.  
  1761.         if(receivingBufferListener[2]==0x06 && receivingBufferListener[3]==0x17 &&
  1762.                 receivingBufferListener[4]==0xFC && receivingBufferListener[5]==0xE6) {//stacking == true
  1763.             stacking = true;
  1764.         }
  1765.  
  1766.         if( receivingBufferListener[3]==0x80 && receivingBufferListener[4] >=  0x0
  1767.                 && receivingBufferListener[4] <=  0x8 ){
  1768.  
  1769.             escrow =true;
  1770.             //needReject=false;
  1771.            // if(!needReject)maxReplenishment=false;//.setVisible(false);
  1772.  
  1773.             if(accepting){
  1774.                 needReject=false;
  1775.                 maxReplenishment=false;//.setVisible(false);
  1776.                 //ServicePayment servicePayment=new ServicePayment();
  1777.                 if(Double.valueOf(getTotalAmount()).doubleValue()>maxSumma.doubleValue())
  1778.                 {needReject=true;reject();
  1779.                     System.out.println("needReject!");}
  1780.                 switch(receivingBufferListener[4]){
  1781.                     case 0x00:{if(maxSumma.doubleValue()<1){needReject=true;reject();}
  1782.                         if(Double.valueOf(getTotalAmount()).doubleValue()+1>maxSumma.doubleValue())
  1783.                         {needReject=true;reject();System.out.println("needReject!!");}
  1784.                         break;
  1785.                     }
  1786.                     case 0x01:{if(maxSumma.doubleValue()<2){needReject=true;reject();}
  1787.                         System.err.println("totalAmount"+Double.valueOf(getTotalAmount()));
  1788.  
  1789.                         if(Double.valueOf(getTotalAmount()).doubleValue()+2>maxSumma.doubleValue())
  1790.                         { System.err.println("1totalAmount"+Double.valueOf(getTotalAmount()));
  1791.                             needReject=true;reject();
  1792.                         }
  1793.                         break;
  1794.                     }
  1795.                     case 0x02:{if(maxSumma.doubleValue()<5){needReject=true;reject();}
  1796.                         if(Double.valueOf(getTotalAmount()).doubleValue()+5>maxSumma.doubleValue())
  1797.                         {needReject=true;reject();}
  1798.  
  1799.                         break;}
  1800.                     case 0x03:{if(maxSumma.doubleValue()<10){needReject=true;reject();}
  1801.                         if(Double.valueOf(getTotalAmount()).doubleValue()+10>maxSumma.doubleValue())
  1802.                         {needReject=true;reject();}
  1803.  
  1804.                         break;}
  1805.                     case 0x04:{if(maxSumma.doubleValue()<20){needReject=true;reject();}
  1806.                         if(Double.valueOf(getTotalAmount()).doubleValue()+20>maxSumma.doubleValue())
  1807.                         {needReject=true;reject();}
  1808.  
  1809.                         break;}
  1810.                     case 0x05:{if(maxSumma.doubleValue()<50){needReject=true;reject();}
  1811.                         if(Double.valueOf(getTotalAmount()).doubleValue()+50>maxSumma.doubleValue())
  1812.                         {needReject=true;reject();}
  1813.                         break;
  1814.                     }
  1815.                     case 0x06:{if(maxSumma.doubleValue()<100){needReject=true;reject();}
  1816.                         if(Double.valueOf(getTotalAmount()).doubleValue()+100>maxSumma.doubleValue())
  1817.                         {needReject=true;reject();}
  1818.  
  1819.                         break;}
  1820.                     case 0x07:{if(maxSumma.doubleValue()<200){needReject=true;reject();}
  1821.                         if(Double.valueOf(getTotalAmount()).doubleValue()+200>maxSumma.doubleValue())
  1822.                         {needReject=true;reject();}
  1823.  
  1824.                         break;}
  1825.                     case 0x08:{if(maxSumma.doubleValue()<500){needReject=true;reject();}
  1826.                         if(Double.valueOf(getTotalAmount()).doubleValue()+500>maxSumma.doubleValue())
  1827.                         {needReject=true;reject();}
  1828.  
  1829.                         break;}
  1830.                     default:
  1831.                         break;
  1832.                 }
  1833.                // if(needReject)maxReplenishment=true;//.setVisible(true);
  1834.  
  1835.             }
  1836.         }
  1837.         if(receivingBufferListener[3]==0x81 && receivingBufferListener[4] >=  0x0 && receivingBufferListener[4] <=  0x8
  1838.                 && accepting && stacking  && !needReject ) {////&& !rejecting
  1839.             int m = 0;
  1840.             System.out.println("Запись в файл инкассации!");
  1841.             m=billTypeValidation(receivingBufferListener);
  1842.             System.out.println("from BV"+ m);
  1843.             if(m>0 && m<=500){
  1844.                 System.out.println("from BV"+ m);
  1845.                 accepting = false;
  1846.                 stacking = false;
  1847.                 escrow=false;
  1848.  
  1849.                 try {
  1850.                     MoneyReceiver.staticData("from BV", m, " ");
  1851.                 }catch (Exception ex){ex.printStackTrace();}
  1852.  
  1853.               //  System.out.println("staticData"+ m);
  1854.  
  1855.             }
  1856.             return;
  1857.         }
  1858.        // System.out.println("checkStatus BV");
  1859.  
  1860.         checkStatus(receivingBufferListener);
  1861.  
  1862. //      System.out.println(checkStatus(receivingBufferListener));
  1863.     }
  1864.     public void doSomethingCashFlow(int[] receivingBufferListener, String answer) {
  1865.       if(CashFlow.isEscrow()){
  1866.  
  1867.           CashFlow.needReject=false;
  1868.  
  1869.           maxReplenishment=false;//.setVisible(false);
  1870.  
  1871.         if(Double.valueOf(getTotalAmount()).doubleValue()>maxSumma.doubleValue())
  1872.         {CashFlow.needReject=true;cashflow.reject();
  1873.             System.out.println("needReject!");
  1874.         return;}
  1875.          if(maxSumma.doubleValue() < CashFlow.getBillValue()){
  1876.              CashFlow.needReject=true;cashflow.reject();
  1877.              System.out.println("needReject!");
  1878.              return;
  1879.          }
  1880.           int m = 0;
  1881.           System.out.println("Запись в файл инкассации!");
  1882.           m=billTypeValidationCashFlow((int)CashFlow.getBillValue());
  1883.           System.out.println("from BV"+ m);
  1884.           if(m>0 && m<=500){
  1885.               System.out.println("from BV"+ m);
  1886.               CashFlow.escrow=false;
  1887.               CashFlow.needReject=false;
  1888.               CashFlow.billValue=0.0;
  1889.               try {
  1890.                   MoneyReceiver.staticData("from BV", m, " ");
  1891.               }catch (Exception ex){ex.printStackTrace();}
  1892.  
  1893.               //  System.out.println("staticData"+ m);
  1894.  
  1895.           }
  1896.  
  1897.          cashflow.stack();
  1898.       }
  1899. /*
  1900.         switch(receivingBufferListener[4]) {
  1901.             case 0x00: {
  1902.                 if (maxSumma.doubleValue() < 1) {
  1903.                     needReject = true;
  1904.                     reject();
  1905.                 }
  1906.                 if (Double.valueOf(getTotalAmount()).doubleValue() + 1 > maxSumma.doubleValue()) {
  1907.                     needReject = true;
  1908.                     reject();
  1909.                     System.out.println("needReject!!");
  1910.                 }
  1911.                 break;
  1912.             }
  1913.         }
  1914. */
  1915.     }
  1916. /*
  1917.   public static void main(String [] args){
  1918.       BillAcceptorWork work =new BillAcceptorWork();
  1919.       work.turnON_CashCodeID003();
  1920.       work.closeCOM();
  1921.   }
  1922. */
  1923.  
  1924. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement