public static TerminalTypes GetOneTerminalTypes(int id) { TerminalTypes termType = new TerminalTypes(); string sql = "select * from TerminalTypes where ID=" + id.ToString(); DataTable dt = null; try { SQLDBHelper sqlHelper = new SQLDBHelper(); dt = sqlHelper.Query(sql); } catch (Exception e) { throw e; } if (dt != null && dt.Rows.Count > 0) { termType.ID = Convert.ToInt32(dt.Rows[0]["ID"]); termType.Name = dt.Rows[0]["Name"].ToString(); termType.Price = Convert.ToDecimal(dt.Rows[0]["Price"]); if (dt.Rows[0]["Remark"] != null && dt.Rows[0]["Remark"] != DBNull.Value) { termType.Remark = dt.Rows[0]["Remark"].ToString(); } else { termType.Remark = string.Empty; } } return(termType); }
private HardwareConfiguration(string data) { var subcode = data.Substring(0, 2); if (subcode != "HG") { throw new InvalidDataException( string.Format("Expected sub-code of \"{0}\" but got \"{1}\".", "HG", subcode)); } if (!int.TryParse(data.Substring(2, 5), NumberStyles.None, CultureInfo.InvariantCulture, out _firmwareVersion)) { throw new InvalidDataException("Couldn't parse firmware version from hardware configuration data."); } if (!DateTime.TryParseExact(data.Substring(8, 10), "dd.MM.yyyy", CultureInfo.InvariantCulture, DateTimeStyles.None, out _firmwareDate)) { throw new InvalidDataException("Couldn't parse firmware date from hardware configuration data."); } // TODO: what does 18 represent? _terminalType = (TerminalTypes)data[19]; _keyboardType = (KeyboardTypes)data[20]; _displayType = (DisplayTypes)data[21]; _hostSerialParameters = data.Substring(22, 3); byte b; if (!byte.TryParse(data.Substring(25, 1), NumberStyles.None, CultureInfo.InvariantCulture, out b)) { throw new InvalidDataException("Couldn't parse host serial baud rate from hardware configuration data."); } _hostSerialBaudRate = BaudRates.Get(b); _terminalId = Util.CharToTerminalId(data[26]); // TODO: what does 27 represent? Maybe the network card type? if (!byte.TryParse(data.Substring(28, 1), NumberStyles.None, CultureInfo.InvariantCulture, out _fingerprintUnitType)) { throw new InvalidDataException("Couldn't parse fingerprint unit type from hardware configuration data."); } _fingerprintUnitMode = (FingerprintUnitModes)data[29]; if (!int.TryParse(data.Substring(30, 4), NumberStyles.None, CultureInfo.InvariantCulture, out _userDefinedField)) { throw new InvalidDataException("Couldn't parse user defined field from hardware configuration data."); } }
/// <summary> /// 处理铱星模块发送回来的MO信息 /// </summary> /// <param name="data"></param> private void HandleIridiumModelMOPayload(IridiumData data) { // 如果是正式的协议则以正常的方式处理 if (data.Length >= TX300Items.header_length) { // TX300通讯协议首字节必定大于等于17 // 卫星通讯协议首字节必定等于01 if (data.Payload[0] >= 17 && ProtocolTypes.IsTX300(data.Payload[2]) && TerminalTypes.IsTX300(data.Payload[3])) { // 根据卫星号码查询终端的Sim卡号码并将其填入包头结构里 using (var bll = new TerminalBLL()) { var terminal = bll.Find(f => f.TB_Satellite.CardNo.Equals(data.IMEI) && f.Delete == false); if (null != terminal) { var sim = terminal.Sim; sim += sim.Length < 11 ? "000" : ""; sim = "0" + sim; var s = CustomConvert.GetBytes(sim); Buffer.BlockCopy(s, 0, data.Payload, 9, s.Length); s = null; // 更新命令的MTMSN状态为返回状态 HandleData(new Sockets.AsyncUserDataBuffer() { Buffer = data.Payload, DataType = Sockets.AsyncUserDataType.ReceivedData, IP = "", PackageType = Sockets.AsyncDataPackageType.SAT, Port = 0, ReceiveTime = DateTime.Now, SocketHandle = 0 }); } else { ShowUnhandledMessage("Unbind satellite report data: " + CustomConvert.GetHex(data.Payload)); } } } else { HandleIridiumNewProtocolPackage(data); } // 统计铱星的接收数据次数和数据长度 HandleIridiumMOFlow(data); } data.Dispose(); }
public static bool UpdateTerminalTypes(TerminalTypes termType) { string sql = "update TerminalTypes set Name='" + termType.Name + "', Price=" + termType.Price + ", Remark='" + termType.Remark + "' where ID=" + termType.ID; try { SQLDBHelper sqlHelper = new SQLDBHelper(); int r = sqlHelper.ExecuteSql(sql); return(r > 0); } catch (Exception e) { throw e; } }
public static bool InsertTerminalTypes(TerminalTypes termType) { string sql = "insert into TerminalTypes(Name, Price, Remark) values ('" + termType.Name + "', " + termType.Price + ", '" + termType.Remark + "')"; try { SQLDBHelper sqlHelper = new SQLDBHelper(); int r = sqlHelper.ExecuteSql(sql); return(r > 0); } catch (Exception e) { throw e; } }
private TranslateResult GetTerminalTranslatedCode(ILexer lexer, TerminalTypes terminalType) { var terminals = _terminalCache[terminalType]; var result = new TranslateResult() { Code = " " }; var token = lexer.GetNextToken(); if (token.Type != TokenType.Keyword) { result.ErrorMessage = string.Format(ErrorMessageFormat, GetKeywordList(terminals), token.Text); return(result); } if (!terminals.ContainsKey((token.Text.ToLower()))) { result.ErrorMessage = $@"Keyword not defined: {token.Text}"; } else { var terminal = terminals[token.Text.ToLower()]; if (terminal.SupportingKeywords != null) { // consume supporting keywords for (var i = 0; i < terminal.SupportingKeywords.Length; i++) { var supportingKeyword = terminal.SupportingKeywords[i]; token = lexer.GetNextToken(); if (token.Type != TokenType.Keyword) { result.ErrorMessage = string.Format(ErrorMessageFormat, supportingKeyword, token.Text); return(result); } } } result.Code = terminal.TranslateTo; } return(result); }
private void ShowTerminals() { var totalRecords = 0; var pageIndex = "" == hidPageIndex.Value ? 1 : int.Parse(hidPageIndex.Value); var list = TerminalInstance.FindPageList <TB_Terminal>(pageIndex, PageSize, out totalRecords, f => f.Delete == false && f.HasBound == false && f.Type == TerminalType, "Number"); var totalPages = totalRecords / PageSize + (totalRecords % PageSize > 0 ? 1 : 0); string html = ""; if (totalRecords < 1) { html = "<tr><td colspan=\"6\">No records</tr>"; } else { var cnt = (pageIndex - 1) * PageSize; var n = (int?)null; foreach (var obj in list) { cnt++; var id = Utility.UrlEncode(Utility.Encrypt(obj.id.ToString())); html += "<tr>" + "<td style=\"text-align: center;\"><input type=\"radio\" name=\"satId\" id=\"cb_" + id + "\" /></td>" + "<td style=\"text-align: center;\">" + cnt + "</td>" + "<td><a>" + obj.Number + "</a></td>" + "<td>" + obj.Sim + "</td>" + "<td>" + (n == obj.Satellite ? "-" : obj.TB_Satellite.CardNo) + "</td>" + "<td>" + TerminalTypes.GetTerminalType(obj.Type.Value) + "</td>" + "<td></td>" + "</tr>"; } } tbodyBody.InnerHtml = html; divPagging.InnerHtml = ""; if (totalRecords > 0) { ShowPaggings(pageIndex, totalPages, totalRecords, "./terminals.aspx", divPagging); } }
public static List <TerminalTypes> GetMoreTerminalTypes(string where = "(1=1)") { List <TerminalTypes> termTypes = new List <TerminalTypes>(); string sql = "select * from TerminalTypes where " + where; DataTable dt = null; try { SQLDBHelper sqlHelper = new SQLDBHelper(); dt = sqlHelper.Query(sql); } catch (Exception e) { throw e; } if (dt != null && dt.Rows.Count > 0) { for (int i = 0; i < dt.Rows.Count; i++) { TerminalTypes termType = new TerminalTypes(); termType.ID = Convert.ToInt32(dt.Rows[i]["ID"]); termType.Name = dt.Rows[i]["Name"].ToString(); termType.Price = Convert.ToDecimal(dt.Rows[i]["Price"]); if (dt.Rows[i]["Remark"] != null && dt.Rows[i]["Remark"] != DBNull.Value) { termType.Remark = dt.Rows[i]["Remark"].ToString(); } else { termType.Remark = string.Empty; } termTypes.Add(termType); } } return(termTypes); }
private HardwareConfiguration(string data) { var subcode = data.Substring(0, 2); if (subcode != "HG") throw new InvalidDataException( string.Format("Expected sub-code of \"{0}\" but got \"{1}\".", "HG", subcode)); if (!int.TryParse(data.Substring(2, 5), NumberStyles.None, CultureInfo.InvariantCulture, out _firmwareVersion)) throw new InvalidDataException("Couldn't parse firmware version from hardware configuration data."); if (!DateTime.TryParseExact(data.Substring(8, 10), "dd.MM.yyyy", CultureInfo.InvariantCulture, DateTimeStyles.None, out _firmwareDate)) throw new InvalidDataException("Couldn't parse firmware date from hardware configuration data."); // TODO: what does 18 represent? _terminalType = (TerminalTypes)data[19]; _keyboardType = (KeyboardTypes)data[20]; _displayType = (DisplayTypes)data[21]; _hostSerialParameters = data.Substring(22, 3); byte b; if (!byte.TryParse(data.Substring(25, 1), NumberStyles.None, CultureInfo.InvariantCulture, out b)) throw new InvalidDataException("Couldn't parse host serial baud rate from hardware configuration data."); _hostSerialBaudRate = BaudRates.Get(b); _terminalId = Util.CharToTerminalId(data[26]); // TODO: what does 27 represent? Maybe the network card type? if (!byte.TryParse(data.Substring(28, 1), NumberStyles.None, CultureInfo.InvariantCulture, out _fingerprintUnitType)) throw new InvalidDataException("Couldn't parse fingerprint unit type from hardware configuration data."); _fingerprintUnitMode = (FingerprintUnitModes)data[29]; if (!int.TryParse(data.Substring(30, 4), NumberStyles.None, CultureInfo.InvariantCulture, out _userDefinedField)) throw new InvalidDataException("Couldn't parse user defined field from hardware configuration data."); }
/// <summary> /// 导出终端列表到excel /// </summary> /// <param name="bll"></param> /// <param name="excel"></param> private void ExportTerminalsToExcel(ExcelHandlerBLL bll, TB_ExcelHandler excel) { string source = "", data = ""; Application app = null; Workbook book = null; Worksheet sheet = null; try { app = new Application(); book = app.Workbooks.Open(EXCEL_PATH + EXCEL_TERMINALS); sheet = (Worksheet)book.ActiveSheet; app.Visible = false; app.AlertBeforeOverwriting = false; app.DisplayAlerts = false; using (var tbll = new TerminalBLL()) { using (var ebll = new EquipmentBLL()) { int line = 2; int cnt = 0; var n = (int?)null; var list = tbll.FindList(f => f.Delete == false); foreach (var obj in list) { var x = line + cnt; sheet.Cells[x, 1] = (cnt + 1); sheet.Cells[x, 2] = obj.Number; sheet.Cells[x, 3] = n == obj.Satellite ? "-" : obj.TB_Satellite.CardNo; sheet.Cells[x, 4] = string.IsNullOrEmpty(obj.Firmware) ? "-" : obj.Firmware; sheet.Cells[x, 5] = obj.Revision; sheet.Cells[x, 6] = TerminalTypes.GetTerminalType(obj.Type.Value); sheet.Cells[x, 7] = obj.ProductionDate.Value.ToString("yyyy/MM/dd"); var e = ebll.Find(d => d.Terminal == obj.id && d.Deleted == false); sheet.Cells[x, 8] = null == e ? "-" : ebll.GetFullNumber(e); var link = EverdigmUtils.GetOnlineStyle(obj.OnlineStyle, obj.OnlineTime, false); link = link.Substring(link.IndexOf('>') + 1); link = link.Substring(0, link.IndexOf('<')); sheet.Cells[x, 9] = string.IsNullOrEmpty(link) ? "-" : link; sheet.Cells[x, 10] = null == obj.OnlineTime ? "-" : obj.OnlineTime.Value.ToString("yyyy/MM/dd HH:mm"); cnt++; } } } // 另存为别的 var date = excel.CreateDate.Value.ToString("yyyyMMdd"); var path = Path.Combine(WEB_PATH, "files\\xls\\", date); if (!Directory.Exists(path)) { Directory.CreateDirectory(path); } source = path + "\\Terminals2Excel_" + excel.CreateDate.Value.ToString("yyyyMMdd") + ".xlsx"; if (File.Exists(source)) { File.Delete(source); } book.SaveAs(source); } catch (Exception e) { data = e.StackTrace; ShowUnhandledMessage(format("{0}Terminal to Excel handler error: {1}{2}{3}", Now, e.Message, Environment.NewLine, e.StackTrace)); } finally { // 关闭book if (null != book) { book.Close(); book = null; } // 关闭application if (null != app) { app.Quit(); app = null; } // 释放内存 GC.Collect(); GC.WaitForPendingFinalizers(); } var target = "../" + source.Replace(WEB_PATH, "").Replace("\\", "/"); bll.Update(f => f.id == excel.id, act => { act.Handled = true; act.Status = (byte)(string.IsNullOrEmpty(data) ? 0 : 1); act.Target = target; act.Data = data; }); }
private TerminalStatus(string data) { if (!byte.TryParse(data.Substring(0, 1), NumberStyles.None, CultureInfo.InvariantCulture, out _hardwareModel)) throw new InvalidDataException("Couldn't parse hardware model from terminal status data."); if (!byte.TryParse(data.Substring(1, 1), NumberStyles.None, CultureInfo.InvariantCulture, out _hardwareRevision)) throw new InvalidDataException("Couldn't parse hardware revision from terminal status data."); if (!int.TryParse(data.Substring(2, 5), NumberStyles.None, CultureInfo.InvariantCulture, out _firmwareVersion)) throw new InvalidDataException("Couldn't parse firmware version from terminal status data."); if (!DateTime.TryParseExact(data.Substring(7, 10), "yyMMddHHmm", CultureInfo.InvariantCulture, DateTimeStyles.None, out _timestamp)) throw new InvalidDataException("Couldn't parse timestamp from terminal status data."); _activeFunction = data[17]; _buffersFull = SynelNumericFormat.Convert(data.Substring(18, 3)); _buffersFaulty = SynelNumericFormat.Convert(data.Substring(21, 3)); _buffersTransmitted = SynelNumericFormat.Convert(data.Substring(24, 3)); _buffersEmpty = SynelNumericFormat.Convert(data.Substring(27, 3)); if (data[34] == 'K') { int mem; if (!int.TryParse(data.Substring(30, 4), NumberStyles.None, CultureInfo.InvariantCulture, out mem)) throw new InvalidDataException("Couldn't parse memory used from terminal status data."); _memoryUsed = mem * 1024; // assuming 'K' means KiB rather than KB } else { if (!int.TryParse(data.Substring(30, 4), NumberStyles.None, CultureInfo.InvariantCulture, out _memoryUsed)) throw new InvalidDataException("Couldn't parse memory used from terminal status data."); } _terminalType = (TerminalTypes)data[35]; _poweredOn = data[36] == '1'; // TODO: what does 37-38 represent? _userDefinedField = data.Substring(39, 4); _transportType = data[43] == 'T' ? TransportType.Tcp : data[43] == 'U' ? TransportType.Udp : 0; int i; if (!int.TryParse(data.Substring(44, 2), NumberStyles.None, CultureInfo.InvariantCulture, out i)) throw new InvalidDataException("Couldn't parse the polling interval from terminal status data."); _pollingInterval = TimeSpan.FromSeconds(i); _fingerprintUnitMode = (FingerprintUnitModes)data[46]; }
private void ShowTerminalsBinded(int pageIndex) { var totalRecords = 0; // 表达式 Expression <Func <TB_Equipment, bool> > expression = PredicateExtensions.True <TB_Equipment>(); // 必须是绑定了终端的设备 expression = expression.And(f => f.Deleted == false && f.Terminal != (int?)null); // 设备type //var type = ddlEquipmentType.SelectedValue; //if (!string.IsNullOrEmpty(type)) //{ // expression = expression.And(a => a.TB_EquipmentModel.Type == ParseInt(type)); //} // 设备model //var model = selModel.Value; //if (!string.IsNullOrEmpty(model)) { expression = expression.And(a => a.Model == ParseInt(model)); } // 是否绑定卫星 // 是否绑定卫星 -1:ignore,0:not,1:bound var sat = int.Parse(selectedSatellite.Value); spanSatellite.InnerHtml = "Satellite:" + GotSelectedType(sat); if (sat >= 0) { if (sat == 0) { expression = expression.And(a => a.TB_Terminal.Satellite == null); } else { expression = expression.And(a => a.TB_Terminal.Satellite != null); } } // 号码查询 var query = txtNumber.Value.Trim(); if (!string.IsNullOrEmpty(query)) { expression = expression.And(a => a.Number.Contains(query) || a.TB_Terminal.Number.Contains(query) || a.TB_Terminal.TB_Satellite.CardNo.Contains(query)); } var list = EquipmentInstance.FindPageList <TB_Equipment>(pageIndex, PageSize, out totalRecords, expression, "Number"); var totalPages = totalRecords / PageSize + (totalRecords % PageSize > 0 ? 1 : 0); string html = ""; if (totalRecords < 1) { html = "<tr><td colspan=\"13\">No records, You can change condition and try again or " + " <a href=\"./terminal_register.aspx\">ADD</a> new one.</td></tr>"; } else { var cnt = (pageIndex - 1) * PageSize; foreach (var obj in list) { cnt++; var id = Utility.UrlEncode(Utility.Encrypt(obj.id.ToString())); html += "<tr>" + //"<td style=\"text-align: center;\" class=\"in-tab-txt-rb\"><input type=\"checkbox\" id=\"cb_" + id + "\" /></td>" + "<td style=\"text-align: center;\" class=\"in-tab-txt-rb\">" + cnt + "</td>" + "<td class=\"in-tab-txt-rb\" style=\"text-align: left !important;\"><a href=\"./terminal_register.aspx?key=" + id + "\" >" + CheckQueryString(obj.TB_Terminal.Number) + "</a></td>" + "<td class=\"in-tab-txt-rb\" style=\"text-align: left !important; cursor: pointer;\" title=\"Click to show advanced options\">" + CheckQueryString(TerminalInstance.GetSatellite(obj.TB_Terminal, true)) + "</td>" + "<td class=\"in-tab-txt-rb\">" + obj.TB_Terminal.Firmware + "</td>" + "<td class=\"in-tab-txt-rb\">" + obj.TB_Terminal.Revision.ToString() + "</td>" + "<td class=\"in-tab-txt-rb\" style=\"text-align: left !important;\">" + TerminalTypes.GetTerminalType(obj.TB_Terminal.Type.Value) + "</td>" + "<td class=\"in-tab-txt-rb\" style=\"text-align: left !important;\">" + obj.TB_Terminal.ProductionDate.Value.ToString("yyyy/MM/dd") + "</td>" + "<td class=\"in-tab-txt-rb\">yes</td>" + "<td class=\"in-tab-txt-rb\" style=\"text-align: left !important;\">" + CheckQueryString(GetEquipment(obj.TB_Terminal, obj)) + "</td>" + "<td class=\"in-tab-txt-b\">" + Utility.GetOnlineStyle(obj.OnlineStyle, obj.OnlineTime, false) + "</td>" + //"<td class=\"in-tab-txt-rb\">" + obj.TB_Terminal.Sim + "</td>" + "<td class=\"in-tab-txt-b\"></td>" + "</tr>"; } } ShowFooter(totalRecords, pageIndex, totalPages, html); }
private TerminalStatus(string data) { if (!byte.TryParse(data.Substring(0, 1), NumberStyles.None, CultureInfo.InvariantCulture, out _hardwareModel)) { throw new InvalidDataException("Couldn't parse hardware model from terminal status data."); } if (!byte.TryParse(data.Substring(1, 1), NumberStyles.None, CultureInfo.InvariantCulture, out _hardwareRevision)) { throw new InvalidDataException("Couldn't parse hardware revision from terminal status data."); } if (!int.TryParse(data.Substring(2, 5), NumberStyles.None, CultureInfo.InvariantCulture, out _firmwareVersion)) { throw new InvalidDataException("Couldn't parse firmware version from terminal status data."); } if (!DateTime.TryParseExact(data.Substring(7, 10), "yyMMddHHmm", CultureInfo.InvariantCulture, DateTimeStyles.None, out _timestamp)) { throw new InvalidDataException("Couldn't parse timestamp from terminal status data."); } _activeFunction = data[17]; _buffersFull = SynelNumericFormat.Convert(data.Substring(18, 3)); _buffersFaulty = SynelNumericFormat.Convert(data.Substring(21, 3)); _buffersTransmitted = SynelNumericFormat.Convert(data.Substring(24, 3)); _buffersEmpty = SynelNumericFormat.Convert(data.Substring(27, 3)); if (data[34] == 'K') { int mem; if (!int.TryParse(data.Substring(30, 4), NumberStyles.None, CultureInfo.InvariantCulture, out mem)) { throw new InvalidDataException("Couldn't parse memory used from terminal status data."); } _memoryUsed = mem * 1024; // assuming 'K' means KiB rather than KB } else { if (!int.TryParse(data.Substring(30, 4), NumberStyles.None, CultureInfo.InvariantCulture, out _memoryUsed)) { throw new InvalidDataException("Couldn't parse memory used from terminal status data."); } } _terminalType = (TerminalTypes)data[35]; _poweredOn = data[36] == '1'; // TODO: what does 37-38 represent? _userDefinedField = data.Substring(39, 4); _transportType = data[43] == 'T' ? TransportType.Tcp : data[43] == 'U' ? TransportType.Udp : 0; int i; if (!int.TryParse(data.Substring(44, 2), NumberStyles.None, CultureInfo.InvariantCulture, out i)) { throw new InvalidDataException("Couldn't parse the polling interval from terminal status data."); } _pollingInterval = TimeSpan.FromSeconds(i); _fingerprintUnitMode = (FingerprintUnitModes)data[46]; }