7 / 7 / 3
Регистрация: 08.02.2013
Сообщений: 42
1

Передача файла из одного ПК к другому

21.02.2013, 21:53. Показов 1795. Ответов 11
Метки нет (Все метки)

Мне нужно, чтоб я мог передавать файлы через com порт на другой комп'ютер через програму, но не знаю даже примерно как реализовать это.Я не прошу скинуть готовый код, всего лишь дайте мне указание на материалы(название или ссылку)
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
21.02.2013, 21:53
Ответы с готовыми решениями:

Передача свойства одного экземпляра класса другому экземпляру класса
#include <tchar.h> class A { public: A(); int aVar; }; class B : public A

Неправильная передача данных из одного файла в другой
Здравствуйте! Возникли проблемы с записью информации в файл. Часть кода: unsigned char bady,...

Передача .exe другому
Хочу скинуть другу .exe скомпилированный проект в VS13 (Ctrl+F7). Скидываю просто .exe(Который я...

Переход из одного интервала к другому
Прошу прощения, не знаю где должна быть подобная тема. У меня есть интервал примерно , массив...

11
Антикодер
1876 / 854 / 48
Регистрация: 15.09.2012
Сообщений: 3,011
21.02.2013, 22:08 2
Открываешь COM порт как файл:
C++
1
2
3
4
5
6
int hf = FileOpen("COM1", fmOpenReadWrite);
 
//Далее пишешь в порт
FileWrite(hf, cmd, size);
//Читаешь из порта
FileRead(hf, buf, size);
Добавлено через 1 минуту
Последовательный порт
Работа с COM портом с использованием библиотеки TrComPort.dll (TrComPort_BCB.lib)

Добавлено через 6 минут
некоторые ещё советуют использовать Boost.Asio но я лично не смотрел эту штуку
1
7 / 7 / 3
Регистрация: 08.02.2013
Сообщений: 42
21.02.2013, 22:12  [ТС] 3
Поподробней можно?
0
Антикодер
1876 / 854 / 48
Регистрация: 15.09.2012
Сообщений: 3,011
21.02.2013, 22:19 4
тут ещё поподробнее есть Асинхронная работа с COM портом.

Могу сам рассказать
Есть такая частица электрон, это нечто иное как материя.

Такие частицы могут перемещаться в металическом проводе(например медном). Когда они перемещаются возникает напряжение. Объяснить, что такое напряжение в проводе?
0
7 / 7 / 3
Регистрация: 08.02.2013
Сообщений: 42
21.02.2013, 22:21  [ТС] 5
Да я про код поподробней написал=(
0
3653 / 2990 / 828
Регистрация: 25.03.2012
Сообщений: 11,026
Записей в блоге: 1
21.02.2013, 22:30 6
Достаточно знать такие WinAPI функции как
CreateFile
WriteFile
ReadFile
GetCommState
SetCommState
PurgeComm
CloseHandle

Если реализовывать чтение порта в отдельном потоке, ещё немного функций для работы с потоками и событиями
CreateThread
CreateEvent
SuspendThread
ResumeThread
SetEvent
WaitForSingleObject

Добавлено через 3 минуты
Пример из книги Ю.Магда. Программирование последовательных интерфейсов.
Приём данных из COM3 сохранение их в файл, вывод на экран, и отправка обратно по ком-порту.
C
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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
#include <windows.h>
#include <stdio.h>
#include <conio.h>
 
char buf[128];
char *pbuf = buf;
int counter = 0;
 
HANDLE hCom, hEvent;
DWORD bytesRead, bWritten;
 
BOOL fSuccess;
HANDLE hThread;
DWORD dwParam, dwThreadId;
 
VOID WINAPI ThreadProc(PVOID* dummy)
{
 printf("Waiting for data from COM4...\n");
 while (true)
 {
     ReadFile(hCom,
              pbuf,
              1,
              &bytesRead,
              NULL);
     if (bytesRead > 0)
      {
       WriteFile(hCom,
                 pbuf++,
                 1,
                 &bWritten,
                 NULL);
                 counter++;
      if (counter == 10)
       {
        SetEvent(hEvent);
        buf[counter] = '\0';
        counter = 0;
        pbuf = buf;
       }
   }
 }
}
 
void main(void)
{
  char *pcComPort = "COM4";
  DCB dcb;
  FILE *fout;
 
  hCom = CreateFile(pcComPort,
                    GENERIC_READ | GENERIC_WRITE,
                    0,
                    NULL,
                    OPEN_EXISTING,
                    0,
                    NULL);
  if (hCom == INVALID_HANDLE_VALUE)
   {
     printf("COM4 opening error!\n");
     return;
   }
 
  GetCommState(hCom, &dcb);
  dcb.BaudRate = CBR_9600;
  dcb.ByteSize = 8;
  dcb.Parity = NOPARITY;
  dcb.StopBits = ONESTOPBIT;
  fSuccess = SetCommState(hCom, &dcb);
 
  if (!fSuccess)
   {
    printf ("SetCommState failed with error %d.\n", GetLastError());
    return;
   }
 
  printf ("Serial port %s successfully reconfigured.\n", pcComPort);
  GetCommState(hCom, &dcb);
  printf("COM4 baud rate is %d\n", dcb.BaudRate);
 
  hEvent = CreateEvent(NULL, FALSE, FALSE, NULL);
  hThread = CreateThread(NULL,
                         0,
                         (LPTHREAD_START_ROUTINE)ThreadProc,
                         &dwParam,
                         0,
                         &dwThreadId);
  if ((fout = fopen("c:\\Test", "a+")) == NULL)
   {
    printf("Can't create file!\n");
    return;
   }
  printf("Press Enter to exit...\n");
  do
    {
      WaitForSingleObject(hEvent, INFINITE);
      printf("%s\n", buf);
      fwrite(buf, sizeof(char), 10, fout);
    } while (!kbhit());
 
  fclose(fout);
  CloseHandle(hCom);
  return;
}
1
7 / 7 / 3
Регистрация: 08.02.2013
Сообщений: 42
21.02.2013, 23:24  [ТС] 7
Это уже получше=)

Добавлено через 42 минуты
Не могу понять как написать код!!!
0
Антикодер
1876 / 854 / 48
Регистрация: 15.09.2012
Сообщений: 3,011
22.02.2013, 09:40 8
Цитата Сообщение от King Of Kings Посмотреть сообщение
Это уже получше=)

