Rating@Mail.ru
IPB
Etersoft - from Windows to Linux
Etersoft
решения для перехода
с Windows на Linux
Дружественные сайты: alv.me и Rus-Linux.net

Здравствуйте, гость ( Вход | Регистрация ) Поиск · 

Профиль
Фотография
Опции
Опции
О себе
VladVol не указал(а) ничего о себе.
Личная информация
VladVol
Продвинутый участник
29 от роду
Мужской
Место жительства не указано
Дата рождения: Фев-13-1989
Интересы
Нет данных
Другая информация
Операционная система: KUbuntu
JID: Нет данных
Город: Kiev
Статистика
Регистрация: 22-March 11
Просмотров профиля: 3890*
Последнее посещение: 5th September 2016 - в 22:42
Часовой пояс: Feb 20 2018, в 05:52
142 сообщений (0.06 за день)
Контактная информация
AIM Нет данных
Yahoo Нет данных
ICQ Нет данных
MSN Нет данных
Contact E-mail скрыт
* Просмотры профиля обновляются каждый час

VladVol

Участники


Темы
Сообщения
Друзья
Содержимое
12 Aug 2016
День добрый всем! Есть свой личный проект, который основан на Raspberry Pi, но не хватает знаний для его реализации, есть желание научится вот только не знаю с чего начинать, да и инфа в сети очень часто нацелена на знающих людей, я новичок, мне проще начинать учебу с простых примеров.
В чем хотелось бы разобраться:

1. Работа с I2C, для начала интересует работа с расширителем GPIO портов, как с этим работать? Т.е. логика, мне кажется, мне понятна, открываем устройство I2C, используя его адрес, как файл, далее пишем в него и читаем с него, но практике ничего не получается. Появляются вопросы, которые некому задать.

2. Нужно встроить в программу код, который будет выполнять захват RTSP потока (звук+видео) с IP камеры. Я так понял для это лучше использовать либо FFMPEG либо LIVE555, но как собственно это сделать, я не понял. Все примеры в сети очень "тяжелые", либо в коде есть ГУИ, которые мешает мне понять основное, либо куча доп. функций, которые, снова таки, мешают уловить суть, либо и то и другое. Простого примера вот такой консольной программки нет, ну или я не нашел.

3. Есть возможность читать события генерируемые IP камерой по протоколу ONVIF? Конкретно интересует детектор движения камеры, есть способ реализовать это через С++, думаю есть, через С/С++, можно реализовать все, нужно только знать как.

4. Это не относится к проекту и к программирования, но ответа на этот вопрос вообще нигде нет! Как настроить на CISCO 7911 возможность перезвонить на пропущенный номер и как убрать пропущенные номера с экрана не перезагружая телефон??

Если можете помочь с этими вопросами, сообщите с чем конкретно можете помочь и сколько стоят Ваши услуги (от бесплатной помощи, я тоже не откажусь)) ). Проект лично для себя и 1000$ у меня нет, писать за меня тоже не нужно, максимум чего я хочу, это простые примеры и ответы на возникающие, в процессе работы, вопросы.

P.S. Если сам проект имеет значение, то я хочу сделать что-то типа системы охраны, т.к. работаю в этой сфере и мне это интересно

Заранее благодарю, всех кто потратил время и прочел это!
18 Sep 2015
Помогите найти ответ на пару вопросов. Есть программа, в цикле опрашивает состояние других программ дабы следить за порядком "на корабле", к этой программе нужно добавить ответвление, которое будет вызываться в определенный момент как функция и проверять сетевые интерфейсы, делать пинги, принимать решения и по окончанию процесса, просто закрываться. Короче говоря, все это лирика главное то, что программа должна создать дочерний процесс и забыть про него, процесс выполнился и исчез.
Прежде чем написать код, сделаю оговорку, опыт работы с fork() у меня не велик, чтение разных мануалов по fork(), форумов не дало понятия как решить мою проблему.

Вот как я пытаюсь это сделать:

Код
while(status == "start")
{
    //тут никому неинтересный код
    // тут вызываю функцию interfaces через форк
    int inter_pid(fork()); // в этот момент программа раздваивается и главный процесс получает ID потомка, а потомок получает 0, если все прошло успешно.
    
    if(inter_pid == 0)  // т. е. если ты потомок
        interfaces(); //выполни функцию interfaces;

    //далее опять идет неинтересный код, небольшая отсрочка и все пошло сначала.
}


Функция interfaces заканчивается "exit(0);", используя такой код, все работает, вот только функция interfaces, по окончанию, становится зомби ожидая пока главный процесс спросит: "Ну как там дела в школе? Сегодня получил 0 или 1 или еще что-то получил?" А если родителю плевать на "оценки в школе"? В моем случае это именно так.

Допустим проблему с зомби можно решить вписав где-то в конце цикла wait() или waitpid(), но тогда теряется весь смысл fork(). Мне нужно параллельное выполнение главного процесса и процесса потомка.
Представим ситуацию, "упала" программа, за которой наблюдает основной процесс в цикле и в этот же момент потомок затупил с пингом, ну не может он получить ответ, но пытается. В такой ситуации, если использовать wait или waitpid "упавшая" программа будет поднята только тогда, когда дочерний процесс расскажет "о делах в школе", а если я извращенец и у меня в функции interfaces() при отсутствие пинга запускается компиляция ядра или еще какая-то хрень которая затормозит основной процесс на долгое время? Короче ждать ответа от дочернего процесса — не вариант, зомбаки — опять таки не вариант.

Можно поступить по другому:

