Гореща молба

16 отговора 0 прегледа
#1

Гореща молба

Обръщам се с молба да погледнете тази библиотека и да ми кажете какво не е наред в нея и как евентуално да се коригира. Не разбирам от тази материя, затова ще ви обясня с прости думи, дано ме разберете.
Библиотеката е писана на C и C++, предназначена е за комуникиране посредством различни интерфейси. Доколкото зная, RS232 работи, но IEEE1394 - не и точно в това е проблемът. Мисля, че липсва и някакъв файл, което пречи библиотеката да се генерира наново. Целта е комуникацията по IEEE1394 да тръгне.
Става дума за дипломна работа на студент в чужбина, молбата ми е ако може някой - да даде едно рамо до два-три дни. Ще се отблагодаря подобаващо.

[линк]

Благодаря.

Отговор
в отговор на devaluator #2

Re: Гореща молба

Трябва ти тази библиотека
[линк]

Отговор
в отговор на _NiL^_ #3

Re: Гореща молба

Благодаря. Предадох на студентката, но тя каза, че я има инсталирана и това не помага.

no, it doesn't help
so this NIALLib refered to this library also
This NIAL is only interface to this library libraw1394


Съжалявам, но тя не говори български, затова се явявам посредник.

Отговор
в отговор на devaluator #4

Re: Гореща молба

Трябва ни повече информация за проблема. Кажи и да ни прати нейна снимка по бански.

Отговор
в отговор на devaluator #5

Re: Гореща молба

... Доколкото зная, RS232 работи, но IEEE1394 - не и точно в това е проблемът. Мисля, че липсва и някакъв файл, което пречи библиотеката да се генерира наново. Целта е комуникацията по IEEE1394 да тръгне.

Целия код на библиотеката NIALLib липсва така че ако нещо вътре не работи както трябва то няма начин да се оправи. Google нищо не знае за тази библиотека така че и сорс кода не може да се намери.

Ако крайната цел е да се направи комуникация само през IEEE1394 моя съвет е да се използва директно libraw1394...

Отговор
в отговор на Пaньo Дoнeв #6

Re: Гореща молба

Казах и. Отвърна ми, че не е редно така - със снимки. Настоява да се видите наживо.

Отговор
в отговор на _NiL^_ #7

Re: Гореща молба

Благодаря много! А как би могла да използва libraw1394 директно? Към коя функция да се обърне първо?<P ID="edit"><FONT class="small">

raw1394_new_handle() and then raw1394_set_port(). is it enough to open IEEE1394?

Редактирано от devaluator на

Отговор
в отговор на devaluator #8

Re: Гореща молба

Да погледне в онлайн документацията [линк]

след сетване на порта следващата стъпка е инициализация на връзката
[линк]

ако пусне в Google search някоя функция от API-то ще излязат разни сорсове.. оттам може да види също как стават нещата

Отговор
в отговор на _NiL^_ #9

Re: Гореща молба

Много ти благодаря, че помагаш, човече, много!

Отговор
в отговор на devaluator #10

Re: Гореща молба

За нищо.. Ето един пример за изпращане на данни:


// callback function for transmission
static int xmit_packet(raw1394handle_t handle, unsigned char *data,
unsigned int *len, unsigned char *tag,
unsigned char *sy, unsigned int cycle,
unsigned int dropped)
{
*len = writeSomeData(data); // here you copy some data to the buffer and return the bytes copied
// the size of data copied must be equal or less than value of max_packet_size passed to raw1394_iso_xmit_init()

*tag = 1;
*sy = 0;
}


int main(int argc, char *argv[])
{
raw1394handle_t handle;

handle = raw1394_new_handle();
if(!handle) {
perror("raw1394_new_handle");
return -1;
}

do {
int which_port = 0;
if (raw1394_get_port_info(handle, NULL, 0) <= which_port) {
fprintf(stderr, "Port %d does not exist.\n",
which_port);
return 1;
}

raw1394_set_port(handle, which_port);
} while (errno == ESTALE);

if(errno) {
perror("raw1394_set_port");
return 1;
}


/*
buf_packets = 8000;
max_packet_size = 584;
channel = 63;
speed = RAW1394_ISO_SPEED_200;
irq_interval = -1;
*/

if(raw1394_iso_xmit_init( handle,
xmit_packet,
8000,
584,
63,
RAW1394_ISO_SPEED_200,
-1 )) {
perror("raw1394_iso_xmit_start");
return 1;
}

if(raw1394_iso_xmit_start(handle, -1, -1)) {
perror("raw1394_iso_xmit_start");
return 1;
}

while(1) {
if(raw1394_loop_iterate(handle)) {
perror("raw1394_loop_iterate");
return 1;
}
}

return 0;
}


За получаване се използват аналогичните raw1394_iso_recv_init() и raw1394_iso_recv_start().

Отговор
в отговор на _NiL^_ #11

Re: Гореща молба

И от кога дира оцветява така добре кода? :) Някакви параметри ли трябват? Или бруте форце с [цвет-карантия/]? :]]

Отговор
в отговор на BlGBUGEX #12

Re: Гореща молба

Ми вече е основен едитор на програмистите - не знаеше ли?
Прави го онлайн.

Bеer? Mоre?
Плацебото
Отговор
в отговор на BlGBUGEX #13

Re: Гореща молба

Намираш c++ парсер, сетваш callback функция която да ти се вика на всеки token и добавяш каквито си искаш тагове преди/след в зависимост от вида му. В дир-а единствения начин който открих да ми запазва интервалите в началото на редовете е с тага [ pre ] само че недостатъка е че слага по два нови реда вместо един. Може аз нещо да правя не както трябва не знам.

Отговор
в отговор на _NiL^_ #14

Re: Гореща молба

И на мен ми прави същото :/.. Може да е от \r\n под Виндовс.. Трябва да пробвам ако поствам от Линукс дали ще прави същото.

General Protection Fault in module 0xDEEBAA. Рестартирайте държавата!
Отговор
в отговор на headhunter #15

Re: Гореща молба

Най-вероятно това ще да е..

Отговор
в отговор на bira_more #16

Re: Гореща молба

Майтап майтап, ама има вече и такива. [code="fortran"] оно рипва да го оцветява :)[/code] и после пита дали да го компилира и изпълни :).

Отговор
в отговор на _NiL^_ #17

Re: Гореща молба

Пратих ти лично съобщение.

Отговор