реклама на сайте
подробности

 
 
> Cypress(C7C86013A), Программа для C7C86013A
Игорь_M
сообщение Nov 27 2008, 18:23
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 53
Регистрация: 4-03-08
Пользователь №: 35 632



Подскажите, пожалуйста, как написать программу для связи с этим контроллером через ПК с использованием CyAPI. Конечные точки типа Bulk.
Устройство успешно находится, правильно определяются VID и PID.А при попвтке запустить обмен dev->BulkOutEndPoint->BeginDataXfer() возникает ошибка обращения по неправильному адресу.

Сообщение отредактировал Игорь_M - Nov 27 2008, 18:35
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Игорь_M
сообщение Dec 17 2008, 14:39
Сообщение #2


Участник
*

Группа: Участник
Сообщений: 53
Регистрация: 4-03-08
Пользователь №: 35 632



//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include <cyapi.h>
#include "Unit1.h"
#include <iError.h>
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
CCyUSBDevice* dev;
GUID CypGuid = {0xae18aa60, 0x7f6a, 0x11d4, 0x97, 0xdd, 0x0, 0x1, 0x2, 0x29, 0xb9, 0x59};
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
dev = new CCyUSBDevice(0,CypGuid,1);
int MaxDevCount = dev->DeviceCount();
for(int DevCount=1;DevCount<=MaxDevCount;DevCount++)
{
dev->Open(DevCount);
dev->Reset();
}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormClose(TObject *Sender, TCloseAction &Action)
{
dev->Close();
dev->~CCyUSBDevice();
}
//---------------------------------------------------------------------------

void __fastcall TForm1::Button1Click(TObject *Sender)
{
#define BUFFER_SIZE 62
#define TIMEOUT 1000
long len = BUFFER_SIZE;
unsigned char* OutBuf = new unsigned char[BUFFER_SIZE];
memset(OutBuf,0xAA,BUFFER_SIZE);
unsigned char* InBuf = new unsigned char[BUFFER_SIZE];
memset(InBuf,0x00,BUFFER_SIZE);
CCyIsoPktInfo* inf = new CCyIsoPktInfo;
CCyBulkEndPoint* OutEP = new CCyBulkEndPoint;
CCyBulkEndPoint* InEP = new CCyBulkEndPoint;
OutEP = (CCyBulkEndPoint*)dev->EndPointOf(0x02);
InEP = (CCyBulkEndPoint*)dev->EndPointOf(0x86);
OutEP->TimeOut = 1000;
InEP->TimeOut = 1000;
OutEP->XferData(OutBuf,len,inf);
InEP->XferData(InBuf,len,inf);
for(int i=0;i<BUFFER_SIZE;i++)
{
Form1->Memo1->Lines->Add(IntToStr(i)+"-"+IntToStr(InBuf[i]));
}
}
//---------------------------------------------------------------------------


В общих чертах вот он код. Где тут ошибка или Что надо добавить?
Посмотрел примеры на C#.Реализовал (на C++, так как C# не знаю) вроде как там (с точки зрения сути). Вобщем опять устройство обнаруживается, но обмена нет(
Go to the top of the page
 
+Quote Post
Konst_777
сообщение Dec 17 2008, 19:54
Сообщение #3


Знающий
****

Группа: Свой
Сообщений: 549
Регистрация: 1-06-05
Пользователь №: 5 644



Цитата(Игорь_M @ Dec 17 2008, 18:39) *
...
В общих чертах вот он код. Где тут ошибка или Что надо добавить?
Посмотрел примеры на C#.Реализовал (на C++, так как C# не знаю) вроде как там (с точки зрения сути). Вобщем опять устройство обнаруживается, но обмена нет(

Выложите RAR-архивом проекты для Visual Studio и FX2LP. Не обещаю, что это будет быстро, но, в свободное время - посмотрю.
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 22nd July 2025 - 09:02
Рейтинг@Mail.ru


Страница сгенерированна за 0.01382 секунд с 7
ELECTRONIX ©2004-2016