Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > Общие вопросы .NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 21.10.2015, 15:41   #1
Krasi
Форумчанин
 
Регистрация: 12.02.2010
Сообщений: 787
По умолчанию Как передать данные из программы в программу, C#

У меня есть программа С# Windows Form, на выходе которой имею два массива. Я запустил эту программу и получаю каждую секунду новые массивы, вывожу их на график. Пришла пора их как-то передать в совсем другую программу. Просто, вот создам я пустой Windows Forms и надо бы написать что-то типа
Idata[],Qdata[] get(data from Windows Forms 1);
Text1 = Idata[];
И чтобы после запуска второго приложения оно автоматически брало данные из первого приложения и использовала их.

Как это хоть примерно сделать? Как это вообще сделать? Это как (сделать)?
Krasi вне форума Ответить с цитированием
Старый 21.10.2015, 15:57   #2
come-on
Участник клуба
 
Регистрация: 21.10.2015
Сообщений: 1,361
По умолчанию

Через файлы, базу данных, параметры командной строки, тут еще много чего https://msdn.microsoft.com/en-us/lib...(v=vs.85).aspx
come-on вне форума Ответить с цитированием
Старый 21.10.2015, 16:17   #3
Krasi
Форумчанин
 
Регистрация: 12.02.2010
Сообщений: 787
По умолчанию

Так вот интерес-то в том, что программы работают циклично. Я бы рад сделать это через файл. Но сначала давайте подробнее о моей цели - мне надо так, чтобы даже если на одном компьютере стоит программа-передатчик, а на другом - программа-приемник, то и в этом случае они все-равно имели связь друг с другом.

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

А как тогда открыть файл на чтение в приемнике? Это будет быстро происходить?
Допустим, я нажал на старт, и программа передает в файл символы "Привет, Мир!". Я сразу нажал на прием, и у меня примется либо "ривет, Мир!, либо "*неопознанная бинарная хрень*". Это я сделаю синхронизацию, но мне нужна вообще минимальная задержка.
Как это сделать?

Зы - я немного радист, поэтому я за программную реализацию - это мой путь №1. А путь №2 - передать данные хотя бы через виртуальные com-порты. Например, самый простой случай - я использую 2 Ардуино, одна на COM-1, другая на COM-2, но тут я проиграю в скорости. Ethernet - идеально. Но я не хочу брать два компьютера, мне нужно прежде всего, чтобы это запускалось на одном единственном ПК. Есть предложения?

Последний раз редактировалось Krasi; 21.10.2015 в 16:21.
Krasi вне форума Ответить с цитированием
Старый 21.10.2015, 16:25   #4
come-on
Участник клуба
 
Регистрация: 21.10.2015
Сообщений: 1,361
По умолчанию

Если в одной сети, то именованные каналы берите, если в интернете, то вам тогда надо или сокеты или http или базу (с обоюдным доступом, что не оч. хорошо) использовать. Впрочем для локальной сети все это тоже подходит, и файлы, но с ними труднее, тут настройки доступа и т.п, не советовал бы.
come-on вне форума Ответить с цитированием
Старый 21.10.2015, 16:53   #5
come-on
Участник клуба
 
Регистрация: 21.10.2015
Сообщений: 1,361
По умолчанию

Вас не понять то 2 компа то уже один.
Если 1 компьютер и хотите файлы то смотрите сюда https://msdn.microsoft.com/en-us/lib...v=vs.110).aspx

Иначе от файлов лучше отказаться.

Про СОМы и адруино совсем ничего не понял.
come-on вне форума Ответить с цитированием
Старый 21.10.2015, 16:54   #6
Krasi
Форумчанин
 
Регистрация: 12.02.2010
Сообщений: 787
По умолчанию

Проблема в том, что это симуляция системы передачи данных, поэтому оптимальнее всего брать канал, в котором задержки точно не будет. Интернет не всегда работает без лагов, а Ethernet - самое то. Вот в идеале даже можно просто генерировать массивы с помощью звуковой карты, передавать их как звук, и принимать микрофоном. Но заметьте, что у меня стоит персональный комп без микрофона и динамика, а рядом куча соседей, которые не любят шум.
С другой стороны, можно просто соединить выход звуковой карты и ее вход. Вот это для меня кажется наиболее привлекательным. Возможно так сделать, можете подробнее объяснить?