Добавлено через 42 минуты
Не могу понять как написать код!!!
за вас уже всё написали.

всё что вам нужно это Литература C++

Чуть не забыл, для отладки может потребоваться рабочая программа, Com Port Toolkit она позволяет передавать файл по COM порту. Эта программа мне всегда сильно помогает.
0
aLarman
22.02.2013, 17:14
  #9

Не по теме:

Цитата Сообщение от XRuZzz Посмотреть сообщение
Такие частицы могут перемещаться в металическом проводе(например медном). Когда они перемещаются возникает напряжение.
это не напряжение, это ток

0
3653 / 2990 / 828
Регистрация: 25.03.2012
Сообщений: 11,026
Записей в блоге: 1
22.02.2013, 22:06 10
Цитата Сообщение от King Of Kings Посмотреть сообщение
Не могу понять как написать код!!!
что конкретно. Вот код написан, например. Что в нём непонятно?
0
XRuZzz
22.02.2013, 22:54
  #11

Не по теме:

Цитата Сообщение от aLarman Посмотреть сообщение

Не по теме:


это не напряжение, это ток

...
я в том смысле если частицы движутся то работа по переносу заряда совершается, если нет, не совершается

0
7 / 7 / 3
Регистрация: 08.02.2013
Сообщений: 42
19.03.2013, 17:12  [ТС] 12
Kuzia domovenok, Напиши пример чтения запись файла через ReadFile WriteFile(файл любой длинны)
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
19.03.2013, 17:12
Помогаю со студенческими работами здесь

Передача свойств одного компонента другому
Добрый день. Не подскажите - вопрос такой. Есть эталонный StringGrid1 с кучей свойств -...

Передача значения переменных одного класса другому
Всем привет. Нужно передать значения одного класса другому, при этом семантика методов класса...

Передача значимого типа от одного List<T> другому
Добрый день, уважаемые форумчане! Прошу помочь в передаче значений от одного List&lt;T&gt; другому: дело...

SignalR v2: передача данных от одного пользователя другому
Нужна помощь по SignalR v2, конкретно: Передача данных от js приложения одного пользователя к js...


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

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru