| Автор |
Съобщение |
|
darkshy
Ранг: Популярен
Регистриран на: Съб Ное 28, 2009 5:50 am Мнения: 391 Местоположение: Варна
|
Още 1 въпрос!
Разцъках този DLL и ми се стори добре, но:
Ако имам 3-4 ft232-та закачени към компютъра как да разпознавам кое е точно това което е предназначено за ключ-а?
Върши ми работа по Description на Device-a ама как мога да го сменя? На моя е: "FT232R USB UART". Искам да стане "E-DIARY HK".
Разгледах DLL-a и май не намерих функции и тем подобни за смяна на DESCRIPTION. Не съм сигурен трябва пак да огледам, но май не намерих.
Данеби по CBUS крачетата да трябва да се програмира вътрешния EEPROM?
П.П. Ето до къде стигнах:
 |  |  |  | Код: using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.IO;
using FTD2XX_NET;
namespace EDHK { class Program { static void Main(string[] args) { UInt32 ftdiDeviceCount = 0; UInt32 i1 = 0; FTDI.FT_STATUS ftStatus = FTDI.FT_STATUS.FT_OK;
Console.WriteLine("Welcome to E-DIARY Hardware Key Validator"); Console.WriteLine("by darkshy"); Console.WriteLine("");
FileStream file = new FileStream("site.txt", FileMode.OpenOrCreate, FileAccess.Read); StreamReader sr = new StreamReader(file); string website = sr.ReadToEnd(); sr.Close(); file.Close();
Console.Write("Enter your key: "); string key=Console.ReadLine(); if (key == "") { Console.WriteLine("Please enter the key!"); Console.WriteLine("Press any key to exit..."); Console.ReadKey(); return; } System.Security.Cryptography.MD5CryptoServiceProvider x = new System.Security.Cryptography.MD5CryptoServiceProvider(); byte[] bs = System.Text.Encoding.UTF8.GetBytes(key); bs = x.ComputeHash(bs); System.Text.StringBuilder s = new System.Text.StringBuilder(); foreach (byte b in bs) { s.Append(b.ToString("x2").ToLower()); } key = s.ToString();
FTDI myFtdiDevice = new FTDI(); ftStatus = myFtdiDevice.GetNumberOfDevices(ref ftdiDeviceCount); if (ftStatus != FTDI.FT_STATUS.FT_OK) { Console.WriteLine("Failed to get number of Hardware Keys (error " + ftStatus.ToString() + ")"); Console.WriteLine("Press any key to exit..."); Console.ReadKey(); return; }
if (ftdiDeviceCount == 0) { Console.WriteLine("No Hardware Key attached to USB!"); Console.WriteLine("Press any key to exit..."); Console.ReadKey(); return; }
FTDI.FT_DEVICE_INFO_NODE[] ftdiDeviceList = new FTDI.FT_DEVICE_INFO_NODE[ftdiDeviceCount];
ftStatus = myFtdiDevice.GetDeviceList(ftdiDeviceList);
if (ftStatus == FTDI.FT_STATUS.FT_OK) { for (UInt32 i = 0; i < ftdiDeviceCount; i++) { if (ftdiDeviceList[i].Description.ToString() == "E-DIARY HK") { i1 = i; break; } } }
ftStatus = myFtdiDevice.OpenBySerialNumber(ftdiDeviceList[i1].SerialNumber); if (ftStatus != FTDI.FT_STATUS.FT_OK) { Console.WriteLine("Failed to connect to the Hardware Key (error " + ftStatus.ToString() + ")"); Console.WriteLine("Press any key to exit..."); Console.ReadKey(); return; }
ftStatus = myFtdiDevice.SetBaudRate(9600); if (ftStatus != FTDI.FT_STATUS.FT_OK) { Console.WriteLine("Failed to set Baud rate (error " + ftStatus.ToString() + ")"); Console.WriteLine("Press any key to exit..."); Console.ReadKey(); return; }
ftStatus = myFtdiDevice.SetDataCharacteristics(FTDI.FT_DATA_BITS.FT_BITS_8, FTDI.FT_STOP_BITS.FT_STOP_BITS_1, FTDI.FT_PARITY.FT_PARITY_NONE); if (ftStatus != FTDI.FT_STATUS.FT_OK) { Console.WriteLine("Failed to set data characteristics (error " + ftStatus.ToString() + ")"); Console.WriteLine("Press any key to exit..."); Console.ReadKey(); return; }
ftStatus = myFtdiDevice.SetFlowControl(FTDI.FT_FLOW_CONTROL.FT_FLOW_NONE,0,0); if (ftStatus != FTDI.FT_STATUS.FT_OK) { Console.WriteLine("Failed to set flow control (error " + ftStatus.ToString() + ")"); Console.WriteLine("Press any key to exit..."); Console.ReadKey(); return; }
ftStatus = myFtdiDevice.SetTimeouts(5000, 0); if (ftStatus != FTDI.FT_STATUS.FT_OK) { Console.WriteLine("Failed to set timeouts (error " + ftStatus.ToString() + ")"); Console.WriteLine("Press any key to exit..."); Console.ReadKey(); return; }
string dataToWrite = "check"; UInt32 numBytesToWrite = 0; ftStatus = myFtdiDevice.Write(dataToWrite, dataToWrite.Length,ref numBytesToWrite); if (ftStatus != FTDI.FT_STATUS.FT_OK) { Console.WriteLine("Failed to write to device (error " + ftStatus.ToString() + ")"); Console.WriteLine("Press any key to exit..."); Console.ReadKey(); return; }
dataToWrite = key; numBytesToWrite = 0; ftStatus = myFtdiDevice.Write(dataToWrite, dataToWrite.Length, ref numBytesToWrite); if (ftStatus != FTDI.FT_STATUS.FT_OK) { Console.WriteLine("Failed to write to device (error " + ftStatus.ToString() + ")"); Console.WriteLine("Press any key to exit..."); Console.ReadKey(); return; }
string readData; UInt32 numBytesToRead = 0; ftStatus = myFtdiDevice.Read(out readData,1,ref numBytesToRead); if (ftStatus != FTDI.FT_STATUS.FT_OK) { Console.WriteLine("Failed to read data (error " + ftStatus.ToString() + ")"); Console.WriteLine("Press any key to exit..."); Console.ReadKey(); return; }
if (readData == "y") { website += "index.php?key="+key; System.Diagnostics.Process.Start("iexplore.exe", website); } else if (readData == "n") { Console.WriteLine("This key is wrong!"); } else { Console.WriteLine("Hardware key is damaged!"); }
ftStatus = myFtdiDevice.Close(); Console.WriteLine("Press any key to exit..."); Console.ReadKey(); return; } } }
|  |  |  |  |
_________________ Ангел Димитров 95
|
| Пон Мар 15, 2010 12:35 am |
|
 |
