purebasic.info

PureBasic forum
Текущее время: Пт дек 15, 2017 9:29 am

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 26 ]  На страницу 1, 2  След.
Автор Сообщение
СообщениеДобавлено: Ср ноя 29, 2017 8:27 pm 
Не в сети
студент

Зарегистрирован: Ср ноя 29, 2017 6:44 pm
Сообщений: 9
Откуда: г. Бийск, Алтайский край.
Благодарил (а): 2 раз.
Поблагодарили: 0 раз.
Пункты репутации: 0
Доброго времени суток!!!
В современном программировании я новичок. PB выбрал по тому, что мне легче всего было перейти на него после Basic и Pascal в которых программил в юношестве (в 90-е). Вот уже год как сижу на этом форуме гостем. Черпаю идеи и знания. И вот я подошёл к вопросу, на который у меня не хватает не только поиска, но и осмысления в какую сторону бить. Теперь суть...

Пишу на PB нечто вроде "умного дома". Некий комплекс цифровых датчиков (температуры, положения и т. д.) и исполнительных устройств (клапана, выключатели, димеры, электроприводы и т. д.). Программа уже (почти) полностью готова и работает (автономно следит за процессом), но что-то боязно её оставлять без присмотра :) когда меня нет дома. Да и иногда приходится делать корректировки (до искусственного разума ей ещё далеко).
Короче: хочу удалённо за ней приглядывать и в случае чего нажимать нужные кнопки со смартфона (Android). Пересылаемый от ПК пакет состоит из полтора десятка числовых переменных, а ответ со смартфона будет некая команда равнозначная нажатию на гаджет (всё управление на button, combo и checkbox гаджетах).
Посоветуйте куда пойти за знанием? Может примеры какие уже есть? Любое множество вариантов готов рассмотреть (на сколько головы хватит).
Заранее благодарен.


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: Ср ноя 29, 2017 8:54 pm 
Не в сети
МОДЕРАТОР

Зарегистрирован: Вт дек 05, 2006 8:46 am
Сообщений: 6204
Благодарил (а): 16 раз.
Поблагодарили: 171 раз.
Пункты репутации: 48
NAMi писал(а):
Любое множество вариантов готов рассмотреть (на сколько головы хватит).

Вариантов то не особо много. Удаленное управление наверно проще всего организовать как клиент-сервер.
Пусть ваша программа будет сервером, тогда надо написать для Андроида клиент, который будет получать-передавать любые данные. Тогда можно будет и не только со смартфона, а с любого ноутбука или планшета управлять, была бы на нём программа вашего клиента и доступ в Интернет.
Тут одна только сложность - видимость вашего сервера из глубин интернета. Но можно ведь сервер не на домашнем компе запустить, а арендовать адрес в сети, тогда вообще нет проблем.

_________________
read-only


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: Ср ноя 29, 2017 8:55 pm 
Не в сети
профессор

Зарегистрирован: Пт фев 20, 2009 12:57 pm
Сообщений: 1561
Откуда: Алматы
Благодарил (а): 12 раз.
Поблагодарили: 37 раз.
Пункты репутации: 5
нужен код клиент-сервера. точнее даже сервера для PB. чтобы принимал и отсылал сообщения. весь затык в ip адресе. дело в том, что некоторые провайдеры, в виду дифицита этих самых ip адресов частенько поднимают NAT. то есть в свойствах сетевого соединения с провайдером адрес скажем 1.1.1.1, а зайдя на 2ip.ru будет совсем другой 2.2.2.2. подняв сервер на 1.1.1.1, ты добавишь в клиент смартфонного приложения адрес сервера 1.1.1.1, но смартфон не сможет связаться... потому как надо будет связаться на самом деле с 2.2.2.2 и притом еще попросить своего провайдера чтоб при запросе по такому-то порту на адрес 2.2.2.2 тебя перекидывало на внутренний адрес 1.1.1.1. либо попросить выделенный ip адрес - чтоб у тебя всегда он был одинаковый. но это дорого.

так что сначала выясняй что да как. должен быть адрес у компьютера (или роутера) тот-же самый адрес что и 2ip.ru показывает.

если адрес одинаковый то идем дальше.

