Перейти к содержимому


Фотография

"Блютуз" на модеме

Bluetooth OpenComputers modem Wirriless

  • Авторизуйтесь для ответа в теме
Сообщений в теме: 11

#1 Оффлайн   Asummonster

Asummonster
  • Пользователи
  • Сообщений: 570
  • Уровень сигнала: 53,11%
  • В игре: 325 час. 32 мин.
  • ГородКиев

Награды

                    

Отправлено 13 Июнь 2015 - 20:36

Всем привет!

В этой теме я расскажу о своей программе "Bluetooth" на плате проводной или беспроводной сети.

Что же она делает?

Всё очень просто=) Отправляет файлы через модем.

Рассмотрим её получше.

Я на планшете открываю файл с произвольным именем.Пишу в него всякую ерунду: http://joxi.ru/gmv6e07IDRy4ma

Сохраняю его и пишу bluetooth: http://joxi.ru/DmB1EQxhlYd0rP

Мне надо отправить этот файл.

Я подхожу к компьютеру и пишу : "bluetooth -get testTheBlue.lua 25" http://joxi.ru/823nja5FYl64mO

Теперь выполняю команду на планшете: "bluetooth -send testTheBlue.lua 25" http://joxi.ru/RmzKg0zcDKW42O

Нажимаю Enter!

Компьютер получил код с планшета и вышел из программы: http://joxi.ru/gmv6e07IDRx4ma

Запускаю программу и... ура! Вот,что написал компьютер: http://joxi.ru/xAeNen5hKqpPry

Вот код:

com=require("component")
if com.isAvailable("modem") then modem=com.modem
else error("Нет модема!")
end
event=require("event")
term=require("term")
fs=require("filesystem")
args={...}
func=args[1]
fileNAME=args[2]
PORT=tonumber(args[3])
ENDOFGETTHEFILE=true
if func==nil or fileNAME==nil or PORT==nil then print("Использование: -get <filename> <port> для получения файла\n -send <filename> <port> для отправки")
end
function sendFile(filename, port)
    modem.open(port)
    for line in io.lines(filename) do 
         modem.broadcast(port, line)
    end
    modem.broadcast(port, "ENDOFTHECURRENTLYFILE")
    modem.close(port)
 end
 function getFile(filename, port)
    modem.open(port)
	getted=io.open(filename, "w")
	while ENDOFGETTHEFILE do
	     _, _, _, _, _, LINE = event.pull("modem_message")
		 if LINE=="ENDOFTHECURRENTLYFILE" then getted:flush()
		     getted:close()
			 ENDOFGETTHEFILE=false
		else
		print(LINE)
		getted:write(LINE.."\n")
		end
	end
end
if func=="-get" then
    if fs.exists(fileNAME) then print("Данный файл уже существует! Задайте другое имя!"); error()
    else getFile(fileNAME, PORT)
	end
elseif func=="-send" then
    if not fs.exists(fileNAME) then print("Такой файл не найден!"); error()
	else sendFile(fileNAME, PORT)
    end
end


Сообщение отредактировал AlexCC: 25 Июль 2015 - 16:29

  • Alex, Zer0Galaxy, Krutoy и еще 1 это нравится

#2 Оффлайн   LeshaInc

LeshaInc

    Растоман

  • Пользователи
  • Сообщений: 1 197
  • Уровень сигнала: 9,42%
  • В игре: 57 час. 44 мин.
  • ГородЛуна

Награды

                 

Отправлено 13 Июнь 2015 - 21:56

Ура, табуляция!
  • MineUbuntu, ECS и imakofix это нравится

#3 Оффлайн   HuKuTa

HuKuTa
  • Пользователи
  • Сообщений: 3
  • Уровень сигнала: 0,21%
  • В игре: 1 час. 17 мин.

Отправлено 06 Февраль 2016 - 10:21

И зачем? Както странно сделано... Я лучше дискетой воспользуюсь.



#4 Оффлайн   Zer0Galaxy

Zer0Galaxy
  • Гуру
  • Сообщений: 1 213
  • Уровень сигнала: 0%
  • В игре: 0 час. 0 мин.

Награды

5                                 

Отправлено 06 Февраль 2016 - 10:25

Дискетой? При наличии сети? В реале тоже так делаешь?

#5 Оффлайн   SDV

