Создание программного обеспечения организации учета и контроля парковок на платных стоянках посредством СМС-услуг
Анализ теоретических сведений и программных инструментов для разработки системы СМС-парковки. Разработка алгоритмов и программы автоматизированной системы, проектирование ее базы данных. Особенности общей структуры пользовательского интерфейса программы.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | дипломная работа |
Язык | русский |
Дата добавления | 26.05.2018 |
Размер файла | 2,0 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Для эксплуатации ЭВМ следует предусматривать следующие помещения:
· машинный зал, помещение для размещения сервисной и периферийной аппаратуры, помещение для хранения запасных деталей, инструментов, приборов (ЗИП);
· помещения для размещения приточно-вытяжных вентиляторов;
· помещение для персонала;
· помещение для приема-выдачи информации.
Основные помещения ВЦ располагаются в непосредственной близости друг от друга. Их оборудуют вентиляцией и искусственным освещением. К помещению машинного зала и хранения магнитных носителей информации предъявляются особые требования. Площадь машинного зала должна соответствовать площади, необходимой по заводским техническим условиям данного типа ЭВМ.
Высота зала над технологическим полом до подвесного потолка должна быть 3-3,5м. Расстояние между подвесным и основным потолками при этом должно быть 0,5-0,8м. Высоту подпольного пространства принимают равной 0,2-0,6м.
В ВЦ, как правило, применяется боковое естественное освещение. Рабочие комнаты и кабинеты должны иметь естественное освещение. В остальных помещениях допускается искусственное освещение.
В тех случаях, когда одного естественного освещения не хватает, устанавливается совмещенное освещение. При этом дополнительное искусственное освещение применяется не только в темное, но и в светлое время суток.
Искусственное освещение по характеру выполняемых задач делится на рабочее, аварийное, эвакуационное [13].
Рациональное цветовое оформление помещения направлено на улучшение санитарно-гигиенических условий труда, повышение его производительности и безопасности. Окраска помещений ВЦ влияет на нервную систему человека, его настроение, и в конечном счете на производительность труда. Основные производственные помещения целесообразно окрашивать в соответствии с цветом технических средств. Освещение помещения и оборудования должно быть мягким, без блеска.
Снижение шума, создаваемого на рабочих местах ВЦ внутренними источниками, а также шума, проникающего извне, является очень важной задачей. Снижение шума в источнике излучения можно обеспечить применением упругих прокладок между основанием машины, прибора и опорной поверхностью. В качестве прокладок используются резина, войлок, пробка, различной конструкции амортизаторы. Под настольные шумящие аппараты можно подкладывать мягкие коврики из синтетических материалов, а под ножки столов, на которых они установлены - прокладки из мягкой резины, войлока, толщиной 6-8мм. Крепление прокладок возможно путем приклейки их к опорным частям.
Возможно также применение звукоизолирующих кожухов, которые не мешают технологическому процессу. Не менее важным для снижения шума в процессе эксплуатации является вопрос правильной и своевременной регулировки, смазывания и замены механических узлов шумящего оборудования [14].
Рациональная планировка помещения, размещения оборудования в ВЦ является важным фактором, позволяющим снизить шум при существующем оборудовании ЭВМ. При планировке ВЦ машинный зал и помещение для сервисной аппаратуры необходимо располагать вдали от шумящего и вибрирующего оборудования.
Снижение уровня шума, проникающего в производственное помещение извне, может быть достигнуто увеличением звукоизоляции ограждающих конструкций, уплотнением по периметру притворов окон, дверей.
Таким образом для снижения шума создаваемого на рабочих местах внутренними источниками, а также шума, проникающего извне, следует:
· ослабить шум самих источников (применение экранов, звукоизолирующих кожухов);
· снизить эффект суммарного воздействия отраженных звуковых волн (звукопоглощающие поверхности конструкций);
· применять рациональное расположение оборудования;
· использовать архитектурно-планировочные и технологические решения изоляции источников шума.
2.5 Противопожарная защита [13]
Пожары в ВЦ представляют особую опасность, так как сопряжены с большими материальными потерями. Характерная особенность ВЦ - небольшие площади помещений. Как известно, пожар может возникнуть при взаимодействии горючих веществ, окисления и источников зажигания. В помещениях ВЦ присутствуют все три основные фактора, необходимые для возникновения пожара.
Горючими компонентами на ВЦ являются: строительные материалы для акустической и эстетической отделки помещений, перегородки, двери, полы, перфокарты и перфоленты, изоляция кабелей и др.
Противопожарная защита - это комплекс организационных и технических мероприятий, направленных на обеспечение безопасности людей, на предотвращение пожара, ограничение его распространения, а также на создание условий для успешного тушения пожара.
Источниками зажигания в ВЦ могут быть электронные схемы от ЭВМ, приборы, применяемые для технического обслуживания, устройства электропитания, кондиционирования воздуха, где в результате различных нарушений образуются перегретые элементы, электрические искры и дуги, способные вызвать возгорание горючих материалов.
В современных ЭВМ имеет место быть очень высокая плотность размещения элементов электронных схем. В непосредственной близости друг от друга располагаются соединительные провода, кабели. При протекании по ним электрического тока выделяется значительное количество теплоты. При этом возможно оплавление изоляции. Для отвода избыточной теплоты от ЭВМ служат системы вентиляции и кондиционирования воздуха. При постоянном действии эти системы представляют собой дополнительную пожарную опасность.
Энергоснабжение ВЦ осуществляется от трансформаторной станции и двигатель-генераторных агрегатов. На трансформаторных подстанциях особую опасность представляют трансформаторы с масляным охлаждением. В связи с этим предпочтение следует отдавать сухим трансформаторам.
Пожарная опасность двигатель-генераторных агрегатов обусловлена возможностью коротких замыканий, перегрузки, электрического искрения. Для безопасной работы необходим правильный расчет и выбор аппаратов защиты. При проведении обслуживающих, ремонтных и профилактических работ используются различные смазочные вещества, легковоспламеняющиеся жидкости, прокладываются временные электропроводники, ведется пайка и чистка отдельных узлов. Возникает дополнительная пожарная опасность, требующая дополнительных мер пожарной защиты. В частности, при работе с паяльником следует использовать несгораемую подставку с несложными приспособлениями для уменьшения потребляемой мощности в нерабочем состоянии [13].
Для большинства помещений ВЦ установлена категория пожарной опасности В.
Одной из наиболее важных задач пожарной защиты является защита строительных помещений от разрушений и обеспечение их достаточной прочности в условиях воздействия высоких температур при пожаре. Учитывая высокую стоимость электронного оборудования ВЦ, а также категорию его пожарной опасности, здания для ВЦ и части здания другого назначения, в которых предусмотрено размещение ЭВМ, должны быть 1 и 2 степени огнестойкости.
Для изготовления строительных конструкций используются, как правило, кирпич, железобетон, стекло, металл и другие негорючие материалы. Применение дерева должно быть ограничено, а в случае использования, необходимо пропитывать его огнезащитными составами. В ВЦ противопожарные преграды в виде перегородок из несгораемых материалов устанавливают между машинными залами.
К средствам тушения пожара, предназначенных для локализации небольших возгораний, относятся пожарные стволы, внутренние пожарные водопроводы, огнетушители, сухой песок, асбестовые одеяла и т.п.
В зданиях ВЦ пожарные краны устанавливаются в коридорах, на площадках лестничных клеток и входов. Вода используется для тушения пожаров в помещениях программистов, библиотеках, вспомогательных и служебных помещениях. Применение воды в машинных залах ЭВМ, хранилищах носителей информации, помещениях контрольно-измерительных приборов ввиду опасности повреждения или полного выхода из строя дорогостоящего оборудования возможно в исключительных случаях, когда пожар принимает угрожающе крупные размеры. При этом количество воды должно быть минимальным, а устройства ЭВМ необходимо защитить от попадания воды, накрывая их брезентом или полотном.
Для тушения пожаров на начальных стадиях широко применяются огнетушители. По виду используемого вещества огнетушители подразделяются на следующие основные группы:
· Пенные огнетушители, применяются для тушения горящих жидкостей, различных материалов, конструктивных элементов и оборудования, кроме электрооборудования, находящегося под напряжением.
· Газовые огнетушители, применяются для тушения жидких и твердых веществ, а также электроустановок, находящихся под напряжением.
· В производственных помещениях ВЦ применяются главным образом углекислотные огнетушители, достоинством которых является высокая эффективность тушения пожара, сохранность электронного оборудования, диэлектрические свойства углекислого газа, что позволяет использовать эти огнетушители даже в том случае, когда не удается обесточить электроустановку сразу.
Для обнаружения начальной стадии загорания и оповещения службы пожарной охраны используют системы автоматической пожарной сигнализации (АПС). Кроме того, они могут самостоятельно приводить в действие установки пожаротушения, когда пожар еще не достиг больших размеров. Системы АПС состоят из пожарных извещателей, линий связи и приемных пультов (станций).
Эффективность применения систем АПС определяется правильным выбором типа извещателей и мест их установки. При выборе пожарных извещателей необходимо учитывать конкретные условия их эксплуатации: особенности помещения и воздушной среды, наличие пожарных материалов, характер возможного горения, специфику технологического процесса и т.п.
В соответствии с “Типовыми правилами пожарной безопасности для промышленных предприятий”, залы ЭВМ, помещения для внешних запоминающих устройств, подготовки данных, сервисной аппаратуры, архивов, копировально-множительного оборудования и т.п. необходимо оборудовать дымовыми пожарными извещателями. В этих помещениях в начале пожара при горении различных пластмассовых, изоляционных материалов и бумажных изделий выделяется значительное количество дыма и мало теплоты.
В других помещениях ВЦ, в том числе в машинных залах дизель-генераторов и лифтов, трансформаторных и кабельных каналах, воздуховодах допускается применение тепловых пожарных извещателей.
Объекты ВЦ, кроме АПС, необходимо оборудовать установками стационарного автоматического пожаротушения. Наиболее целесообразно применять в ВЦ установки газового тушения пожара, действие которых основано на быстром заполнении помещения огнетушащим газовым веществом с резким снижением содержания в воздухе кислорода.
Пожарам в ВЦ должно уделяться особое внимание, так как пожары в ВЦ сопряжены с опасностью для человеческой жизни и большими материальными потерями [14].
Заключение
В процессе написания выпускной квалификационной работы были проделаны следующие действия:
1. Подробно изучен весь процесс работы автопарковок города
2. Были изучены процесс доступа к GSM модемам из среды программирования Delphi 2010, управление процессом отправки и получения СМС сообщений посредством данной системы.
3. Исходя из потребностей, были изучены новые компоненты Delphi 2010, применены при разработке программного средства.
4. На основе полученных данных была спроектирована база данных, составлены отчеты.
5. После получения информации о предпочтениях и требованиях оператора парковки, было создано программное обеспечение.
6. С учетом поправок и замечаний программа была доведена до конечной версии, которая наиболее максимально удовлетворяет требованиям управляющего автопарковки.
Так как программа была разработана в сотрудничестве с управляющим сотрудником автопарковок, я считаю, что этот программный продукт может быть с успехом применен в автопарковках Узбекистана. Он позволит упростить труд оператора автопарковок, повысить эффективность его работы, сделать удобным управление автопарковками.
В результате работы было разработано программное обеспечене организации учета и контроля парковок на платных стоянках посредством СМС услуг, которое в значительной степени упростит процесс пополнения бюджета города, повышение комфорта для автовладельцев, минимализации участия персонала, экономия времени для автовладельцев.
Литература
1. Каримов И.А. "Мировой финансово-экономический кризис, пути и меры по его преодолению в условиях Узбекистана", Ташкент, Узбекистон, 2009.
2. Каримов И.А. Обеспечить поступательное и устойчивое развитие страны - важнейшая наша задачи. - Т.17. - Т, Ўзбекистон - 2009г. - 56 с.
3. Фаронов В.В. "Delphi 7. Учебный курс", М.: Изд. Молчалова С.В., 2004г. - 376 с.
4. Бойко В.В., Савинков В.М. Проектирование баз данных информационных систем. - М.: Финансы и статистика, 1989 г. - 508 с.
5. Мартин Дж. Организация баз данных в вычислительных системах. - М.: Мир, 2000г. - 254 с.
6. Каратыгин С.А. Аccеss 2000. Руководство ползователя с примерами. - М.: Лаборатория Базовых Знаний, 2000г. - 376 с.
7. Бекаревич Ю.Б., Пушкина Н.В. СУБД Аccеss для Windows XP в примерах. СПб.: ВНУ-Санкт-Петербург. 2008. - 400 с.
8. Энсор Д. Проектирование баз данных К.: ВНВ-2000 г. - 265с.
9. Диго С.М. "Базы данных Проектирование и использование". издательство "Финансы и статистика", 2005 г. - 592 с.
10. Коннолли Т., Бегг К., Страчан А. Базы данных: проектирование, реализация, сопровождение. Теория и практика, 2-е изд.: Пер. с англ.: Уч. пос. - М.: Изд. дом "Вильямс", 2000. - 1120 с.
11. Титоренко Г.А. Информационные технологии управления.М., Юнити: 2002. - 221 с.
12. Мешков В.А. "Генератор отчетов Fast Report. Руководство пользователя", М. Мир, 2004 г. - 145с.
13. Мельникова В.В. Защита информации в компьютерных системах. Финансы и статистика, 1997г. - 866 с.
14. Кудратов А., Ганиев Т. и др. Безопасность жизнедеятельности, Тошкент, Ало?ачи, 2005
15. http://www.lvmtechnology.com Автоматизированная система управления парковками
16. http://habrahabr.ru Отправка SMS с 3G/GSM модема
17. E. Бадло, С. Бадло. OPC клиент-сервер своими руками. Часть 2 или… Интеграция GSM модема в любую SCADA. - Радиолюбитель, 2010, №6, с.22-26.
18. http://www.segodnya.ua Sms-парковки появились только в центре Киева
Приложение. Код программы
unit MainForm;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Grids, DBGrids, ComCtrls, ExtCtrls, Menus, StdCtrls, ImgList, ToolWin,
DBCtrls, XPMan,
{$IFDEF ASDLL} GSM_Main, {$ENDIF}
GSM_Intf, Spin;
type
TForm1 = class (TForm)
StatusBar1: TStatusBar;
MainMenu1: TMainMenu;
N1: TMenuItem;
N2: TMenuItem;
PageControl1: TPageControl;
TabSheet1: TTabSheet;
TabSheet2: TTabSheet;
TabSheet3: TTabSheet;
DBGrid1: TDBGrid;
ControlBar1: TControlBar;
ToolBar1: TToolBar;
ToolButton1: TToolButton;
ToolButton2: TToolButton;
ImageList1: TImageList;
ComboBox1: TComboBox;
DBCheckBox1: TDBCheckBox;
XPManifest1: TXPManifest;
Label1: TLabel;
ControlBar2: TControlBar;
ToolBar2: TToolBar;
ToolButton4: TToolButton;
ToolButton5: TToolButton;
ToolButton6: TToolButton;
ComboBox2: TComboBox;
DBGrid2: TDBGrid;
Memo: TMemo;
Panel1: TPanel;
InitializationBtn: TButton;
Splitter1: TSplitter;
ScanSerialPortsBtn: TButton;
OpenBtn: TButton;
PortsBox: TComboBox;
DeviceInfoBtn: TButton;
GetCurrentPortSettingsBtn: TButton;
GroupBox1: TGroupBox;
Label2: TLabel;
Label3: TLabel;
PhoneNumberEdit: TEdit;
SmsTextEdit: TEdit;
SendSmsBtn: TButton;
ConfirmedCB: TCheckBox;
TransCB: TCheckBox;
FinalizationBtn: TButton;
Button4: TButton;
GroupBox3: TGroupBox;
Label4: TLabel;
MemTypesCB: TComboBox;
IsMemoryTypeExistsBtn: TButton;
MemoryStatusBtn: TButton;
ReadFromMemoryBtn: TButton;
MessIndexSE: TSpinEdit;
GetMessageInfoBtn: TButton;
DeleteMessageBtn: TButton;
ClearMemoryBtn: TButton;
Timer1: TTimer;
ToolButton7: TToolButton;
Label5: TLabel;
Label6: TLabel;
DateTimePicker2: TDateTimePicker;
DateTimePicker1: TDateTimePicker;
ToolButton8: TToolButton;
Timer2: TTimer;
CheckBox1: TCheckBox;
ToolButton9: TToolButton;
procedure ToolButton1Click (Sender: TObject);
procedure ToolButton2Click (Sender: TObject);
procedure DBGrid1DrawColumnCell (Sender: TObject; const Rect: TRect;
DataCol: Integer; Column: TColumn; State: TGridDrawState);
procedure ComboBox1Change (Sender: TObject);
procedure ToolButton6Click (Sender: TObject);
procedure InitializationBtnClick (Sender: TObject);
procedure ScanSerialPortsBtnClick (Sender: TObject);
procedure FinalizationBtnClick (Sender: TObject);
procedure Button4Click (Sender: TObject);
procedure OpenBtnClick (Sender: TObject);
procedure DeviceInfoBtnClick (Sender: TObject);
procedure GetCurrentPortSettingsBtnClick (Sender: TObject);
procedure SendSmsBtnClick (Sender: TObject);
procedure IsMemoryTypeExistsBtnClick (Sender: TObject);
procedure MemoryStatusBtnClick (Sender: TObject);
procedure ReadFromMemoryBtnClick (Sender: TObject);
procedure GetMessageInfoBtnClick (Sender: TObject);
procedure DeleteMessageBtnClick (Sender: TObject);
procedure ClearMemoryBtnClick (Sender: TObject);
procedure Timer1Timer (Sender: TObject);
procedure Timer2Timer (Sender: TObject);
procedure ToolButton9Click (Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
procedure Print (const aStr: AnsiString); overload;
procedure Print (const aFunc: AnsiString; aResultCode: DWORD); overload;
end;
var
Form1: TForm1;
implementation
uses datamodul, edit_view;
{$R *. dfm}
procedure DoSmsReceived (aMemoryType: DWORD; aMessageID: DWORD); stdcall;
begin
Form1. Print (' [СМС]: MemType='+IntToStr (aMemoryType) +', MessID='+IntToStr (aMessageID));
end;
procedure DoRingReceived (aFromPhone: PChar; aSize: DWORD); stdcall;
begin
Form1. Print ('Ring received: '+aFromPhone);
end;
procedure TForm1. Print (const aStr: AnsiString);
begin
Memo. Lines. Add (aStr);
Memo. Invalidate;
end;
procedure TForm1. Button4Click (Sender: TObject);
begin
Memo. Clear;
end;
procedure TForm1. ClearMemoryBtnClick (Sender: TObject);
var
Res: LongInt;
MemType: DWORD;
begin
{ тут воспользуемся тем, что ItemIndex по значению соответствует и типу памяти }
MemType: = DWORD (MemTypesCB. ItemIndex);
Res: = Gsm_ClearMemory (MemType,nil);
// if Res = GSM_OK then Print (MemTypesCB. Items [MemType] +': всего '+IntToStr (MemTotal) +', исп.: '+IntToStr (MemUsed)) else
if Res = GSM_ERR_NO_MEM then Print (MemTypesCB. Items [MemType] +': НЕ существует')
else Print ('Gsm_ClearMemory',Res);
end;
procedure TForm1.comboBox1Change (Sender: TObject);
var
k: byte;
begin
if ComboBox1. ItemIndex=0 then
datm. UserTable. Filtered: =false
else
datm. UserTable. Filtered: =true;
if ComboBox1. ItemIndex=1 then k: =1 else k: =0;
datm. UserTable. Filter: ='status='+inttostr (k);
end;
procedure TForm1. DBGrid1DrawColumnCell (Sender: TObject; const Rect: TRect;
DataCol: Integer; Column: TColumn; State: TGridDrawState);
begin
// if Selected then
with DBGrid1 do
begin
if datm. UserTable. FieldByName ('status'). AsBoolean then
Canvas. Brush. Color: =$FFFBF0
else
canvas. Brush. Color: =clWhite;
Canvas. Font. Color: =clBlack;
DefaultDrawColumnCell (Rect, DataCol, Column, State);
end;
end;
procedure TForm1. DeleteMessageBtnClick (Sender: TObject);
var
Res: LongInt;
MemType,MemIndex,MemUsed,MemTotal: DWORD;
begin
{ тут воспользуемся тем, что ItemIndex по значению соответствует и типу памяти }
MemType: = DWORD (MemTypesCB. ItemIndex);
MemIndex: = DWORD (MessIndexSE. Value);
Res: = Gsm_DeleteMessage (MemType,MemIndex);
if Res = GSM_OK then
begin
Print (' ['+IntToStr (MemIndex) +']: удалено');
{ выводим статус памяти }
Res: = Gsm_MemoryStatus (MemType,MemUsed,MemTotal);
if Res = GSM_OK then Print (MemTypesCB. Items [MemType] +': всего '+IntToStr (MemTotal) +', исп.: '+IntToStr (MemUsed)) else
if Res = GSM_ERR_NO_MEM then Print (MemTypesCB. Items [MemType] +': НЕ существует')
else Print ('Gsm_MemoryStatus',Res);
end else
if Res = GSM_ERR_NO_MEM then Print (MemTypesCB. Items [MemType] +': НЕ существует')
else Print ('Gsm_DeleteMessage',Res);
end;
procedure TForm1. DeviceInfoBtnClick (Sender: TObject);
const
BUF_LEN = 256;
var
Res: DWORD;
aDeviceManufacturer: array [0. BUF_LEN-1] of AnsiChar;
aDeviceName: array [0. BUF_LEN-1] of AnsiChar;
aDeviceVersion: array [0. BUF_LEN-1] of AnsiChar;
aDeviceIMEI: array [0. BUF_LEN-1] of AnsiChar;
begin
Res: = Gsm_DeviceManufacturer (@aDeviceManufacturer,BUF_LEN);
if Res <> GSM_OK then
begin
Print ('Gsm_DeviceManufacturer',Res);
Exit;
end;
Print ('Производитель: '+aDeviceManufacturer);
Res: = Gsm_DeviceName (@aDeviceName,BUF_LEN);
if Res <> GSM_OK then
begin
Print ('Gsm_DeviceName',Res);
Exit;
end;
Print (' Устройство: '+aDeviceName);
Res: = Gsm_DeviceVersion (@aDeviceVersion,BUF_LEN);
if Res <> GSM_OK then
begin
Print ('Gsm_DeviceVersion',Res);
Exit;
end;
Print (' Устройство: '+aDeviceVersion);
Res: = Gsm_DeviceIMEI (@aDeviceIMEI,BUF_LEN);
if Res <> GSM_OK then
begin
Print ('Gsm_DeviceIMEI',Res);
Exit;
end;
Print (' IMEI: '+aDeviceIMEI);
end;
procedure TForm1. FinalizationBtnClick (Sender: TObject);
begin
Print ('Gsm_Finalization',Gsm_Finalization);
end;
procedure TForm1. GetCurrentPortSettingsBtnClick (Sender: TObject);
var
Res: DWORD;
PortNo: DWORD;
BaudRate: DWORD;
BufferSize: DWORD;
Timeouts: DWORD;
begin
Res: = Gsm_GetCurrentPortSettings (PortNo,BaudRate,BufferSize,Timeouts);
if Res <> GSM_OK then
begin
Print ('Gsm_GetCurrentPortSettings',Res);
Exit;
end;
Print (' PortNo: COM'+IntToStr (PortNo));
Print (' BaudRate: '+IntToStr (BaudRate) +' bps');
Print ('BufferSize: '+IntToStr (BufferSize) +' bytes');
Print (' Timeouts: '+IntToStr (Timeouts) +' ms');
end;
procedure TForm1. GetMessageInfoBtnClick (Sender: TObject);
var
str: string;
Res: LongInt;
MemType,MemIndex: DWORD;
Mess,aPhone,aServiceCenter: array [0.1023] of AnsiChar;
aDateTime: TDateTime; { дата-время сообщения }
aPartCount: DWORD; { для мультипартовых: кол-во частей сообщения }
aPartNumber: DWORD; { для мультипартовых: номер части сообщения }
aPartID: DWORD; { для мультипартовых: ID части сообщения }
aIsReport: DWORD; { Признак: отчет о доставке (=1) }
aReportStatus: DWORD; { Статус доставки }
aReportDateTime: TDateTime; { Дата-время отчета }
aIsIncoming: DWORD; { Признак: входящее сообщение (=1) }
aIsEmpty: DWORD;
begin
{ тут воспользуемся тем, что ItemIndex по значению соответствует и типу памяти }
MemType: = DWORD (MemTypesCB. ItemIndex);
MemIndex: = DWORD (MessIndexSE. Value);
FillChar (Mess,SizeOf (Mess),$00);
FillChar (aPhone,SizeOf (aPhone),$00);
FillChar (aServiceCenter,SizeOf (aServiceCenter),$00);
Res: = Gsm_ReadFromMemory (MemType,MemIndex,@Mess,SizeOf (Mess) - 1);
Res: = Gsm_GetMessageInfo (MemType,MemIndex,
{ - ---------------------- - }
@Mess,SizeOf (Mess) - 1,{ - ---------------------- - }
@aPhone,SizeOf (aPhone) - 1,{ - ---------------------- - }
@aServiceCenter,SizeOf (aServiceCenter) - 1,{ - ---------------------- - }
aDateTime,
aPartCount,
aPartNumber,
aPartID,
aIsReport,
aReportStatus,
aReportDateTime,
aIsIncoming,
aIsEmpty);
if Res = GSM_OK then
begin
Print ('ИНФА О СООБЩЕНИИ ['+IntToStr (MemIndex) +'] ');
if aIsEmpty = 1 then
begin
Print (' ['+IntToStr (MemIndex) +']: ПУСТОЕ СООБЩЕНИЕ');
end else
begin
if (Mess [0] in ['1','0']) then
begin
// ShowMessage (aphone);
datm. UserTable. Filtered: =true;
datm. UserTable. Filter: ='tel=''+'+aphone+'''';
if datm. UserTable. RecordCount>0 then
begin
datm. UserTable. Edit;
// datam. userstable. FieldByName ('balans'). AsFloat: =datam. userstable. FieldByName ('balans'). AsFloat-100;
PhoneNumberEdit. Text: =aphone;
if mess [0] ='1' then
begin
datm. UserTable. FieldByName ('status'). AsBoolean: =true;
SmsTextEdit. Text: ='Вы заехали на стоянку ваш баланс: '+datm. UserTable. FieldByName ('summa'). AsString;
datm. UserTable. FieldByName ('vremay'). AsDateTime: =now;
datm. OplataTable. Insert;
datm. OplataTable. FieldByName ('vremyanach'). AsDateTime: =now;
datm. OplataTable. FieldByName ('tel'). AsString: =aphone;
// str: =mess;
// datm. OplataTable. FieldByName ('nom_m'). AsString: =copy (str,2,length (str) - 1);
datm. OplataTable. FieldByName ('tippl'). AsBoolean: =true;
if datm. OplataTable. Modified then datm. OplataTable. Post;
end
else
begin
datm. UserTable. FieldByName ('status'). AsBoolean: =false;
SmsTextEdit. Text: ='Счастливого пути ваш баланс: '+datm. UserTable. FieldByName ('summa'). AsString;
datm. OplataTable. Filtered: =true;
datm. OplataTable. Filter: ='tel='''+aphone+'''';
if datm. OplataTable. RecordCount>0 then
begin
datm. OplataTable. Edit;
datm. OplataTable. FieldByName ('summa'). AsInteger: = round (now) - datm. OplataTable. FieldByName ('summa'). AsInteger;
datm. OplataTable. FieldByName ('vremyakon'). AsDateTime: =now;
if datm. OplataTable. Modified then datm. OplataTable. Post;
datm. UserTable. FieldByName ('vremay'). AsDateTime: =now;
datm. UserTable. Filtered: =true;
datm. UserTable. Filter: ='tel=''+'+aphone+'''';
datm. UserTable. Edit;
datm. UserTable. FieldByName ('status'). AsBoolean: =false;
datm. UserTable. FieldByName ('summa'). AsInteger: =datm. UserTable. FieldByName ('summa'). AsInteger-datm. OplataTable. FieldByName ('summa'). AsInteger;
if datm. UserTable. Modified then datm. UserTable. Post;
datm. OplataTable. Filtered: =false;
end;
end;
SendSmsBtn. Click;
datm. UserTable. Filter: ='';
datm. UserTable. Filtered: =false;
if datm. UserTable. Modified then datm. UserTable. Post;
DeleteMessageBtn. Click;
end;
end;
Print ('aIsIncoming: '+IntToStr (aIsIncoming));
Print ('aPhone: '+aPhone);
Print ('aServiceCenter: '+aServiceCenter);
Print ('aDateTime: '+DateTimeToStr (aDateTime));
Print ('aPartCount: '+IntToStr (aPartCount));
Print ('aPartNumber: '+IntToStr (aPartNumber));
Print ('aPartID: '+IntToStr (aPartID));
if aIsReport = 1 then
begin
Print ('aIsReport: '+IntToStr (aIsReport));
Print ('aReportStatus: '+IntToStr (aReportStatus));
Print ('aReportDateTime: '+DateTimeToStr (aReportDateTime));
end;
Print ('Message: '+Mess);
end;
Print ('===================================');
end else
if Res = GSM_ERR_NO_MEM then Print (MemTypesCB. Items [MemType] +')
else Print ('Gsm_GetMessageInfo',Res);
end;
procedure TForm1. Print (const aFunc: AnsiString; aResultCode: DWORD);
begin
Print (aFunc+': '+GsmStatusCodeToStr (aResultCode));
end;
procedure TForm1. ReadFromMemoryBtnClick (Sender: TObject);
var
Res: LongInt;
MemType,MemIndex: DWORD;
Mess: array [0.1023] of AnsiChar;
begin
MemType: = DWORD (MemTypesCB. ItemIndex);
MemIndex: = DWORD (MessIndexSE. Value);
FillChar (Mess,SizeOf (Mess),$00);
Res: = Gsm_ReadFromMemory (MemType,MemIndex,@Mess,SizeOf (Mess) - 1);
if Res = GSM_OK then Print (' ['+IntToStr (MemIndex) +']: '+Mess) else
if Res = GSM_ERR_NO_MEM then Print (MemTypesCB. Items [MemType] +': Не существует')
else Print ('Gsm_ReadFromMemory',Res);
end;
procedure TForm1. ScanSerialPortsBtnClick (Sender: TObject);
const
Prefix = 'COM';
var
Res: DWORD;
Sel,Mask: Integer;
ComPortNum,Port: Integer;
Str: AnsiString;
begin
PortsBox. Items. Clear;
Res: = Gsm_ScanSerialPorts;
if Res = GSM_ERR_API_RegOpenKeyEx then
begin
Print ('Gsm_ScanSerialPorts',Res);
Exit;
end;
Str: = '';
for Sel: = 0 to 50 do
begin
Mask: = $00000001 shl Sel;
ComPortNum: = (Res and Mask) shr Sel;
if ComPortNum > 0 then
begin
Port: = Sel+1;
if Str = '' then Str: = Prefix + IntToStr (Port)
else Str: = Str + ',' + Prefix + IntToStr (Port);
PortsBox. ItemIndex: = PortsBox. Items. AddObject (Prefix+IntToStr (Port),TObject (Port));
end;
end;
Print ('Gsm_ScanSerialPorts: '+Str);
end;
procedure TForm1. SendSmsBtnClick (Sender: TObject);
var
Res: LongInt;
begin
if TransCB. Checked then Res: = Gsm_SendSmsLat (PChar (PhoneNumberEdit. Text),PChar (SmsTextEdit. Text),DWORD (ConfirmedCB. Checked))
else Res: = Gsm_SendSms (PChar (PhoneNumberEdit. Text),PChar (SmsTextEdit. Text),DWORD (ConfirmedCB. Checked));
Print ('Gsm_SendSms (Lat) ',Res);
end;
procedure TForm1. InitializationBtnClick (Sender: TObject);
begin
Print ('Gsm_Initialization',Gsm_Initialization (DoSmsReceived,DoRingReceived));
end;
procedure TForm1. IsMemoryTypeExistsBtnClick (Sender: TObject);
var
Res: LongInt;
MemType: DWORD;
begin
MemType: = DWORD (MemTypesCB. ItemIndex);
Res: = Gsm_IsMemoryTypeExists (MemType);
if Res = GSM_OK then Print (MemTypesCB. Items [MemType] +': существует') else
if Res = GSM_ERR_NO_MEM then Print (MemTypesCB. Items [MemType] +': не существует')
else Print ('Gsm_IsMemoryTypeExists',Res);
end;
procedure TForm1. MemoryStatusBtnClick (Sender: TObject);
var
Res: LongInt;
MemType,MemUsed,MemTotal: DWORD;
begin
MemType: = DWORD (MemTypesCB. ItemIndex);
Res: = Gsm_MemoryStatus (MemType,MemUsed,MemTotal);
if Res = GSM_OK then Print (MemTypesCB. Items [MemType] +': всего '+IntToStr (MemTotal) +', исп.: '+IntToStr (MemUsed)) else
if Res = GSM_ERR_NO_MEM then Print (MemTypesCB. Items [MemType] +': Не существует')
else Print ('Gsm_MemoryStatus',Res);
end;
procedure TForm1. OpenBtnClick (Sender: TObject);
var
Res: DWORD;
Port: DWORD;
begin
if PortsBox. ItemIndex = - 1 then
begin
Print ('Не выбран порт');
Exit;
end;
Port: = DWORD (PortsBox. Items. Objects [PortsBox. ItemIndex]);
Res: = Gsm_Open (Port,0);
Print ('Gsm_Open',Res);
end;
procedure TForm1. Timer1Timer (Sender: TObject);
var
Res: LongInt;
MemType,MemUsed,MemTotal,MemINdex: DWORD;
i: integer;
Mess,aPhone,aServiceCenter: array [0.1023] of AnsiChar;
aDateTime: TDateTime
aPartCount: DWORD;
aPartNumber: DWORD;
aPartID: DWORD;
aIsReport: DWORD;
aReportStatus: DWORD;
aReportDateTime: TDateTime;
aIsIncoming: DWORD;
aIsEmpty: DWORD;
str: string;
begin
MemType: = DWORD (MemTypesCB. ItemIndex);
MemIndex: = DWORD (MessIndexSE. Value);
FillChar (Mess,SizeOf (Mess),$00);
FillChar (aPhone,SizeOf (aPhone),$00);
FillChar (aServiceCenter,SizeOf (aServiceCenter),$00);
Res: = Gsm_ReadFromMemory (MemType,MemIndex,@Mess,SizeOf (Mess) - 1);
Res: = Gsm_GetMessageInfo (MemType,MemIndex,
{ - ---------------------- - }
@Mess,SizeOf (Mess) - 1,{ - ---------------------- - }
@aPhone,SizeOf (aPhone) - 1,{ - ---------------------- - }
@aServiceCenter,SizeOf (aServiceCenter) - 1,{ - ---------------------- - }
aDateTime,
aPartCount,
aPartNumber,
aPartID,
aIsReport,
aReportStatus,
aReportDateTime,
aIsIncoming,
aIsEmpty);
MemType: = DWORD (MemTypesCB. ItemIndex);
Res: = Gsm_MemoryStatus (MemType,MemUsed,MemTotal);
if aIsEmpty <> 1 then
begin
if memtotal>0 then
begin
i: =0;
while i<MemTotal do
begin
MemType: = DWORD (i);
MemIndex: = DWORD (MessIndexSE. Value);
FillChar (Mess,SizeOf (Mess),$00);
Res: = Gsm_ReadFromMemory (MemType,MemIndex,@Mess,SizeOf (Mess) - 1);
str: =mess;
inc (i);
end;
end;
MemType: = DWORD (MemTypesCB. ItemIndex);
Res: = Gsm_ClearMemory (MemType,nil);
end;
end;
procedure TForm1. Timer2Timer (Sender: TObject);
begin
if CheckBox1. Checked then
begin
GetMessageInfoBtn. Click;
end;
end;
procedure TForm1. ToolButton1Click (Sender: TObject);
begin
datm. UserTable. Edit;
form2. ShowModal;
end;
procedure TForm1. ToolButton2Click (Sender: TObject);
begin
datm. UserTable. Insert;
form2. ShowModal;
end;
procedure TForm1. ToolButton6Click (Sender: TObject);
begin
if datm. OplataTable. Modified then datm. OplataTable. Post;
end;
procedure TForm1. ToolButton9Click (Sender: TObject);
begin
datm. OplataTable. Delete;
end;
end.
Размещено на Allbest.ru
...Подобные документы
Возможности извлечения информации из баз данных. Программы для создания и обработки базы данных и создания пользовательского интерфейса. Обоснование выбора программных средств для реализации. Создание базы данных, интерфейса и базы данных к интерфейсу.
курсовая работа [2,9 M], добавлен 24.03.2023Cоздание и описание логической модели автоматизированной системы обработки информации. Проектирование структуры системы в виде диаграмм UML. Анализ программных средств разработки программного обеспечения и интерфейса. Осуществление тестирования программы.
дипломная работа [2,5 M], добавлен 25.01.2015Проектирование программного средства "Автоматизированная система контроля и учета кабельных проводок на Нововоронежской АЭС-2". Выбор инструмента для создания программного обеспечения. Технические условия работы программы. Структура базы данных ПС.
дипломная работа [4,4 M], добавлен 29.06.2012Основание для разработки автоматизированной информационной системы "Будущий абитуриент". Технические требования к программному изделию. Порядок контроля и приемки продукта. Рассмотрение исходной базы данных. Описание интерфейса программного обеспечения.
дипломная работа [3,3 M], добавлен 08.02.2013Создание web-сайта для сбора статистических данных, прогнозирования возможностей системы общего образования и анализа демографического состояния региона в динамике. Проектирование базы данных, разработка компонентов, алгоритмов и программного обеспечения.
дипломная работа [3,1 M], добавлен 15.04.2013Анализ области автоматизации. Проектирование пользовательского интерфейса и баз данных. Выбор платформы создания информационной системы. Взаимодействие приложения с источниками данных. Оценка длительности и стоимости разработки программного обеспечения.
дипломная работа [2,2 M], добавлен 09.08.2011Описание разрабатываемой программы с точки зрения пользователя и программиста. Поэтапная разработка программной системы. Создание базы данных в Access. Разработка структуры классов. Создание структуры для хранения данных. Проектирование интерфейса.
курсовая работа [1,4 M], добавлен 07.08.2013Назначение и специфика программного обеспечения "NordVision". Оценка его качества, надежности, работоспособности и устойчивости. Разработка структуры программы, пользовательского интерфейса и основных алгоритмов. Организация контекстно-зависимой помощи.
дипломная работа [2,5 M], добавлен 24.02.2015Технико-экономическое обоснование разработки информационной системы "План-меню". Выбор технических средств и стандартного программного обеспечения. Проектирование структуры базы данных. Разработка и структура пользовательского интерфейса и ER-модели.
курсовая работа [817,6 K], добавлен 07.05.2009Анализ предметной области, главных функций организации. Разработка макета внутренней структуры программного обеспечения информационной системы в виде диаграммы классов. Составление схемы базы данных. Разработка интерфейса и руководства пользователя.
курсовая работа [866,3 K], добавлен 02.06.2015Разработка требований к программному обеспечению. Проектирование пользовательского интерфейса. Представление информационной системы в архитектуре "клиент-серверная". Проектирование программных модулей. Создание структуры пооперационного перечня работ.
курсовая работа [3,1 M], добавлен 09.08.2011Проектирование алгоритмов и программных кодов для различных элементов пользовательских форм информационно-аналитической системы. Исследование структуры базы данных. Связь между таблицами. Разработка графического интерфейса программы и справочной системы.
курсовая работа [2,4 M], добавлен 10.01.2015Разработка базы данных для спортивной школы с целью ведения учета, контроля и получения информации о нужном студенте. Создание диалогового окна входа в приложение. Составление схемы и структуры базы данных. Разработка пользовательского интерфейса.
курсовая работа [3,4 M], добавлен 08.09.2015Разработка автоматизированной информационной системы для учета и контроля выполнения ремонтных работ, и предоставления услуг по разработке программного обеспечения компании "МегионСофтОйл", разработка алгоритмов приложений программной системы и модулей.
дипломная работа [5,3 M], добавлен 29.06.2012Сравнительный анализ автоматизированных систем для предприятий. Проектирование концептуальной базы данных для учёта автозапчастей и предоставляемых услуг автосервиса. Разработка прикладного программного обеспечения, пользовательского интерфейса.
дипломная работа [1,5 M], добавлен 19.07.2014Построение информационно-логической модели базы данных. Корректировка данных средствами запросов. Проектирование алгоритмов обработки данных. Реализация пользовательского интерфейса средствами форм. Разработка запросов для корректировки и выборки данных.
курсовая работа [680,9 K], добавлен 19.10.2010Анализ информационных потоков. Разработка структуры таблиц базы данных. Выбор CASE-средства для проектирования информационной системы и среды программирования. Разработка программных модулей (программного обеспечения). Подготовка справочных баз данных.
дипломная работа [6,8 M], добавлен 19.11.2013Общие сведения об исследуемой организации, направления ее хозяйственной деятельности, характеристика используемой вычислительной техники и программного обеспечения. Разработка пользовательского интерфейса, шаблонов, отладка и тестирование программы.
отчет по практике [159,3 K], добавлен 11.04.2016Разработка интерфейса и программного обеспечения виртуальной библиотеки. Проектирование структуры экранов и навигационной системы. Построение прототипа пользовательского интерфейса. Тестирование и модификация прототипа. Экспертная оценка разработки.
курсовая работа [41,2 K], добавлен 19.12.2010Определение функциональности программного продукта. Проектирование интерфейса автоматизированной информационной системы администратора. Страница просмотра основных сведений о клиенте. Отображение комплектации автомобиля. Интерфейс формы учёта продаж.
курсовая работа [1,0 M], добавлен 09.12.2014