|
darkshy
Ранг: Популярен
Регистриран на: Съб Ное 28, 2009 5:50 am Мнения: 391 Местоположение: Варна
|
Написах и за ПИК-а програмата само дето не се компилира
_________________ Ангел Димитров 95
|
| Пон Мар 15, 2010 4:05 am |
|
 |
|
Desert Leo
Ранг: Форумен бог
Регистриран на: Чет Фев 10, 2005 3:25 pm Мнения: 5681 Местоположение: София
|
Чети бре!!! Fprog да ти говори нещо?
|
| Пон Мар 15, 2010 9:58 am |
|
 |
|
fan
Ранг: Почетен член
Регистриран на: Съб Окт 13, 2007 12:12 pm Мнения: 712
|
А ми, така е! Докато не разбереш, че това:
cmd="";
е грешно (жива простотия  ) няма как да не ти дава грешка.
Първо почети, после пиши!
Успех!
|
| Пон Мар 15, 2010 9:59 am |
|
 |
|
sv_shady
Ранг: Популярен
Регистриран на: Сря Окт 11, 2006 8:19 pm Мнения: 373 Местоположение: София/Edinburgh, UK
|
"y" е стринг, 'у' е символ.
|
| Пон Мар 15, 2010 6:16 pm |
|
 |
