private boolean detectCasherType()
    {
        String table = this.getBillTable();
        int n = 0;

        if (table.length() == 240)
        {
            int k = 0;
            String nom = "";
            String curNameReal = "";
            String curName = "";
            String curCode = "";

            for (int i=0; i<240; i=i+10)
            {
                nom = "";
                curNameReal = "";
                curName = "";
                curCode = null;
                String name = table.substring(i+2,i+8);
                if (!name.equals("000000"))
                {
                    curNameReal = HexTools.hexToAscii(name);
                    curCode = this.getCurrencyCodeByName(curNameReal);
                }

                if (curCode != null) // валидная валюта
                {
                    curName = this.getCurrencyNameByCode(curCode);
                    //log("curName:"+curName);
                    this.allowCurrencyName.put(curName,curCode);
                    int dig = Integer.parseInt(table.substring(i+9,i+10));
                    String zeroes = (dig > 0) ? String.format("%0" + dig + "d", 0) : "";
                    //log("sub0:"+table.substring(i,i+2)+" | sub1:"+table.substring(i+9,i+10));
                    nom = Integer.parseInt(table.substring(i,i+2)) + zeroes; // вещ. + нолики-десятки
                    //log("nom:"+nom);
                    this.denominationMap.put(k, new String[]{curNameReal, curName, curCode, nom});
                    n++;
                }
                else
                {
                    if (curNameReal.length()==0)
                        curNameReal = "   ";
                    curName = "   ";
                    curCode = "   ";
                    this.denominationMap.put(k, new String[]{"", "", "", ""});
                }
                k++;
            }
        }

        return (n>0) ? true : false;
    }