/// <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); } }
/// <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); } }