|
Dimitar
Ранг: Форумен бог
Регистриран на: Пет Ное 12, 2004 3:38 pm Мнения: 9103 Местоположение: Chicago, IL
|
Сори за оффтопика, ама само да ти кажа, че diary е нещо различно от училищен дневник. Ако става въпрос за дневник, дето се пишат оценки и отсъствия де - на това му се вика school log book  .
Diary е дето си пишеш в него какво ти се е случило днес например, та после да можеш да си го показваш на внуците  . На български се ползва същата дума, ама на английски не е така  .
ПП. Един приятел преди време тук беше отишъл в магазина за авточасти да търси candles, вместо spark plugs и продавача го беше гледал доста странно  . Също така гъбички на краката не са mushrooms, а fungus  .
|
| Пон Мар 15, 2010 6:41 pm |
|
 |
|
darkshy
Ранг: Популярен
Регистриран на: Съб Ное 28, 2009 5:50 am Мнения: 391 Местоположение: Варна
|
Аааа вярно, че символите са в единични кавички. Снощи много ми се спеше и заради това... явно..
Това за името се съмнявах и като написах в google translate "електронен дневник" ми излезе еl. diary ...
Вече е късно за модификации...
П.П. Ся пък рам не ми достига  Предложения за оптимизация?
_________________ Ангел Димитров 95
|
| Пон Мар 15, 2010 9:14 pm |
|
 |
|
darkshy
Ранг: Популярен
Регистриран на: Съб Ное 28, 2009 5:50 am Мнения: 391 Местоположение: Варна
|
_________________ Ангел Димитров 95
|
| Пон Мар 15, 2010 10:30 pm |
|
 |
|
fan
Ранг: Почетен член
Регистриран на: Съб Окт 13, 2007 12:12 pm Мнения: 712
|
Ангеле, ти си за "България търси таланти"!
Ми, кой ще ти конфигурира портовете ве?! 
|
| Пон Мар 15, 2010 10:46 pm |
|
 |
|
darkshy
Ранг: Популярен
Регистриран на: Съб Ное 28, 2009 5:50 am Мнения: 391 Местоположение: Варна
|
_________________ Ангел Димитров 95
Последна промяна darkshy на Пон Мар 15, 2010 10:55 pm, променена общо 2 пъти
|
| Пон Мар 15, 2010 10:49 pm |
|
 |
|
fan
Ранг: Почетен член
Регистриран на: Съб Окт 13, 2007 12:12 pm Мнения: 712
|
Отсвири това, ами почни да си конфигурираш портовете и периферията в main функцията.
|
| Пон Мар 15, 2010 10:54 pm |
|
 |
|
darkshy
Ранг: Популярен
Регистриран на: Съб Ное 28, 2009 5:50 am Мнения: 391 Местоположение: Варна
|
Трябва ли да инклууд stdio.h? 
_________________ Ангел Димитров 95
|
| Пон Мар 15, 2010 10:56 pm |
|
 |
|
darkshy
Ранг: Популярен
Регистриран на: Съб Ное 28, 2009 5:50 am Мнения: 391 Местоположение: Варна
|
_________________ Ангел Димитров 95
|
| Пон Мар 15, 2010 11:14 pm |
|
 |
|
fan
Ранг: Почетен член
Регистриран на: Съб Окт 13, 2007 12:12 pm Мнения: 712
|
Не ще защото на този PIC пина, който ползваш за предаване(TX) е само вход(GPIO3/MCLR)! Що не четеш!
Вземи си кофигурирай TX-a на друг пин! Брей - голям талант! 
|
| Пон Мар 15, 2010 11:21 pm |
|
 |
|
darkshy
Ранг: Популярен
Регистриран на: Съб Ное 28, 2009 5:50 am Мнения: 391 Местоположение: Варна
|
Ем пак не ще
фюз-а с MCLR го променям защото незнам как трябва да е като е без резистор.  Май трябва да е NOMCLR но незнам вий кажете.
_________________ Ангел Димитров 95
|
| Пон Мар 15, 2010 11:31 pm |
|
|