예제 #1
0
 public bool TryGetPrinterFlags(long nPasswd, out StrokePrinterFlags printerFlags)
 {
     printerFlags = new StrokePrinterFlags();
     try
     {
         printerFlags = GetPrinterFlags(nPasswd);
         return(true);
     }
     catch (Exception)
     {
         return(false);
     }
 }
예제 #2
0
        public StrokePrinterFlags GetPrinterFlags(long nPasswd)
        {
            WriteDebugLine("GetPrinterFlags");
            var printerFlags = new StrokePrinterFlags();

            ExecuteCommand(0x10, nPasswd);
            // режим ККМ: младший полубайт байта ответа 5
            printerFlags.Mode = (byte)(Response[5] & 0x0F);
            // статус режима: старший полубайт байта ответа 5
            printerFlags.StateMode = (byte)(Response[5] >> 4);
            // подрежим ФР: байт ответа 6
            printerFlags.Submode = (byte)Response[6];

            printerFlags.slipPaperPresent = (byte)(Response[3] & 0x0C) == 0x0C;
            printerFlags.drawerOpened     = (Response[4] & 0x08) == 0x08;

            return(printerFlags);

/*
 *
 *          int retries = 0;
 *          var printerFlags = new StrokePrinterFlags();
 *          do
 *          {
 *              try
 *              {
 *                  ExecuteCommand(0x10, nPasswd);
 *                  // режим ККМ: младший полубайт байта ответа 5
 *                  printerFlags.Mode = (byte)(Response[5] & 0x0F);
 *                  // статус режима: старший полубайт байта ответа 5
 *                  printerFlags.StateMode = (byte)(Response[5] >> 4);
 *                  // подрежим ФР: байт ответа 6
 *                  printerFlags.Submode = (byte)Response[6];
 *
 *                  printerFlags.slipPaperPresent = (byte)(Response[3] & 0x0C) == 0x0C;
 *                  printerFlags.drawerOpened = (Response[4] & 0x08) == 0x08;
 *
 *                  return printerFlags;
 *              }
 *              catch (TimeoutException)
 *              {
 *                  if (retries++ > MAX_RETRIES_COUNT)
 *                      throw;
 *                  System.Threading.Thread.Sleep(T1);
 *              }
 *          }
 *          while (true);
 */
        }