тут возникает вторая проблема - это если неплатить за постоянный адрес. а если заплатить - можно пропустить следующую воду. адрес каждый раз провайдер выдает разный. как смартфонному клиенту узнать куда звонить? сегодня у тебя 1.1.1.1, завтра 1.1.1.4, после завтра еще какойнить там... тоска. поэтому нужен сайт-посредник. например у hostinger.ru есть замечательный бесплатный хостинг. я доволен как слон уже сколько лет и все работает досих пор :) не знаю остались ли еще эти бесплатные пакеты... нам надо чтоб на сервере была поддержка php - а такое есть не везде. то есть что надо - при включении компьютера и запуска сервера PB - программа сервера заходит на 2ip, читает свой айпи адрес, потом посылает его на наш бесплатный сервер. типа: vasya.pusku.com?ip=1.1.1.1 - а такое PB умеет делать. этот адрес пишется в текстовой файл. смартфон в свою очередь, когда ты активировал свое приложение - заходит по этому адресу vasya.pusku.com\ip.txt и читает из этого текстового файла айпи адрес. наконец-то приложение сможет законнектится с сервером PB :)

а дальше уже как сам придумаешь клиент-сервер протокол, как они меж собой будут общаться, и тому подобное.


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: Ср ноя 29, 2017 9:29 pm 
Не в сети
студент

Зарегистрирован: Ср ноя 29, 2017 6:44 pm
Сообщений: 9
Откуда: г. Бийск, Алтайский край.
Благодарил (а): 2 раз.
Поблагодарили: 0 раз.
Пункты репутации: 0
SereZa писал(а):
нужен код клиент-сервера. точнее даже сервера для PB. чтобы принимал и отсылал сообщения. весь затык в ip адресе. дело в том, что некоторые провайдеры, в виду дифицита этих самых ip адресов частенько поднимают NAT. то есть в свойствах сетевого соединения с провайдером адрес скажем 1.1.1.1, а зайдя на 2ip.ru будет совсем другой 2.2.2.2. подняв сервер на 1.1.1.1, ты добавишь в клиент смартфонного приложения адрес сервера 1.1.1.1, но смартфон не сможет связаться... потому как надо будет связаться на самом деле с 2.2.2.2 и притом еще попросить своего провайдера чтоб при запросе по такому-то порту на адрес 2.2.2.2 тебя перекидывало на внутренний адрес 1.1.1.1. либо попросить выделенный ip адрес - чтоб у тебя всегда он был одинаковый. но это дорого.


Я эту тему уже вентилировал с другом (sys-админом в одной из наших крупных фирм города) за чашкой коньяка :). Он готов мне (тайно по дружбе на халяву) предоставить хостинг с постоянным адресом. Т.е. это один из вариантов развития событий. Только мне надо всё это осознать. Знать что просить и как этим пользоваться.

А, скажем, вариант без промхостинга. ПК не сможет сам определить свой ip и прислать мне его SMS или каким-нибудь Ватсапом-ом?


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: Ср ноя 29, 2017 9:50 pm 
Не в сети
студент

Зарегистрирован: Ср ноя 29, 2017 6:44 pm
Сообщений: 9
Откуда: г. Бийск, Алтайский край.
Благодарил (а): 2 раз.
Поблагодарили: 0 раз.
Пункты репутации: 0
kvitaliy писал(а):
NAMi писал(а):
Любое множество вариантов готов рассмотреть (на сколько головы хватит).

Вариантов то не особо много. Удаленное управление наверно проще всего организовать как клиент-сервер.
Пусть ваша программа будет сервером, тогда надо написать для Андроида клиент, который будет получать-передавать любые данные. Тогда можно будет и не только со смартфона, а с любого ноутбука или планшета управлять, была бы на нём программа вашего клиента и доступ в Интернет.
Тут одна только сложность - видимость вашего сервера из глубин интернета. Но можно ведь сервер не на домашнем компе запустить, а арендовать адрес в сети, тогда вообще нет проблем.

Т.е. если мне удастся решить проблему с видимостью ПК в большой "помойке" интернета, мне надо научиться создавать этот самый сервер и этот самый клиент на Android-е. Это уже похоже на какой-то план. С чего начать? Где что почитать?

Может пока потренироваться внутри домашней локальной сети? А потом выходить на просторы.


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: Ср ноя 29, 2017 10:42 pm 
Не в сети
профессор

Зарегистрирован: Пт фев 20, 2009 12:57 pm
Сообщений: 1561
Откуда: Алматы
Благодарил (а): 12 раз.
Поблагодарили: 37 раз.
Пункты репутации: 5
посыл по вацапу идея конечно хорошая :) да только разве этот самый вацап есть в открытом доступе? в смысле давно был бы вацап для компьютера, легкий и удобный. сейчас же это по сути адроид эмулятор с установленным вацапом. и то для 8 винды чтоль... или даже для 10 только.

