Форум программистов, компьютерный форум, киберфорум
Микроконтроллеры
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.82/11: Рейтинг темы: голосов - 11, средняя оценка - 4.82
1 / 1 / 1
Регистрация: 28.02.2013
Сообщений: 93

TCP эхо-сервер на STM32F4Discovery (embedded Lua)

28.01.2015, 17:56. Показов 2464. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день!

Пытаюсь за стартовать TCP эхо-сервер на STM32F4Discovery. Это micro python (не нашел раздела про micro python - пишу здесь).

Скрипт такой
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#try:
import usocket as socket
#except:
#import socket
print("TCP/IP echo server")
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
ai = socket.getaddrinfo("192.168.0.10", 7)
print("Bind address info:", ai)
addr = ai[0][4]
s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
s.bind(addr)
s.listen(1)
print("Listening")
res = s.accept()
client_s = res[0]
client_addr = res[1]
print("Client address:", client_addr)
print("Client socket:", client_s)
while True:
    recv_buf = client_s.recv(128)
    client_s.send(bytes(recv_buf, "ascii"))
client_s.close()
Получаю такую ошибку:
Traceback (most recent call last):
File "main.py", line 6, in <module>
OSError: no available NIC
Вывод на экран:
TCP echo-server
/rom/tcp_server.lua:3: module 'net' not found:
no field package.preload['net']
no file '/mmc/net.lua'
no file '/mmc/net.lc'
no file '/wo/net.lua'
no file '/wo/net.lc'
no file '/rom/net.lua'
no file '/rom/net.lc'
no file '/semi/net.lua'
no file '/semi/net.lc'
stack traceback:
[C]: in function 'require'
/rom/tcp_server.lua:3: in main chunk
[C]: in function 'dofile'
stdin:1: in main chunk
[C]: ?
Т.е. нужно файл net.lua и/или net.lс поместить в папку ./romfs, но в Git-проекте (https://github.com/elua/elua) файлы net.lua и net.lc отсутствуют.

Настройки проекта:
-- STM32F4DISCOVERY build configuration

return {
cpu = 'stm32f407vg',
components = {
sercon = { uart = "cdc", speed = 115200 },
romfs = true,
cdc = { buf_size = 128 },
advanced_shell = true,
term = { lines = 25, cols = 80 },
tcpip = { ip = "192.168.0.10", netmask = "255.255.255.0", gw = "192.168.0.1", dns = "192.168.0.2" },
dhcp = false,
dns = true,
linenoise = { shell_lines = 10, lua_lines = 50 },
stm32f4_enc = true,
rpc = { uart = 0, speed = 115200 },
adc = { buf_size = 2 },
xmodem = true,
cints = true,
luaints = true
},
config = {
egc = { mode = "alloc" },
vtmr = { num = 4, freq = 10 },
ram = { internal_rams = 2 },
clocks = { external = 8000000, cpu = 120000000 }
},
modules = {
generic = { 'all', "-i2c", "-net" },
platform = 'all',
},
}
Дефайн 'BUILD_UIP' подключен. Как разрешается такая ошибка?


И вот несколько вопросов:
1) Что такое 'NIC'?
2) Не означает ли эта ошибка, что сеть для этой борды не поддерживается?
3) Вот описание функций net-модуля http://www.eluaproject.net/doc... l#overview
В функции recv(...) не понятно куда помещаются полученные данные. Мож кто подскажет - куда?

Спасибо.
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
28.01.2015, 17:56
Ответы с готовыми решениями:

Tcp эхо сервер изменить чат
как можно изменить чат в tcp эхо сервере на с++, как сделать чтобы при получении ответа сервер возвращал количество знаков а не то что ему...

TCP-эхо клиент-сервер (WinSock)
Здравствуйте! Подскажите, пожалуйста, почему TCP-эхо клиент-сервер неправильно работает? Сервер отправляет клиенту правильно только первую...

Эхо сервер без Qt, Boost и тп (TCP/UDP)
Добрый день! Стоит задача - реализовать эхо сервер (клиент-серверное приложение), которое будет принимать пакеты по протоколу UDP/TCP...

7
487 / 333 / 33
Регистрация: 15.08.2011
Сообщений: 1,078
28.01.2015, 21:09
Лучший ответ Сообщение было отмечено raxp как решение

Решение

Цитата Сообщение от RRR_RRR_RRR Посмотреть сообщение
1) Что такое 'NIC'?
Network inteface card. Сетевые карточки так называют.
Цитата Сообщение от RRR_RRR_RRR Посмотреть сообщение
2) Не означает ли эта ошибка, что сеть для этой борды не поддерживается?
Скорее всего так и есть.
1
 Аватар для Витальич