SDV
  • Пользователи
  • Сообщений: 655
  • Уровень сигнала: 33,35%
  • В игре: 204 час. 27 мин.
  • ГородO.R.E.N.B.U.R.G.

Награды

     

Отправлено 06 Февраль 2016 - 10:45

В реале тоже так делаешь?

 

Ага, я так винду ставил :D

Спойлер



#6 Оффлайн   qwertyMAN

qwertyMAN
  • Пользователи
  • Сообщений: 1 404
  • Уровень сигнала: 0,17%
  • В игре: 1 час. 3 мин.
  • ГородCity17

Награды

                             

Отправлено 06 Февраль 2016 - 18:15

Я сначала прочитал название темы "Блюз" на модеме из OpenComputers :smile3:


  • Asummonster это нравится

#7 Оффлайн   Miroshka

Miroshka
  • Пользователи
  • Сообщений: 45
  • Уровень сигнала: 0,01%
  • В игре: 0 час. 5 мин.

Отправлено 27 Ноябрь 2017 - 18:16

Её функции возможно переделать так, что бы название файла, порта вбивать в программе? Да и вообще что бы при вызове функции это всё срабатывало и не нужно было в терминале вбивать?  

 

(Очень хочу, но не позволяет барьер написания)



#8 Оффлайн   Zer0Galaxy

Zer0Galaxy
  • Гуру
  • Сообщений: 1 213
  • Уровень сигнала: 0%
  • В игре: 0 час. 0 мин.

Награды

5                                 

Отправлено 27 Ноябрь 2017 - 18:24

Её функции возможно переделать так, что бы название файла, порта вбивать в программе? Да и вообще что бы при вызове функции это всё срабатывало и не нужно было в терминале вбивать?  

 

(Очень хочу, но не позволяет барьер написания)

Вопрос не совсем понятен. О какой программе и функции идет речь? Можно пример?



#9 Оффлайн   Miroshka

Miroshka
  • Пользователи
  • Сообщений: 45
  • Уровень сигнала: 0,01%
  • В игре: 0 час. 5 мин.

Отправлено 27 Ноябрь 2017 - 19:29

Вопрос не совсем понятен. О какой программе и функции идет речь? Можно пример?

@Zer0Galaxy Для передачи файла нужно на первом и втором компе ввести в терминал 

Bluetooth -get tralala 888 (1-й комп) и Bluetooth -send tralala 888 (2-й комп). 

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

(Переделать функции таким образом, чтобы внутри них менять этот порт, название файла и при запуске функции уже шла передача и приём файла без ввода команд , те просто убрать необходимость в ручном вводе, и всё это делала сама функция)


Сообщение отредактировал Miroshka: 27 Ноябрь 2017 - 19:31


#10 Оффлайн   Totoro

Totoro
  • Хранители Кода
  • Сообщений: 1 683
  • Уровень сигнала: 0,36%
  • В игре: 2 час. 13 мин.

Награды

                                      

Отправлено 28 Ноябрь 2017 - 11:10

Думаю на основе либы Zn можно сделать что-то такое.

Нода Zn висит в памяти в фоновом режиме и после небольшой модификации может так же фоново принимать файлы.

Тогда не потребуется ничего запускать на принимающем компьютере (главное чтобы был в зоне действия сети), а можно будет просто вызвать команду для отправки на посылающем компьютере.

Кнопочку там тыкнуть какую-то, или send в терминале набрать.


Сообщение отредактировал Totoro: 28 Ноябрь 2017 - 11:11


#11 Оффлайн   Seryoga

Seryoga
  • Пользователи
  • Сообщений: 108
  • Уровень сигнала: 0,42%
  • В игре: 2 час. 33 мин.
  • ГородSaint-Petersburg

Награды

        

Отправлено 28 Ноябрь 2017 - 12:16

Почему не использовать бы более свежие штуки, например ftp-client ftp-server?


Сообщение отредактировал Seryoga: 28 Ноябрь 2017 - 12:24


#12 Оффлайн   Miroshka

Miroshka
  • Пользователи
  • Сообщений: 45
  • Уровень сигнала: 0,01%
  • В игре: 0 час. 5 мин.

Отправлено 28 Ноябрь 2017 - 18:39

Почему не использовать бы более свежие штуки, например ftp-client ftp-server?

Потому что мне нужнен запуск отдачи и приёма файла по запуску функции.







Темы с аналогичным тегами Bluetooth, OpenComputers, modem, Wirriless

Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных

Яндекс.Метрика