46819 (588447), страница 5
Текст из файла (страница 5)
Драйвер повинен забезпечувати буферизований ввід-вивід з СОМ порта в програму. А після закінчення роботи програми відновлювати старий контролер переривань.
Інтерфейс драйвера з програмою складається з наступних функцій:
Іnstаllсом(comNo) – У залежності від номеру СОМ порту встановлює процедуру обробки апаратного переривання
OpenCOM(speed:byte) – готує СОМ порт для роботи для порту визначеного в процедурі InstallCOM визначає швидкість обміну даними, кількість стопових бітів, контроль передачі. Функція реалізує апаратний протокол встановлення зв'язку
Sread() – функція читає з програмного буфера символ, що надійшов, та видаляє його з буфера і передає програмі, що визвала цю функцію.
Swrite(b:byte) – процедура записує символ у програмний буфер для передачі його через СОМ порт, символ буде передано коли наступить переривання “буфер передавача порожній”.
CloseCOM() – закінчує роботу з СОМ портом на встановленій швидкості. Функція реалізує апаратний протокол закінчення роботи DTE та DCE обладнання.
RestoreCOM() – процедура проводити заміну процедури обробки апаратних переривань. Відновлює попередні настроювання, що були до початку роботи програми.
IsRing():byte – перевіряє чи був виклик з МТМ і якщо був виклик з МТМ те функція повертає число > 0 в іншому випадку функція повертає код 0.
Буфер для передачі має розмір 512 байт. Буфер для прийому даних має розмір 1024байти. Буферів з такими розмірами достатньо для забезпечення надійної передачі даних між мобільним телефоном та СОМ портом.
Тексти функцій приведені в додатку 4
3.3 Розробка програми bridge для комплексу МТМ↔GSM
Програма взаємодіє з драйвером і реалізує роботу комплексу. Текст програми приведений в додатках. Програма складається з наступних процедур та функцій:
Void main(void) – основна процедура з якої починається виконання програми. У цій процедурі спочатку викликається завантаження поточної конфігурації процедура getConfig() після чого проводитися ініціалізація мобільного телефону. Після ініціалізації програма переходить у режим очікування. У разі виклику з телефонних мереж програма викликає функції Void PhoneMobiline(), Void PhoneCity().
Int getUserID(int char) – ця функція визначає чи є код, який увів користувач МТМ або телефон, номер якого надійшов з GSM, у таблиці відповідності користувачів комплексу. Процедура також перевіряє значення авансової суми внесеної абонентом комплексу.
Void PhoneMobiline() – у цій процедурі реалізований алгоритм роботи комплексу у випадку коли дзвінок надійшов з GSM.
Void PhoneCity() – у цій процедурі реалізований алгоритм роботи пристрою у випадку коли дзвінок надійшов з МТМ.
Void StartToking() – продерура очікує коли встановиться зв‘язок з віддаленим абонентом, і інспектує час розмови. Після цього викликає функції SaveLog() та SaveMoney() для збереження інформації про розмову та авансовий внесок абонента.
Void SaveLog() – ця процедура відкриває файл Log.txt та записує туди стрічку результату розмови в форматі:
початок розмови. | тривалість (сек) | вартість (коп) | номер телф. GSM | Напрямок дзвінка | DTMF набір |
Void SaveMoney() – Процедура записує нове значення кредиту абонента комплексу у файлі Users.txt.
Формат файлу:
код | № тел. GSM | Вартість вхідного дзвінка з МТМ (за 1 хв) | Вартість вихідного дзвінки з GSM (за 1 хв) | Кредит наданий користувачеві комплексу в копійках (макс. 99999 коп) | Напрямок дзвінка |
Void getConfig() – Процедура занходить файл setup.cfg і завантажує з нього параметри програми. До параметрів входять:
Void SendStr() – ця процедура надсилає до мобільного телефону стрічку сиволів, по черзі викликаючи функцію swrite(char ch).
Крім основних функцій у програмі реалізований інтерфейс з користувачем через телефонну лінію. Для того, щоб використати допоміжні функції, які реалізовані у комплексі необхідно увести пароль, який записаний у файлі конфігурації setup.cfg. Для використання тієї чи іншої сервісної функції необхідно зателефонувати на комплекс з МТМ і після двох гудків увести значчення пароля. (пароль складається з цифр від 0..9), у випадку коли пароль був введений вірно, комплекс відповість двома короткими гудками і буде очікувати вводу сервісної функції. При одержанні значення (коду) сервісної функції комплекс одразу виконає її.
3.4 Програма обробки інформації про дзвінки
При експлуатації комплексу групою людей, виникає потреба у аналізі різного роду інформації з подальшим представленням рахунку клієнтам для оплати. Для аналізу табличних даних зручно використати Microsoft Access 2000, який є сам по собі універсальним редактором баз даних і найкаще підходить для проектування невеликих баз даних.
Обробка результатів комплексу здійснюється за наступним алгоритмом:
Вставити чисту дисекту типу FDD 3,5’’ у дисковод на комплексі;
Зателефонувати на комплекс;
Після запрошення (два коротких гудки) ввести пароль;
Після підтвердження (два коротких гудки) увести код сервісної функції. Якщо все зроблено правильно, то комплекс запише дані про користувачів та дзвінки на дискету FDD 3,5’’
На коп’ютері де всановлений Microsoft Accsess 2000 необхідно запустити програму GSM_MTM.mdb обробки телефонних дзвінків.
При завантаженні програми з’явиться стартова форма.
Програма складається з наступних підпрограм:
Підпрограма друку та перегляду звітів
Підпрограма аналізу інформації
Підпрограма сервісних функцій
Також у стартовій формі необхідно ввеси звітний період, тобто початкову та кінцеву дату звітного періоду.
Підпрограма сервісних функцій визивається при натисканні клавіші “Сервіс”. На екрані виводиться форма з сервісними функціями:
До сервісних функцій входять:
Імпорт даних у програму обробки дзвінків;
При виборі цієї команди виконується імпорт даних з дискети FDD3,5’’ у програму обробки. При цьому вважається, що після імпорту, дані на дискеті знищуються.
Експорт файлу користувачів
Програма обробки дзінків експортує таблицю з користувачами у зрозумілому для комплексу форматі у файлі users.txt.
Експорт файлу протоколу.
Ця функція реалізує перенесення даних з БД Access 2000 у текстовий файл. Вона реалізована для сусісності з майбутніми версіями та архівування даних. Програма експортує дані про дзвінки у текстовий файл log.txt
Також у цій формі запам‘ятовується виконання сервісних функцій.
Функція Аналіз
Після імпортування даних необхідно вибрати у основній формі підопцію “Аналіз”. Завантажиться форма з наступними сервісними функціями:
1. Показати користувачів у яких завдаток менше за 3 грн.
На екрані відобразиться відповідний запит
2. Показати файл протоколу за звітній період (звітній період вводиться в основній формі)
Інколи необхідно переглянути статистику або переконатися у правильній роботі комплексу. Тому зазвичай ця функція програми не використовується, але на прохання замовника не була видалена з робочої версії, оскільки комплекс працює у режимі тестування.
На формі зображена статистика використання комплексу його абонентами. Червоним кольором відображено час розмови (сек), синім кольором показано (кількість грошей (коп)), що використані при розмовах через комплекс за звітній період.
Функція звітів
Третя форма реалізує систему звітів, які необхідні при представлені рахунку за розмови користувачам комплексу.
Звіт по поточному користувачу. У цьому звіті представлена інформація з звітній період, (звітній період вводиться у основній формі), та про конкретного користувача, який був у той момент активним. Звіт має наступний вигляд:
Загальний звіт по імпортованій базі даних призначений для власника комплексу і надає оперативну інформацію по всій базі даних за звітній період. Звіт має наступний вигляд:
Програма написана на мові Visual Basic, що поставляється разом з Microsoft Access 2000 і є зручною мовою для написання скриптів, та застосування СОМ технології для інтеграції з іншими офісними програмами [6].
Також у програмі реалізована відправка SMS повідомлень через інтернет. Ця операція реалізується за допомогою UMC шлюзу з адресою sms.umc.com.ua. Для відправлення SMS повідомлення абоненту GSM необхідно на адресу +3@umc.com.ua відправити листа. Оператор, який здійснює обробку даних може в автоматичному режимі надіслати користувачам повідомлення про те, що авансовий внесок вичерпано.
3.5 Тестування комплексу
Настройка параментрів комплексу знаходяться у файлі config.sys
Initialize AT+CLIP=1 // Ініціалізація мобільного телефону
Dropline AT+CHUP // покласти трубку на мобільному телефоні
DialPrefix ATD // команда набору номеру перфікс
DialSuffix; // команда набору номену суфікс
DeviceCOM COM1 // номер COM порту. Базова адреса береться з БІОСа
CharDelay 0 // затримка між переданими символами
Speed 9600 // швидкість передачі СОМ
StopBits 1 // кількість стопових біт
LPT_ADDRESS 888 //базова адреса LPT потру
tarifConnect 16 // тарифікація при з’єднанні
MaxTime 300 // максимальний час розмови
NumDigits 3 // кількість цифр при наборі коду
Після настройки параметрів у файлі config.sys необіхдно запустити файл bridge.exe який переведе систему у робочий режим. На цьому етапі система готова до зідйснення комутацій GSMМТМ.
Як результат роботи комплексу приведемо уривок з файлу log.dat
Дата | Тривалість розмови | Сума витрачених грошей коп. | Номер абонента моста | Напрям розмови |
03/03/12,18:41:07 | 3 | 27 | 380674080486 | з GSM |
03/03/12,18:41:07 | 3 | 27 | 380674080486 | з GSM |
03/03/12,18:41:32 | 4 | 27 | 380674080486 | з GSM |
03/03/12,18:41:53 | 11 | 0 | 909 | з MTM |
03/03/12,18:42:38 | 4 | 28 | 80674080486 | з MTM |
Файл користувачів комплексу має наступний вигляд:User.dat
№код | № телефону | Тариф МТМ | Тариф GSM | Кредит | Напрям | Назва |
000 | 380674080486 | 027 | 122 | 49918 | MTGSM | Петров |
001 | 380672316643 | 027 | 122 | 50000 | MTGSM | Тетяна |
002 | 380677136679 | 027 | 122 | 50000 | MTGSM | Данчук |
010 | 380677755301 | 027 | 122 | 50000 | MTGSM | Наташа |
999 | 8909 | 000 | 122 | 49958 | MT | Олег |