Ejemplo n.º 1
0
 /// <summary>
 /// آماده سازی جمع کل
 /// </summary>
 /// <param name="price">مبلغ</param>
 /// <param name="symbol">علامت</param>
 /// <param name="lineNo">خط نمایشگر</param>
 /// <param name="shouldbeClear">پیش از ارسال پاکسازی کند؟</param>
 /// <returns></returns>
 /// <remarks></remarks>
 public static byte[] WrapTotalPrice(string price, LCDSymbol symbol = LCDSymbol.RLS, byte lineNo = 1,
                                     bool shouldbeClear             = false)
 {
     try
     {
         if (!Assembly.GetCallingAssembly().FullName.Contains("PublicKeyToken=" + ConstToken))
         {
             return(null);
         }
         if (price.Trim().Length > 10 && symbol == LCDSymbol.None)
         {
             return(WrapArrayToBeShown(ReverseArray(new byte[]
             {
                 48, 102, 105, 75, 102, 73, 170, 108,
                 75, 98, 99, 131
             }), lineNo, shouldbeClear));
         }
         if (price.Trim().Length > 6 && (symbol == LCDSymbol.RLS))
         {
             if (price.Trim().Length > 10)
             {
                 return(WrapArrayToBeShown(ReverseArray(new byte[]
                 {
                     48, 102, 105, 75, 102, 73, 170, 108,
                     75, 98, 99, 131
                 }), lineNo, shouldbeClear));
             }
             symbol = LCDSymbol.None;
         }
         var arrayOfPrice = price.Trim().ToCharArray();
         var resultValue  = new byte[price.Trim().Length];
         //ساخت واژه فی از سمت راست
         var lsidearray = WrapTextToBeReady("جمع کل", false);
         var lofresult  = WrapArrayToBeShown(lsidearray, lineNo, shouldbeClear, false);
         //ساخت رشته آماده ارسال
         for (int i = 0; i < price.Trim().Length; i++)
         {
             resultValue[price.Trim().Length - 1 - i] = FindSubsVal((byte)arrayOfPrice[i]);
             //resultValue[i] = FindSubsVal((byte)arrayOfPrice[i]);
         }
         var rofresult = new byte[] {};
         if (symbol == LCDSymbol.None)
         {
             rofresult = WrapArrayToBeShown(resultValue, lineNo, false);
         }
         if (symbol == LCDSymbol.RLS)
         {
             var finalvalue = new byte[resultValue.Length + 4];
             Array.Copy(resultValue, 0, finalvalue, 0, resultValue.Length);
             finalvalue[resultValue.Length]     = 102;
             finalvalue[resultValue.Length + 1] = 169;
             finalvalue[resultValue.Length + 2] = 73;
             finalvalue[resultValue.Length + 3] = 150;
             rofresult = WrapArrayToBeShown(finalvalue, lineNo, false);
         }
         var finalresult = new byte[rofresult.Length + lofresult.Length];
         Array.Copy(lofresult, 0, finalresult, 0, lofresult.Length);
         Array.Copy(rofresult, 0, finalresult, lofresult.Length, rofresult.Length);
         return(finalresult);
     }
     catch (Exception e)
     {
         Console.WriteLine(e.Message);
         return(null);
     }
 }
Ejemplo n.º 2
0
        /// <summary>
        /// آماده سازی عدد جهت نمایش
        /// </summary>
        /// <param name="number">عدد جهت نمایش</param>
        /// <param name="symbol">نوع عدد</param>
        /// <param name="showpoint">نمایش ممیز</param>
        /// <returns>آرایه خروجی</returns>
        /// <remarks></remarks>
        public static byte[] WrapNumberToBeReady(decimal number, LCDSymbol symbol = LCDSymbol.None,
                                                 bool showpoint = true)
        {
            try
            {
                if (!Assembly.GetCallingAssembly().FullName.Contains("PublicKeyToken=" + ConstToken))
                {
                    return(null);
                }
                string strPrice = !showpoint?String.Format("{0:0}", number) : Convert.ToString(number);

                if (strPrice.Length > 15 && symbol == LCDSymbol.None)
                {
                    return(ReverseArray(new byte[]
                    {
                        48, 102, 105, 75, 102, 73, 170, 108,
                        75, 98, 99, 131
                    }));
                }
                if (strPrice.Length > 11 && (symbol == LCDSymbol.RLS || symbol == LCDSymbol.Kg))
                {
                    return(ReverseArray(new byte[]
                    {
                        48, 102, 105, 75, 102, 73, 170, 108,
                        75, 98, 99, 131
                    }));
                }
                if (strPrice.Length > 12 && symbol == LCDSymbol.Gr)
                {
                    return(ReverseArray(new byte[]
                    {
                        48, 102, 105, 75, 102, 73, 170, 108,
                        75, 98, 99, 131
                    }));
                }
                var arrayOfPrice = strPrice.ToCharArray();
                var resultValue  = new byte[strPrice.Length];
                for (int i = 0; i < strPrice.Length; i++)
                {
                    resultValue[strPrice.Length - 1 - i] = FindSubsVal((byte)arrayOfPrice[i]);
                    //xresultValue[i] = FindSubsVal((byte) arrayOfPrice[i]);
                }
                if (symbol == LCDSymbol.None)
                {
                    return(resultValue);
                }
                if (symbol == LCDSymbol.RLS)
                {
                    var finalvalue = new byte[resultValue.Length + 4];
                    Array.Copy(resultValue, 0, finalvalue, 0, resultValue.Length);
                    finalvalue[resultValue.Length]     = 102;
                    finalvalue[resultValue.Length + 1] = 169;
                    finalvalue[resultValue.Length + 2] = 73;
                    finalvalue[resultValue.Length + 3] = 150;
                    return(finalvalue);
                }
                if (symbol == LCDSymbol.Kg)
                {
                    var finalvalue = new byte[resultValue.Length + 4];
                    Array.Copy(resultValue, 0, finalvalue, 0, resultValue.Length);
                    finalvalue[resultValue.Length]     = 147;
                    finalvalue[resultValue.Length + 1] = 170;
                    finalvalue[resultValue.Length + 2] = 152;
                    finalvalue[resultValue.Length + 3] = 167;
                    return(finalvalue);
                }
                if (symbol == LCDSymbol.Gr)
                {
                    var finalvalue = new byte[resultValue.Length + 3];
                    Array.Copy(resultValue, 0, finalvalue, 0, resultValue.Length);
                    finalvalue[resultValue.Length]     = 49;
                    finalvalue[resultValue.Length + 1] = 103;
                    finalvalue[resultValue.Length + 2] = 154;
                    return(finalvalue);
                }
                return(null);
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
                return(null);
            }
        }