можно через почту. ведь приложения могут читать почту того-же gmail. а отправка почт есть для PB - с помощью библиотеки Comate или как там она прально называется.

поэтому промежуточный бесплатный хостинг самый простой вариант. ну это мое личное мнение :) хостинг у компании у знакомого не нужен. вдруг его поймают или еще чего... или уволится он оттуда. бесплатный, а лучше 3 бесплатных разных компаний идеально. то есть приложение лезет сначала на один - получил айпи? нет. лезет на второй - получил? получил. успокоился. на третий не полезет. теперь лезет на твой домашний комп-сервер. и начинает обмен информацией.

да и на самом деле нет ничего сложного в этих самых пакетах. даж php знать толком не обязательно :) просто берем и смотрим примеры как php разбирает пост запросы, а после просто составляем этот самый пост запрос.

для домашних тестов ставь easyphp - на нем будешь обкатывать код php, который будет принимать айпи адрес. причем самое смешное твоему серверу даже не нужно будет определять свой айпи адрес :) я совсем забыл что в php есть команда, которая возвращает айпи адрес с которого идет соединение. то есть тебе достаточно будет просто с домашнего сервера заходить - скажем раз в 5 минут - на свой сайт... хотя не. неудобно раз в 5 минут. лучше всетаки чтоб сервер знал свой айпи и проверял изменился ли айпи на самом себе так сказать, и заходить на php только после изменения. точно так-же и приложение - оно помнит старый адрес. пытается зайти по нему - 404. тогда он соединяется с бесплатым хостингом и получает айпи адрес. после этого начинает через каждые 5 минут лазить на домашний комп. правда расход трафика будет на твоем тарифном плане сотовой компании :)

так что ставь дома php сервер. там создавай файл в папке сервера - она там www в папке в программ файл easyphp будет - index.php. после в гугле забей - как получить ip адрес клиента php. второе запрос в гугле - как писать в файл php - то есть в итоге чтоб php страничка получала к ней обращение, рожала из обращение айпи адрес и писала его в файл. а в PB смотри банальную загрузку страницы. щас не скажу... в хелп PB надо смотреть. эта самая загрузка страницы в PB родит текстовой файл в папке с php с айпи адресом.


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: Чт ноя 30, 2017 8:02 am 
Не в сети
МОДЕРАТОР

Зарегистрирован: Вт дек 05, 2006 8:46 am
Сообщений: 6204
Благодарил (а): 16 раз.
Поблагодарили: 171 раз.
Пункты репутации: 48
NAMi писал(а):
kvitaliy писал(а):
NAMi писал(а):

Может пока потренироваться внутри домашней локальной сети? А потом выходить на просторы.

Потренируйтесь, лишним не будет. Клиент-сервер примеры тут есть на форуме. Сервер на Андроид писать не надо, только клиент. Андроид можно программировать Basic подобным языком Basic4Android, полная версия есть на форуме 4PDA.
Если пишите исключительно для себя, то ещё один способ, который можно запустить уже сейчас. Это на бесплатном хостинге с FTP (а таких в сети огромное количество) общаться файлами. По протоколу FTP слать - читать файлы очень просто и главное всегда доступно с любой точки Интернета.

_________________
read-only


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: Чт ноя 30, 2017 11:35 am 
Не в сети
профессор

Зарегистрирован: Пт фев 20, 2009 12:57 pm
Сообщений: 1561
Откуда: Алматы
Благодарил (а): 12 раз.
Поблагодарили: 37 раз.
Пункты репутации: 5
то есть как это сервер на андроид ненадо? надо :) ведь приложение должно принимать сообщения тоже. то есть когда нажал кнопку: включить духовку. андроид послал => сервер дома принял, обработал, включил духовку, проверил что включил, послал андроиду статус что включено => андроид принял изменение статуса и отобразил зеленым цветом


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: Чт ноя 30, 2017 1:39 pm 
Не в сети
студент

Зарегистрирован: Ср ноя 29, 2017 6:44 pm
Сообщений: 9
Откуда: г. Бийск, Алтайский край.
Благодарил (а): 2 раз.
Поблагодарили: 0 раз.
Пункты репутации: 0
SereZa писал(а):
то есть как это сервер на андроид ненадо? надо :) ведь приложение должно принимать сообщения тоже. то есть когда нажал кнопку: включить духовку. андроид послал => сервер дома принял, обработал, включил духовку, проверил что включил, послал андроиду статус что включено => андроид принял изменение статуса и отобразил зеленым цветом


