Форум обсуждения систем  

Вернуться   Форум обсуждения систем "Умный дом", проектов Ардуино, OpenWRT и других DIY устройств > Форум умного дома > Сделай сам > Открытый проект умного дома

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
Старый 20.12.2012, 15:03   #1
andr128
Senior Member
 
Аватар для andr128
 
Регистрация: 16.09.2012
Адрес: Irkutsk
Сообщений: 555
Вес репутации: 1604
andr128 has a reputation beyond reputeandr128 has a reputation beyond reputeandr128 has a reputation beyond reputeandr128 has a reputation beyond reputeandr128 has a reputation beyond reputeandr128 has a reputation beyond reputeandr128 has a reputation beyond reputeandr128 has a reputation beyond reputeandr128 has a reputation beyond reputeandr128 has a reputation beyond reputeandr128 has a reputation beyond repute
По умолчанию тестовый код управление ардуиной по Modbus RTU

PHP код:
//gcc mbmaster.c -o mbmaster `pkg-config --libs --cflags libmodbus`

//==========================
//   Modbus RTU Master
//==========================

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <errno.h>
#include <modbus.h>


#define INT_REGS 10 //10 регистров

//============================
int main(int argcchar *argv[])
{

uint16_t tab_reg[INT_REGS];
modbus_t *ctx;
modbus_mapping_t *mb_mapping;
int rc;
int i;
char c;

    
ctx modbus_new_rtu("/dev/ttyUSB0"9600'N'81);
    if (
ctx == NULL) { fprintf(stderr"Unable to create the modbus context\n"); return -1; }

    
modbus_set_slave(ctx1); //id=1

    
if (modbus_connect(ctx) == -1) { 
    
fprintf(stderr"Connection failed: %s\n"modbus_strerror(errno));
    
modbus_free(ctx);
        return -
1;
    }

//основной цикл
for(;;) {
    
rc modbus_read_registers(ctx0INT_REGStab_reg);
    if (
rc == -1) { 
    
fprintf(stderr"Read - %s\n"modbus_strerror(errno));
    
//return -1;
    
}

    if (
rc != -1) { 
    for (
i=0rci++) { printf("reg[%d]=%d (0x%X)\n"itab_reg[i], tab_reg[i]); }
    }

    
scanf ("%c",&c);
    if (
=='a'tab_reg[0] = 1// посылаем ардуине команды с клавиатуры
    
if (=='s'tab_reg[0] = 0
    if (
=='z'tab_reg[1] = 11
    if (
=='q') break; 

    
rc modbus_write_registers(ctx01tab_reg);
    if (
rc == -1) { fprintf(stderr"Write - %s\n"modbus_strerror(errno)); }

    

//for cycle

printf("Quit mbmaster: %s\n"modbus_strerror(errno));
modbus_close(ctx);
modbus_free(ctx);


return 
0;

andr128 вне форума   Ответить с цитированием
Старый 20.12.2012, 15:46   #2
Andreyweb
Member
 
Регистрация: 28.11.2012
Адрес: Липецк
Сообщений: 56
Вес репутации: 0
Andreyweb has much to be proud ofAndreyweb has much to be proud ofAndreyweb has much to be proud ofAndreyweb has much to be proud ofAndreyweb has much to be proud ofAndreyweb has much to be proud ofAndreyweb has much to be proud ofAndreyweb has much to be proud of
Отправить сообщение для Andreyweb с помощью ICQ
По умолчанию

ANDR128 Пример сервера для работы с сокетами:

Скрипт написан на PHP--???
Andreyweb вне форума   Ответить с цитированием
Старый 20.12.2012, 17:04   #3
andr128
Senior Member
 
Аватар для andr128
 
Регистрация: 16.09.2012
Адрес: Irkutsk
Сообщений: 555
Вес репутации: 1604
andr128 has a reputation beyond reputeandr128 has a reputation beyond reputeandr128 has a reputation beyond reputeandr128 has a reputation beyond reputeandr128 has a reputation beyond reputeandr128 has a reputation beyond reputeandr128 has a reputation beyond reputeandr128 has a reputation beyond reputeandr128 has a reputation beyond reputeandr128 has a reputation beyond reputeandr128 has a reputation beyond repute
По умолчанию

Цитата:
Сообщение от Andreyweb Посмотреть сообщение
ANDR128 Пример сервера для работы с сокетами:

Скрипт написан на PHP--???
А сами то не видите по содержимому, что на C. Просто обернут в php тэг для подсветки кода т.к. нет другого тэга для подсветки кода на Си.

Пример клиента написан на PHP.

Для более полного понимания нарисовал картинку
Нажмите на изображение для увеличения
Название: prot.png
Просмотров: 532
Размер:	17.2 Кб
ID:	685

Последний раз редактировалось andr128; 20.12.2012 в 17:50.
andr128 вне форума   Ответить с цитированием
Старый 20.12.2012, 17:12   #4
zuriuslev
Junior Member
 
Регистрация: 19.12.2012
Адрес: Марбелья
Сообщений: 18
Вес репутации: 0
zuriuslev has a reputation beyond reputezuriuslev has a reputation beyond reputezuriuslev has a reputation beyond reputezuriuslev has a reputation beyond reputezuriuslev has a reputation beyond reputezuriuslev has a reputation beyond reputezuriuslev has a reputation beyond reputezuriuslev has a reputation beyond reputezuriuslev has a reputation beyond reputezuriuslev has a reputation beyond reputezuriuslev has a reputation beyond repute
По умолчанию

Цитата:
Сообщение от Andreyweb Посмотреть сообщение
ANDR128 Пример сервера для работы с сокетами:

Скрипт написан на PHP--???
Нет на C
Там даже в начале написано как компилировать ...
//gcc serv_select.c -o serv_select
zuriuslev вне форума   Ответить с цитированием
Старый 20.12.2012, 17:58   #5
Admin
Administrator
 
Аватар для Admin
 
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,616
Вес репутации: 9821
Admin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant future
По умолчанию

Цитата:
А для транка скомпилить, это разве проблема ?
Могу начинающим расписать процедуру ...
Если не затруднит
Admin вне форума   Ответить с цитированием
Старый 22.12.2012, 23:51   #6
stD
Senior Member
 
Аватар для stD
 
Регистрация: 02.04.2012
Адрес: Питер
Сообщений: 1,125
Вес репутации: 1311
stD has a brilliant futurestD has a brilliant futurestD has a brilliant futurestD has a brilliant futurestD has a brilliant futurestD has a brilliant futurestD has a brilliant futurestD has a brilliant futurestD has a brilliant futurestD has a brilliant futurestD has a brilliant future
По умолчанию

А связь двухсторонняя получается?
stD вне форума   Ответить с цитированием
Старый 23.12.2012, 07:15   #7
andr128
Senior Member
 
Аватар для andr128
 
Регистрация: 16.09.2012
Адрес: Irkutsk
Сообщений: 555
Вес репутации: 1604
andr128 has a reputation beyond reputeandr128 has a reputation beyond reputeandr128 has a reputation beyond reputeandr128 has a reputation beyond reputeandr128 has a reputation beyond reputeandr128 has a reputation beyond reputeandr128 has a reputation beyond reputeandr128 has a reputation beyond reputeandr128 has a reputation beyond reputeandr128 has a reputation beyond reputeandr128 has a reputation beyond repute
По умолчанию

А это вы уж как хотите сами.
andr128 вне форума   Ответить с цитированием
Старый 25.12.2012, 15:17   #8
Andreyweb
Member
 
Регистрация: 28.11.2012
Адрес: Липецк
Сообщений: 56
Вес репутации: 0
Andreyweb has much to be proud ofAndreyweb has much to be proud ofAndreyweb has much to be proud ofAndreyweb has much to be proud ofAndreyweb has much to be proud ofAndreyweb has much to be proud ofAndreyweb has much to be proud ofAndreyweb has much to be proud of
Отправить сообщение для Andreyweb с помощью ICQ
По умолчанию

А можно где-то взять уже скомпилированный под TL-MR3020 пример сервера из поста №55
Andreyweb вне форума   Ответить с цитированием
Старый 25.12.2012, 15:33   #9
andr128
Senior Member
 
Аватар для andr128
 
Регистрация: 16.09.2012
Адрес: Irkutsk
Сообщений: 555
Вес репутации: 1604
andr128 has a reputation beyond reputeandr128 has a reputation beyond reputeandr128 has a reputation beyond reputeandr128 has a reputation beyond reputeandr128 has a reputation beyond reputeandr128 has a reputation beyond reputeandr128 has a reputation beyond reputeandr128 has a reputation beyond reputeandr128 has a reputation beyond reputeandr128 has a reputation beyond reputeandr128 has a reputation beyond repute
По умолчанию

А зачем он вам? Это же просто тестовый пример для тех кто пишет и компилирует сам. Если вы хотите попробовать поуправлять ардуинкой есть готовые сервера ser2net, и suart. Внимательно прочитайте пост №56.
andr128 вне форума   Ответить с цитированием
Старый 25.12.2012, 16:13   #10
Andreyweb
Member
 
Регистрация: 28.11.2012
Адрес: Липецк
Сообщений: 56
Вес репутации: 0
Andreyweb has much to be proud ofAndreyweb has much to be proud ofAndreyweb has much to be proud ofAndreyweb has much to be proud ofAndreyweb has much to be proud ofAndreyweb has much to be proud ofAndreyweb has much to be proud ofAndreyweb has much to be proud of
Отправить сообщение для Andreyweb с помощью ICQ
По умолчанию

Можно поподробнее?
1. Установил Ser2net opkg install ser2net
2. ser2net.conf ->6000:raw:0/dev/ttyATH0:9600
3. Запускаю ser2net

4. создаю файл client_socket.php содержимое пост№55 параметры(localhost порт 6000)
5.создаю файл Index.html содержимое пост№56
6. Закидываю на Web сервер.
7. Подключаю Железный UART к PC через PL2303, на PC запускаю терминал, и слушаю
8. Запускаю оперу открываю Index.html на роутере
и.............???
на экране квадратики ��������...
что нетак???

Последний раз редактировалось Andreyweb; 25.12.2012 в 16:23.
Andreyweb вне форума   Ответить с цитированием
Ответ


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 

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

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


Текущее время: 17:52. Часовой пояс GMT +3.


Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Яндекс.Метрика