Код
while(status == "start")
{
    //тут никому неинтересный код
    // тут вызываю функцию interfaces через форк
    pid_t inter_pid(fork());
    if(inter_pid > 0)  // т. е. если ты родитель
        interfaces(); //выполни функцию interfaces;

    //далее опять идет неинтересный код, небольшая отсрочка и все пошло сначала.
}


В данном случае все работает как по маслу, основной процесс запускает функцию interfaces(), а потомок продолжает основной цикл. Основной процесс завершил функцию interfaces() и закрылся(без зомби и wait), дочерний процесс, который уже стал основным продолжает цикл.

Спасибо всем тем, кто потратил свое время и дочитал до этих строк. Так вот суть вопроса:
1. Нормально ли то, что при использовании последнего кода процесс постоянно "перерождается" и соответственно постоянно меняет свой PID?
2. Есть ли все таки варианты как седлать так, чтобы основной процесс не ждал ответа от дочернего процесса, а продолжал свою работу, а дочерний процесс, в свою очередь, не становился зомби(не люблю мертвых девушек laugh.gif )?

Заранее всех благодарю!
Всем доброго времени суток!
Нужно настроить Raspberry на работу с двумя интерфейсами, Ethernet (основное соединение с интернетом) и PPP (мобильная сеть, резервная). Логика работы простая, когда доступно проводное соединение - весь трафик идет через него, как только интернет через ЛВС становится не доступным, трафик перенаправляется через мобильную сеть и ждет восстановления работы ЛВС. Когда проводной интернет появляется, трафик снова перенаправляется на основной интерфейс (ethX).
Так как с такой задачей сталкиваюсь в первый раз( обычно наблюдал уже работающий функционал и не вдавался в подробности как оно работает ), хотел спросить совета как лучше это сделать, с чего начать чтобы не строить свой велосипед?

Спасибо!
10 Jul 2015
Прошу помощи в этом не легком деле. Я уже обыскал весь интернет, был на другом форуме, никто ничего сказать не может.
Пытаюсь подключится через Huawei e153 к интернету, пробовал и через стандартный Network Manager и через wvdial, не хочет подключаться хоть ты убей. На карточке деньги есть, через этуже карту выхожу в сеть через телефон, все летает.
Сам свисток в режиме модема, о чем свидетельствует
lsudb
Код
Bus 002 Device 008: ID 12d1:14ac Huawei Technologies Co., Ltd.


и ls /dev | grep USB*
Код
ttyUSB0
ttyUSB1
ttyUSB2


Конфиг файла wvdial выглядит вот так:
Код
[Dialer Defaults]
Init1 = ATZ
Init2 = ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
Init3 = AT+CGDCONT=1,"IP","internet.beeline.ua"
Username = name
Password = pass
StupidMode = yes
Phone = *99#
Modem Type = Analog Modem
Baud = 9600
New PPPD = yes
Dial Attempts = 5
Modem = /dev/ttyUSB0
ISDN = 0


Ошибка выглядит вот так:
Код
--> Modem initialized.
--> Sending: ATDT*99#
--> Waiting for carrier.
ATDT*99#
CONNECT
--> Carrier detected.  Waiting for prompt.
--> Don't know what to do!  Starting pppd and hoping for the best.
--> Starting pppd at Fri Jul 10 12:22:32 2015
--> Pid of pppd: 6950
--> Using interface ppp0
--> Disconnecting at Fri Jul 10 12:22:35 2015
--> The PPP daemon has died: A modem hung up the phone (exit code = 16)


Мое предположение, что связи мешают логин и пароль в конфиге, т.к. у провайдера на сайте эти поля пустые, но оставить эти поля пустыми я не могу, в этом случае ругается wvdial и просто даже не пытается подключаться. Есть ли выход, как можно подключится без ввода лигина и пароля?

Так же меня интересует еще один нюанс. В статье, указанной мне на другом форуме,
http://fido7.ru.linux.narkive.com/xM5OVccx/huawei-e1550
Есть интересный момент:
Код
...Вокруг всё больше 3G становится и вот, зараза,
начали они это 3G видеть и использовать. Всё бы вроде ничего, интернет
был бы в 10 раз быстрее... но проблема в том, что я их в data mode хочу
(т.н. CSD call с передачей данных, ну как обычным проводным модемом --
вполне работает). А вот если модем зарегистрировался в 3G-сети -- :censored:
звонка с данными не будет.


Т.е. получается, что этот 3G модем он нефига не работает c 3G? Или я чего-то не понял? Но ведь телефон же работает с 3G, как подключается Андроид, что ему не нужны эти номера дозвона в виде *99# и прочая хернь? Ведь ядро тоже там Линукс, должны же быть похожие моменты?

Заранее благодарен, за любой ответ по теме!!

--------
Выполняйте настройку по этой или этой статье все должно работать, а если не работает - душите ОПСОСа.
20 Jan 2015
Доброго времени суток!
Допустим есть две прогрммы, программа А выводит на экран символы "А1" каждые 2 секунды 10 раз, программа Б, выводит на экран символы "Б2" каждую 1 секунду, как запустить программу Б из программы А, при этом не ожидая окончания работы запущенной программы Б?
Другими словами как заставить их работать одновременно? Дали наводку, сказали юзай fork(), как именно его юзать? Делаю fork, программа просто двоится.

Может кто-то объяснить как лучше реализовать мою задачу? Мне бы хоть маленькую наводку)) Заранее спасибо!!
Просмотры


1 Aug 2015 - 9:32


22 Feb 2014 - 18:23


6 Aug 2012 - 2:19


22 May 2012 - 18:11


22 May 2012 - 16:39


Друзья
Друзей нет.
RSS Текстовая версия Сейчас: 20th February 2018 - в 06:52




Rating@Mail.ru