Я вроде правильно понял, что сервак на ПК дома, а клиент на Андроиде в 4PDA.

kvitaliy писал(а):
...который можно запустить уже сейчас. Это на бесплатном хостинге с FTP (а таких в сети огромное количество) общаться файлами. По протоколу FTP слать - читать файлы очень просто и главное всегда доступно с любой точки Интернета.


А вот это идея. Мне не надо шибко мудрить с серваками. Думаю обмен файлами будет идеален.


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: Чт ноя 30, 2017 1:48 pm 
Не в сети
профессор

Зарегистрирован: Пт фев 20, 2009 12:57 pm
Сообщений: 1561
Откуда: Алматы
Благодарил (а): 12 раз.
Поблагодарили: 37 раз.
Пункты репутации: 5
тьфу... можно и фтп. но на php тоже не сложно :) это ж не интернет магазин программить. там всего 2 команды. и уж тем более php штука полезная азы знать, чтоб в крайнем случае чего на корпоративном сайте подправить, или в будующем какое приложение связанное с тырнетом лепить.


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: Чт ноя 30, 2017 3:03 pm 
Не в сети
профессор
Аватар пользователя

Зарегистрирован: Чт июн 25, 2009 1:02 pm
Сообщений: 2232
Откуда: Russia — Belarus
Благодарил (а): 0 раз.
Поблагодарили: 66 раз.
Пункты репутации: 11
Удаленный доступ прокиньте на компьютер с программой и всё. Время сэкономите и полноценный доступ получите.
Сравнение систем удалённого доступа

_________________
EnableExplicit User


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: Чт ноя 30, 2017 3:12 pm 
Не в сети
профессор

Зарегистрирован: Пт фев 20, 2009 12:57 pm
Сообщений: 1561
Откуда: Алматы
Благодарил (а): 12 раз.
Поблагодарили: 37 раз.
Пункты репутации: 5
там тим виевер есть галка в графе андроид. но по моему это же возможность управлять компом с телефона. а вот с компа управлять телефоном там по моему нету :) галка не полноценная.


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: Чт ноя 30, 2017 3:26 pm 
Не в сети
профессор
Аватар пользователя

Зарегистрирован: Чт июн 25, 2009 1:02 pm
Сообщений: 2232
Откуда: Russia — Belarus
Благодарил (а): 0 раз.
Поблагодарили: 66 раз.
Пункты репутации: 11
Я VNC использовал, а точнее TightVNC на PC и "VNC Viewer - Remote Desktop" на Android'е. Но т.к. это direct-connection, то в этом случае надо учитывать вышеописанное про доступность IP "со внешки" и проброшенный порт.

_________________
EnableExplicit User


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: Чт ноя 30, 2017 6:47 pm 
Не в сети
ассистент

Зарегистрирован: Ср мар 30, 2016 9:45 pm
Сообщений: 13
Благодарил (а): 0 раз.
Поблагодарили: 3 раз.
По поводу IP адреса, можно посмотреть в сторону бесплатных доменных имен 3 уровня. Смысл такой, что, на комп ставится программа, которая определяет IP машины и соотносит его с доменным именем.Давно так делал, держал свой FTP с доступом из интернета.Подробнее тут https://toster.ru/q/1039
и тут https://www.noip.com/remote-access


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: Чт ноя 30, 2017 9:36 pm 
Не в сети
студент

Зарегистрирован: Ср ноя 29, 2017 6:44 pm
Сообщений: 9
Откуда: г. Бийск, Алтайский край.
Благодарил (а): 2 раз.
Поблагодарили: 0 раз.
Пункты репутации: 0
Похоже для моих нужд подойдёт вариант с FTP.
Специфика контролируемого процесса такова, что он происходит не более одного раза в неделю и длится около 24-30 часов. Без надзора он может остаться только когда я ухожу из дома (работа, магазин, погулять), т.е. часов на 8 максимум. И эти 8 часов я не собираюсь пялиться в смартфон ежесекундно. По этому решил, что ПК будет, скажем, раз в минуту выкладывать на FTP актуальный файл данных и проверять актуальность файла команд.
С PB вроде становится понятно. Ща с головой ныряю в B4A.
Спасибо всем! Будут вопросы, появлюсь.


Вернуться наверх
 Профиль  
 
Показать сообщения за:  Сортировать по:  
Начать новую тему Ответить на тему  [ Сообщений: 26 ]  На страницу 1, 2  След.

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Создано на основе phpBB® Forum Software © phpBB Group (блог о phpBB)
Сборка создана CMSart Studio
Русская поддержка phpBB