1280 / 1185 / 175
Регистрация: 02.12.2013
Сообщений: 4,883
29.01.2015, 08:31
Нет на плате ти_си_пи http://www.st.com/web/catalog/... /PF252419#
Цитата Сообщение от RRR_RRR_RRR Посмотреть сообщение
micro python
можно узнать где Вы для данной платы нашли?
0
1 / 1 / 1
Регистрация: 28.02.2013
Сообщений: 93
29.01.2015, 09:20  [ТС]
Витальич, Вы правы, на самой борде нет ethernet модуля.
Eсть expansion борда http://www.element14.com/commu... ion-boards
И example для нее http://www.element14.com/commu... 4-bboardse
А micro python - это http://www.micropython.org + https://github.com/micropython/micropython
0
1 / 1 / 1
Регистрация: 28.02.2013
Сообщений: 93
09.02.2015, 16:54  [ТС]
Добрый день!

Пытаюсь запустить TCP эхо-сервер на STM32F4Discovery + eLua (http://www.eluaproject.net)

Скрипт (теги Python поскольку для Lua нет тегов):
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
print("TCP echo-server")
 
local net = require("net")
 
socket = net.socket(net.SOCK_STREAM)
 
remote_socket, remoteip, err = net.accept( 7 )
 
if (err == net.ERR_OK) then
    print("Accepted connection from " .. remoteip)
else
    print ("Error: " .. err)
end
 
while true
  do
    res, err = net.recv( remote_socket, "*|" )
    str = ""
    for i = 0, res
      do
        str = str + "A"
      end
 
    if (err == net.ERR_OK) then
      res, err = net.send( sock, str )
    end
 
    if (err == net.ERR_OK) then
      print("Send " .. res .. " bytes")
    else
      print ("Error: " .. err)
    end
  end
Вывод на экран:
TCP echo-server
/rom/tcp_server.lua:3: module 'net' not found:
no field package.preload['net']
no file '/mmc/net.lua'
no file '/mmc/net.lc'
no file '/wo/net.lua'
no file '/wo/net.lc'
no file '/rom/net.lua'
no file '/rom/net.lc'
no file '/semi/net.lua'
no file '/semi/net.lc'
stack traceback:
[C]: in function 'require'
/rom/tcp_server.lua:3: in main chunk
[C]: in function 'dofile'
stdin:1: in main chunk
[C]: ?
Т.е. нужно файл net.lua и/или net.lс поместить в папку ./romfs, но в Git-проекте (https://github.com/elua/elua) файлы net.lua и net.lc отсутствуют.

Настройки проекта:
-- STM32F4DISCOVERY build configuration

return {
cpu = 'stm32f407vg',
components = {
sercon = { uart = "cdc", speed = 115200 },
romfs = true,
cdc = { buf_size = 128 },
advanced_shell = true,
term = { lines = 25, cols = 80 },
tcpip = { ip = "192.168.0.10", netmask = "255.255.255.0", gw = "192.168.0.1", dns = "192.168.0.2" },
dhcp = false,
dns = true,
linenoise = { shell_lines = 10, lua_lines = 50 },
stm32f4_enc = true,
rpc = { uart = 0, speed = 115200 },
adc = { buf_size = 2 },
xmodem = true,
cints = true,
luaints = true
},
config = {
egc = { mode = "alloc" },
vtmr = { num = 4, freq = 10 },
ram = { internal_rams = 2 },
clocks = { external = 8000000, cpu = 120000000 }
},
modules = {
generic = { 'all', "-i2c", "-net" },
platform = 'all',
},
}
Дефайн 'BUILD_UIP' подключен. Как разрешается такая ошибка?


И вот еще вопрос "вдогонку":
Вот описание функций net-модуля http://www.eluaproject.net/doc... l#overview
В функции recv(...) не понятно куда помещаются полученные данные. Мож кто подскажет - куда?

Спасибо.

 Комментарий модератора 
Правила форума:

5.5. Запрещено размещать тему в нескольких подразделах одного раздела одновременно (кросспостинг), а также дублировать тему в одном разделе.
0
 Аватар для raxper
10236 / 6614 / 498
Регистрация: 28.12.2010
Сообщений: 21,154
Записей в блоге: 1
09.02.2015, 19:39
TC, вопросы переименования тем в адекватные и корректировки названий - это прерогратива модератора, хватит прыгать выше головы. А третье создание дубля - есть прямое игнорирование правил форума.
0
1 / 1 / 1
Регистрация: 28.02.2013
Сообщений: 93
09.02.2015, 21:05  [ТС]
raxp, я попросил бы Вас не грубить, а попробовать разобраться в ситуации.
Вот несколько вопросов, на которые прошу ответить:
1) Почему нельзя послать Вам ЛС, чтобы прояснить Ваши определенные действия - перенос тем, слияние и т.д.? Из-за этого приходится отвлекать другого модератора.
2) Почему переносом тем и последующим их слиянием занимаются разные модераторы, в результате чего возникают коллизии подобные сегодняшней?
3) Зачем переносить тему про embedded Python из раздела "Python" в раздел "Микроконтроллеры"? То же про embedded Lua.
4) Почему при переносе не проверяется наличие в разделе тем с таким же названием?
5) К чему было писать предыдущий пост, если тема уже исчерпана?