ЗЫ - насчет com-портов. У меня должно учитываться 2 случая. Либо я на одном компьютере генерирую одной программой массивы и принимаю другой. Либо я на одном компьютере генерирую данные, а на другом принимаю. По сети можно это сделать, но я просто не представляю пока, как это будет выглядеть. А вообще суть в том, что сгенерированные массивы мне желательно бы передать на какой-нибудь физический порт. Если будет два компа, то один com-порт, например, передает, а другой - принимает... Но тогда скорость будет максимум 115200 б/c? А вот если надо мне сделать связь между компьютерами, один из которых стоит дома, а другой на северном полюсе? Чтобы скорость была порядка 512 кб/c. Тогда com-порт ну вообще не тянет, то есть про него давайте не будем. Например, я передаю данные по Ethernet на программно-определяемую радиосистему, например, она делает норм сигнал и передает его на северный полюс, а там такая же вещь, только работающая на прием. Тогда смотрите: если я сейчас буду использовать тот же Ethernet или звуковой канал, то это будет самый реалистичный вариант, многие программно-определяемые радиосистемы работают с USB 3.0 или с Ethernet. А звуковой канал - потому что этот же модем мне нужен для генерации звуковых сигналов, и это интересно рассмотреть.

Хотя приборы могут работать и по локальной сети, это вариант! Но предложите что-нибудь для этой задачи, я просто не программист, и пока мне решение видится только на таких пальцах, как "открыть файл, выставить его на передачу..." или "использовать такую-то библиотеку для управления Ethernet"... Ну короче мне бы подробнее, я зашел на сайт, который Вы скинули, мне еще рано такие сайты читать без дополнительных комментариев

Последний раз редактировалось Krasi; 21.10.2015 в 17:10.
Krasi вне форума Ответить с цитированием
Старый 21.10.2015, 17:27   #7
come-on
Участник клуба
 
Регистрация: 21.10.2015
Сообщений: 1,361
По умолчанию

При чем тут вообще СОМ порты?

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

Если у вас приборы могут сами передавать, то совсем не понятно в чем тогда вопрос.
come-on вне форума Ответить с цитированием
Старый 21.10.2015, 17:45   #8
Krasi
Форумчанин
 
Регистрация: 12.02.2010
Сообщений: 787
По умолчанию

Вопрос в том, что надо передать информацию на приборы. Это делается по Ethernet, либо по USB 3.0. Но должна быть возможность передать данные без приборов, как бы в режиме симуляции. То есть, как пример - просто по Ethernet между 2 компьютерами передавать данные. Я тут подумал, можно и просто через локальную сеть, да и Вы так предложили. Поэтому забудьте остальное. Я думаю, передача по сети - самое то. А как можно сделать простейшую программу, которая будет передавать некоторый массив значений по локальной сети, просто чтобы открыл браузер, набрал 127.0.0.1 и увидел массивы, которые отправляются?
Krasi вне форума Ответить с цитированием
Старый 21.10.2015, 18:26   #9
come-on
Участник клуба
 
Регистрация: 21.10.2015
Сообщений: 1,361
По умолчанию

А браузер зачем сюда притянули? он вам не поможет
Вам надо что то из списка в #1, я бы подумал про именованные каналы или сокеты.
come-on вне форума Ответить с цитированием
Старый 21.10.2015, 18:30   #10
Krasi
Форумчанин
 
Регистрация: 12.02.2010
Сообщений: 787
По умолчанию

http://professorweb.ru/my/csharp/web/level3/3_2.php Сокеты. Вроде то. А я могу во время работы с сокетом считать данные с программы с помощью браузера? Передатчик у меня будет сервером, или клиентом? До меня это еще не дошло
Krasi вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как передать данные в поток.. login10 C# (си шарп) 9 01.11.2014 15:08
Как передать данные из WebBrowser'a ? Santa86 C# (си шарп) 0 15.10.2014 17:42
как передать на сервер табличные данные Arassir PHP 3 02.10.2011 23:07
Как передать данные из БД в ComBox uni Microsoft Office Excel 8 22.07.2011 08:20
Как передать данные уже в запущеную программу dr.Chas Общие вопросы Delphi 15 18.06.2008 22:16