Перейти к содержанию

D3V3L0p3R

Пользователи
  • Постов

    323
  • Зарегистрирован

  • Посещение

Весь контент D3V3L0p3R

  1. млин наконецто мона будет колосов выцепить, а то мля прячутся за спинами сталков
  2. блин, а как я мог проморгать раздачу =)
  3. D3V3L0p3R

    Battlefield 3

    побегал денёк и все, надоела эта бэта, ужасно скучная
  4. пздц меню закупки для консолек. Походу тот еще шлак выпустят
  5. Go-blin на улановке есть раздачи Англоязычная версия Русская версия
  6. Dmax кому интересно сами почитают условия. Так нада олл ин на первой минуте делать (хотя могут и не отбиться =))
  7. Зарегистрируйтесь и играйте бесплатно! Миллионы игроков уже ведут в StarCraft II: Wings of Liberty захватывающие стратегические кампании. Присоединяйтесь! Во главе инопланетной армии вам предстоит сражаться против соперников-терранов, смертоносных зергов и загадочных протоссов. Чтобы начать игру, нужно просто загрузить клиент (щелкните по кнопке ниже) и следовать указаниям на экране. Вы сможете играть в первые 5 миссий одиночной кампании, а также сражаться с друзьями в напряженных сетевых баталиях. Спешите вступить в бой! https://eu.battle.net/account/sc2/starter-edition/index.xml
  8. отлично. терь нада подождать когда на них цены упадут =)
  9. Караю халявщика =) Ссылки на сиб запрещены]Плато Шакураса (3).SC2Replay
  10. проиграл 1 отброчный, терь я опять в платине
  11. ну че, кто попал в мастер лигу?
  12. Dmax только сам со временем бронзовым станешь =)
  13. сегодня объединение регионов, кто на ру гоу побегаем
  14. какая то самоделка невзрачная. Лучше бждать пока бнет напишут
  15. стою на балконе девятого этажа, курю, и думаю нихера меня шатает, и тут прибегает жена в панике, мол замлятресение
  16. Кто нибудь работал в славии тех? как там?
  17. интересно. Телефончег у мну куплен около года назад. Проканает нет?
  18. нашел решение. { char stroka1[128]; char stroka2[30]; }; { struct dataexchange_t pdataж sprintf(pdata.stroka1, «Hello world!»); sprintf(pdata.stroka2, «кирилица»);}struct dataexchange_t Добавлено спустя 27 минут 58 секунд: к s забыл c_str() приписать
  19. Структуру могу менять как угодно. Переменую инт загнал для тестов, можно поставить char[]. Сегодня поробую
  20. Эт код на микроконтролере, т.е. он вне компа. Может все таки удастся разбить ансистирнг на чары
  21. if ( 1 == connect() ) { AnsiString s=Edit1->Text; char *b1 = new char[s.Length()/sizeof(uchar)+1]; memcpy(b1,s.c_str(),s.Length()); pdata.b1=*b1; hid.SendData(&pdata); Memo2->Lines->Add(b1); Memo2->Lines->Add(pdata.b1); delete [] b1; // Îòïðàâëÿåì äàííûå óñòðîéñòâó ПРоблема такая что передается только первый символ. Воюю уже с ним второй день. Данная прога общается с наклепаным мною девайсом. На том конце тип указан uchar, ну а для девайся учар это строго 8 бит. Добавлено спустя 3 минуты 30 секунд: #include #include #include /* íóæíî äëÿ usbdrv.h */ #include "usbdrv.h" struct dataexchange_t // Îïèñàíèå ñòðóêòóðû äëÿ ïåðåäà÷è äàííûõ { int b1; }pdata; int b2; int c; PROGMEM char usbHidReportDescriptor[22] = { // USB report descriptor // Äåñêðèïòîð îïèñûâàåò ñòðóêòóðó ïàêåòà äàííûõ äëÿ îáìåíà 0x06, 0x00, 0xff, // USAGE_PAGE (Generic Desktop) 0x09, 0x01, // USAGE (Vendor Usage 1) 0xa1, 0x01, // COLLECTION (Application) 0x15, 0x00, // LOGICAL_MINIMUM (0) // min. çíà÷åíèå äëÿ äàííûõ 0x26, 0xff, 0x00, // LOGICAL_MAXIMUM (1024) // max. çíà÷åíèå äëÿ äàííûõ, 255 òóò íå ñëó÷àéíî, à ÷òîáû óëîæèòüñÿ â 1 áàéò 0x75, 0x08, // REPORT_SIZE (8) // èíôîðìàöèÿ ïåðåäàåòñÿ ïîðöèÿìè, ýòî ðàçìåð îäíîãî "ðåïîðòà" 8 áèò 0x95, sizeof(struct dataexchange_t), // REPORT_COUNT // êîëè÷åñòâî ïîðöèé (ó íàøåì ïðèìåðå = 3, îïèñàííàÿ âûøå ñòðóêòóðà ïåðåäàñòñÿ çà òðè ðåïîðòà) 0x09, 0x00, // USAGE (Undefined) 0xb2, 0x02, 0x01, // FEATURE (Data,Var,Abs,Buf) 0xc0 // END_COLLECTION }; /* Çäåñü ìû îïèñàëè òîëüêî îäèí report, èç-çà ÷åãî íå íóæíî èñïîëüçîâàòü report-ID (îí äîëæåí áûòü ïåðâûì áàéòîì). * Ñ åãî ïîìîùüþ ïåðåäàäèì 3 áàéòà äàííûõ (ðàçìåð îäíîãî REPORT_SIZE = 8 áèò = 1 áàéò, èõ êîëè÷åñòâî REPORT_COUNT = 3). */ /* Ýòè ïåðåìåííûå õðàíÿò ñòàòóñ òåêóùåé ïåðåäà÷è */ static uchar currentAddress; static uchar bytesRemaining; void readdata() {//b2=pdata.b1; pdata.b1=b2; } void writedata() { b2=pdata.b1; } // ýòà ôóíêöèÿ áóäåò âûçâàíà, ïîñëå òîãî, êàê êîìïüþòåð çàïèøåò äàííûå struct dataexchange_t pdata; // à ýòî ñàìè äàííûå /* usbFunctionRead() âûçûâàåòñÿ, êîãäà USB õî÷åò ïðî÷èòàòü ÷àñòü äàííûõ */ uchar usbFunctionRead(uchar *data, uchar len) { uint8_t i; if(len > bytesRemaining) len = bytesRemaining; uchar *buffer=(uchar*)&pdata; if(!currentAddress) /* íè îäèí êóñîê äàííûõ åùå íå ïðî÷èòàí */ { readdata(); } for(i=0;i < len;i++) data[i]=buffer[i+currentAddress]; currentAddress += len; bytesRemaining -= len; return len; } /* usbFunctionWrite() âûçûâàåòñÿ êîãäà õîñò îòïðàâëÿåò ïîðöèþ äàííûõ ê óñòðîéñòâó * Äëÿ äîïîëíèòåëüíîé èíôîðìàöèè ñì. äîêóìåíòàöèþ â usbdrv.h */ /* usbFunctionRead() âûçûâàåòñÿ, êîãäà USB õî÷åò çàïèñàòü ÷àñòü äàííûõ */ uchar usbFunctionWrite(uchar *data, uchar len) { uint8_t i; if(bytesRemaining == 0) return 1; /* êîíåö ïåðåäà÷è */ if(len > bytesRemaining) len = bytesRemaining; uchar *buffer=(uchar*)&pdata; for(i=0;i < len;i++) buffer[i+currentAddress]=data[i]; currentAddress += len; bytesRemaining -= len; if(bytesRemaining == 0) /* âñå äàííûå ïîëó÷åíû */ { writedata(); } return bytesRemaining == 0; /* 0 îçíà÷àåò, ÷òî åñòü åùå äàííûå */ } /* ------------------------------------------------------------------------- */ usbMsgLen_t usbFunctionSetup(uchar data[8]) { usbRequest_t *rq = (void *)data; if((rq->bmRequestType & USBRQ_TYPE_MASK) == USBRQ_TYPE_CLASS){ /* HID óñòðîéñòâî */ if(rq->bRequest == USBRQ_HID_GET_REPORT){ bytesRemaining = sizeof(struct dataexchange_t); currentAddress = 0; return USB_NO_MSG; }else if(rq->bRequest == USBRQ_HID_SET_REPORT){ bytesRemaining = sizeof(struct dataexchange_t); currentAddress = 0; return USB_NO_MSG; } }else{ /* îñòàëüíûå çàïðîñû ìû ïðîñòî èãíîðèðóåì */ } return 0; } int main(void) { usbInit(); usbDeviceDisconnect(); // ïðèíóäèòåëüíî îòêëþ÷àåìñÿ îò õîñòà, òàê äåëàòü ìîæíî òîëüêî ïðè âûêëþ÷åííûõ ïðåðûâàíèÿõ! uchar i = 0; while(--i){ // ïàóçà > 250 ms _delay_ms(1); } usbDeviceConnect(); // ïîäêëþ÷àåìñÿ sei(); // ðàçðåøàåì ïðåðûâàíèÿ for(;{ // ãëàâíûé öèêë ïðîãðàììû usbPoll(); // ýòó ôóíêöèþ íàäî ðåãóëÿðíî âûçûâàòü ñ ãëàâíîãî öèêëà, ìàêñèìàëüíàÿ çàäåðæêà ìåæäó âûçîâàìè - 50 ms } return 0; } /* ------------------------------------------------------------------------- */ #include Эт софт девайса
  22. Она засылает структуру. { uchar b1; }; struct dataexchange_t pdata;struct dataexchange_t Для общение с хид девайсами. мне нада привести к виду struct dataexchange_t { uchar b1[n]; }; struct dataexchange_t pdata; Ну можно и к другому виду. Главное чтобы заслать массив чаров uchar не 8 битов длиной. Добавлено спустя 5 минут 54 секунды: Нельзя что нибудь на подобие этого ? uchar ch[i]=AnsiString s[i]
×
×
  • Создать...