Теперь поясню свои действия, связанные с "дублированием" тем.
Изначальная тема про embedded Python была в разделе "Python", и я просмотрел момент, когда она была перенесена в раздел "Микроконтроллеры".
Вторую тему про embedded Lua я назвал также (возможно это моя ошибка, но размещать тему в разделе и указывать в заголовке, что она именно для этого раздела - по-моему глупо), но задал там другой вопрос и разместил в разделе "Lua".
После этого она была зачем-то перенесена в раздел "Микроконтроллеры".
Затем увидев 2 темы с одинаковым названием Вы, уважаемый raxp, слили их в одну, но с существенной ошибкой - был потерян текст Lua-скрипта.
Я это увидел, но не смог до Вас достучаться (об этом я сообщил модератору 'Памирыч'), чтобы попросить исправить эту ошибку. 'Памирыч' "не увидел криминала" в кривом слиянии, а я счел этот момент критичным и решил все же восстановить последнюю тему в разделе "Микроконтроллеры", но уже с другим названием.
После этого вы ее удалили и исправили неверное слияние двух первых тем.

И последний вопрос:
6) Где я "прыгнул выше головы"? Я исправлял Ваш косяк, уважаемый модератор.

 Комментарий модератора 
Правила форума:

6.5. Запрещено публично обсуждать действия администрации форума, касающиеся их прямых обязанностей.


Добавлено через 13 минут
Как написать Вам лично?
0
 Аватар для raxper
10236 / 6614 / 498
Регистрация: 28.12.2010
Сообщений: 21,154
Записей в блоге: 1
09.02.2015, 21:06
Вам как раз не грубили, а указали на нарушение вами же правил форума, если вас не устраивают правила форума - напишите в предложения о правилах форума или покиньте форум.

1- потому что моя ЛС не отхожее место для жалоб и решения вопросов, находящихся исключительно в компетенции модератора раздела, а не пользователя, для жалоб есть кнопка пожаловаться, учитесь ею пользоваться.
2- это вообще не в вашей компетенции и вы не вправе вмешиваться согласно п.6.5 правил с которыми вы согласились при регистрации на форуме.
3- потому что вы занимаетесь кросспостингом одной и той же темы с одним и тем же содержанием в разных подразделах форума, кросспостинг - это нарушение правил форума. И тема касается работы с микроконтроллером.
4- проверяется и объединяется, при особом рецидиве удаляется.
5- дабы вы понимали причины и свои ошибки.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
09.02.2015, 21:06
Помогаю со студенческими работами здесь

Комментарии к коду эхо-клиент/эхо-сервер
Ребятки ,нужна очень ваша помощь !!! кому не тяжело напишите пожалуйста коментарии к кодам (((код не мой ,но его нужно по заданию...

Параллельный эхо-сервер. UDP сервер для передачи произвольного файла
Добрый вечер! Передо мной стоит такая задача: На базе шаблона параллельного эхо-сервера, использующего модель “один клиент – один...

VS c++ sockets (errors), Пример реализации TCP эхо-сервера
начал узучать сокеты в с++ , нашёл пример клиент серверного приложения. но возникают ошибки ,не могу понять в чём ошибка. // Пример...

Java.lang.IllegalArgumentException в нативных функциях (embedded Java, MicroEJ, STM32F4Discovery)
Добрый день! Пытаюсь связать embedded Java и C посредством нативных функций. Идея в следующем: мне нужно вернуть из нативной...

Эхо-сервер
Доброго времени суток! Пишу эхо-сервер и возникла проблема с созданием вектора из массивов char`ов для буфера клиента. Подскажите,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
YAFU@home — распределённые вычисления для математики. На CPU
Programma_Boinc 20.01.2026
YAFU@home — распределённые вычисления для математики. На CPU YAFU@home — это BOINC-проект, который занимается факторизацией больших чисел и исследованием aliquot-последовательностей. Звучит. . .
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит: токи, напряжения и их 1 и 2 производные при t = 0;. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru