Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.94/18: Рейтинг темы: голосов - 18, средняя оценка - 4.94
0 / 0 / 0
Регистрация: 12.04.2014
Сообщений: 40
1

Манчестерский код, расшифровка двоичного кода кадра Ethernet II

10.06.2017, 12:00. Показов 3279. Ответов 6
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
есть осцилограмма и есть двоичный код (кадр Ethernet II) в архиве, необходимо перевести из 2ого в 10ую как пример на скрине, левая часть и правая часть конечный результат расшифровки,
Манчестерский код, расшифровка двоичного кода кадра Ethernet II
расшифровать кадр.zip по осцилограмме Все просто вверх единица вниз ноль. Если пауза маленькая то знак повторяется т.е. вверх пауза вниз это 10
А вверх вниз вверх это 11...

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
#include <conio.h>
#include <stdio.h>
#include <string.h>
#include <locale.h>
 
void StringToTextFile(const char *name)
{
  FILE *inp;
  FILE *out;
  
  char c;
  
  const char CR = '\015';
  const char LF = '\012';
        
  inp = fopen(name, "r");
  out = fopen("data.txt", "wb+");
        
  if((inp != NULL) && (out != NULL))
  {
    while(!feof(inp))
    {
      fscanf(inp, "%c", &c);
    
      if(c == '\n') 
      {
        putc(CR, out);
        putc(LF, out);
      }
      else 
        fprintf(out, "%c", c);
    }
    fclose(inp);
    fclose(out);
  }
    else
      perror ("Opening error");
}  
 
void StringFileToText(const char *name)
{
  FILE *inp;
  FILE *out;
  
  char string;
        
  inp = fopen(name, "rb+");
  out = fopen("2.bin", "w");
        
  if((inp != NULL) && (out != NULL))
  {
    while(!feof(inp))
    {
      fread(&string, sizeof(char), 1, inp);
      fprintf(out, "%c", string);
    }
  
    fclose(inp);
    fclose(out);
  }
}
 
int main(int argc, char **argv)
{
    StringToTextFile("1.bin");
    StringFileToText("data.txt");
 
  return 0;
}
пробовал через тотал командер, но препод сказал написать прогу консольную
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
10.06.2017, 12:00
Ответы с готовыми решениями:

Преобразование двоичного кода в код Грея
Задание звучит так: Разработать в среде Electronics Workbench на базе БМК( базово-матричных...

Функция преобразование двоичного кода в код Грея. Перевод из C++
Привет всем, Я хотел бы знать, если это возможно, конечно, перевод эта функция в Pascal...

Манчестерский код
Объясните пожалуйста по проще чё за способ кодирования и с чем его есть.....

Построить преобразователь четырехзначного двоичного весового кода Р в пятизначный весовой код Q
Построить преобразователь четырехзначного двоичного весового кода Р в пятизначный весовой код Q...

6
7795 / 6561 / 2985
Регистрация: 14.04.2014
Сообщений: 28,683
10.06.2017, 21:37 2
Лучший ответ Сообщение было отмечено Udji как решение

Решение

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
#include <iostream>
#include <fstream>
#include <iomanip>
 
int main()
{
    int x, y, i = 0;
    unsigned n = 0;
 
    std::ifstream ifs("data.txt");
    
    while (ifs >> x && x == 0);
 
    while (ifs >> y)
    {
        if (x == -1 && y == 1) { n = (n << 1) | 1; std::cout << 1; }
        else if (x == 1 && y == -1) { n <<= 1; std::cout << 0; }
        ++i;
        
        if (i == 8)
        {
            std::cout << std::endl << std::hex << n << std::endl << std::endl;
            n = 0;
            i = 0;
        }
        ifs >> x;
    }
}
1
0 / 0 / 0
Регистрация: 12.04.2014
Сообщений: 40
11.06.2017, 10:11  [ТС] 3
Реально Гениально, все работает!!!!!!!!
Манчестерский код, расшифровка двоичного кода кадра Ethernet II
0
nmcf
11.06.2017, 10:28
  #4

Не по теме:

Это настоящая осциллограмма? За счёт чего она так чётко синхронизирована?

0
0 / 0 / 0
Регистрация: 12.04.2014
Сообщений: 40
11.06.2017, 15:52  [ТС] 5
если так считать, то да, приближена к настоящей, сделана как то через виртуальные машины, а сама осцилограмма это типа кадра (второй файл с тхт расшифровать) который передает один комп. другому, во всяком случае я вычислил два ip и mac-адреса виртуальных машин, время и дату.... что по осцилограмме, я не помню как называется эта прога, ни разу не пользовался, но во вторник могу узнать, отпишусь тут... что по коду, я её хотел немного до работать сегодня, чтобы можно было не просто файл открывать, а самому прописывать папку где находятся такие файлы, их у меня много, но и сохранять отдельным фалом то что он перевел в 16ричный код. Боюсь не успею сегодня это все сделать, но по коду все супер
0
7795 / 6561 / 2985
Регистрация: 14.04.2014
Сообщений: 28,683
11.06.2017, 18:04 6
Ну т. е. настоящий осциллограф к проводам не подключали?
0
0 / 0 / 0
Регистрация: 12.04.2014
Сообщений: 40
15.06.2017, 17:57  [ТС] 7
нет, не подключался, скорей всего там другое было, я выяснил, что осцилограмма была построена с помощью GNU Plots, в примере заполнения таблицы и сама осцилограмма была настоящей(реальный кадр), а то что давали это уже виртуальная сеть и компы, вобщем зачет поставил но сказал что "длина/смещение" не сделал правильно, а так все норм
Манчестерский код, расшифровка двоичного кода кадра Ethernet II
0
15.06.2017, 17:57
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
15.06.2017, 17:57
Помогаю со студенческими работами здесь

Манчестерский код на MikroPascal + HopeRF HM-R433, HM-T433
Юзаю микропаскаль, а именно модуль Manshistir Code Library в связке с HopeRF HM-R433, HM-T433. Для...

Расшифровка кода
Может быть кто-нибудь сможет объяснить следующую запись Set myRange = Selection.Range ...

Расшифровка кода
private void generate(Label mas,bool visible) { int position = 0; ...

Расшифровка кода
DataSet result; private void button1_Click(object sender, EventArgs e) { ...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru