Отговори на тема  [ 143 мнения ]  Отиди на страница Предишна  1, 2, 3, 4, 5, 6, 7 ... 10  Следваща
:: ВЪПРОСИТЕ НА 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
Профил WWW
Ранг: Популярен
Ранг: Популярен

Регистриран на: Съб Ное 28, 2009 5:50 am
Мнения: 391
Местоположение: Варна
Мнение 
Написах и за ПИК-а програмата само дето не се компилира :?
Код:
#include <12F629.h>

#FUSES NOWDT                    //No Watch Dog Timer
#FUSES INTRC_IO                 //Internal RC Osc, no CLKOUT
#FUSES CPD                      //Data EEPROM Code Protected
#FUSES PROTECT                  //Code protected from reads
#FUSES MCLR                     //Master Clear pin enabled
#FUSES PUT                      //Power Up Timer
#FUSES BROWNOUT                 //Reset when brownout detected
#FUSES BANDGAP_HIGH         
#use delay(clock=4000000)
#use rs232(baud=9600,parity=N,xmit=PIN_A5,rcv=PIN_A4,bits=8)


Код:
#include "C:\Documents and Settings\ANEX\My Documents\EDHK\main.h"
#include <stdio.h>
#include <stdlib.h>
#include <string.h>


void main()
{

   char cmd[50]="";
   setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);
   setup_timer_1(T1_DISABLED);
   setup_comparator(NC_NC);
   setup_vref(FALSE);

   for(;;)
   {
   
      gets(cmd);
      if(strcmp(cmd,"check"))
      {
         gets(cmd);
         if(strcmp(cmd,"846a0338f767378cd873fd7badc328a3"))
         {
            putc("y");
         }
         else
         {
            putc("n");
         }
      }
      cmd="";
   
   }

}


Прикачени файлове:
wtffffff.PNG
wtffffff.PNG [ 6.58 KiB | Прегледано 2661 пъти ]

_________________
Ангел Димитров 95
Пон Мар 15, 2010 4:05 am
Профил WWW
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Чет Фев 10, 2005 3:25 pm
Мнения: 5681
Местоположение: София
Мнение 
Чети бре!!! Fprog да ти говори нещо?


Пон Мар 15, 2010 9:58 am
Профил
Ранг: Почетен член
Ранг: Почетен член

Регистриран на: Съб Окт 13, 2007 12:12 pm
Мнения: 712
Мнение 
А ми, така е! Докато не разбереш, че това:
cmd="";
е грешно (жива простотия :) ) няма как да не ти дава грешка.
Първо почети, после пиши!
Успех!


Пон Мар 15, 2010 9:59 am
Профил
Ранг: Популярен
Ранг: Популярен
Аватар

Регистриран на: Сря Окт 11, 2006 8:19 pm
Мнения: 373
Местоположение: София/Edinburgh, UK
Мнение 
"y" е стринг, 'у' е символ.

_________________
Българският портал за РОБОТИКА


Пон Мар 15, 2010 6:16 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Пет Ное 12, 2004 3:38 pm
Мнения: 9103
Местоположение: Chicago, IL
Мнение 
darkshy написа:
Още 1 въпрос! :)
Искам да стане "E-DIARY HK".

Сори за оффтопика, ама само да ти кажа, че diary е нещо различно от училищен дневник. Ако става въпрос за дневник, дето се пишат оценки и отсъствия де - на това му се вика school log book :) .
Diary е дето си пишеш в него какво ти се е случило днес например, та после да можеш да си го показваш на внуците :D . На български се ползва същата дума, ама на английски не е така :) .

ПП. Един приятел преди време тук беше отишъл в магазина за авточасти да търси candles, вместо spark plugs и продавача го беше гледал доста странно :D. Също така гъбички на краката не са mushrooms, а fungus :D .


Пон Мар 15, 2010 6:41 pm
Профил
Ранг: Популярен
Ранг: Популярен

Регистриран на: Съб Ное 28, 2009 5:50 am
Мнения: 391
Местоположение: Варна
Мнение 
Аааа вярно, че символите са в единични кавички. Снощи много ми се спеше и заради това... явно.. :)
Това за името се съмнявах и като написах в google translate "електронен дневник" ми излезе еl. diary ... :D
Вече е късно за модификации... :)

П.П. Ся пък рам не ми достига :evil: :evil: :evil: Предложения за оптимизация?

Код:
#include "C:\Documents and Settings\ANEX\My Documents\EDHK\main.h"
#include <stdio.h>
#include <stdlib.h>
#include <string.h>


void main()
{

   char cmd[30]="";
   char md5[]="846a0338f767378cd873fd7badc328a3";
   char cmd1[]="check";
   
   setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);
   setup_timer_1(T1_DISABLED);
   setup_comparator(NC_NC);
   setup_vref(FALSE);

   for(;;)
   {
   
      gets(cmd);
      if(strcmp(cmd,cmd1))
      {
         gets(cmd);
         if(strcmp(cmd,md5))
         {
            putc('y');
         }
         else
         {
            putc('n');
         }
      }
   
   }

}

_________________
Ангел Димитров 95


Пон Мар 15, 2010 9:14 pm
Профил WWW
Ранг: Популярен
Ранг: Популярен

Регистриран на: Съб Ное 28, 2009 5:50 am
Мнения: 391
Местоположение: Варна
Мнение 
WTF?!
Вижте прикачения файл. Защо това нещо не работи с протеуса :? :? :? :?


Прикачени файлове:
test.rar [8.32 KiB]
165 пъти

_________________
Ангел Димитров 95
Пон Мар 15, 2010 10:30 pm
Профил WWW
Ранг: Почетен член
Ранг: Почетен член

Регистриран на: Съб Окт 13, 2007 12:12 pm
Мнения: 712
Мнение 
Ангеле, ти си за "България търси таланти"! :D
Ми, кой ще ти конфигурира портовете ве?! :)


Пон Мар 15, 2010 10:46 pm
Профил
Ранг: Популярен
Ранг: Популярен

Регистриран на: Съб Ное 28, 2009 5:50 am
Мнения: 391
Местоположение: Варна
Мнение 
ами нали в хедърния файл има #use rs232 ... :) или трябва rx да го направя вход а tx - изход
т.е. set_tris_a(0b00000100); :)

P.S.
:evil: :evil: :evil: :evil: :evil: НЕСТАВА КАКВОТО И ДА ПРАВЯ :evil: :evil: :evil: :evil: :evil:

_________________
Ангел Димитров 95


Последна промяна darkshy на Пон Мар 15, 2010 10:55 pm, променена общо 2 пъти



Пон Мар 15, 2010 10:49 pm
Профил WWW
Ранг: Почетен член
Ранг: Почетен член

Регистриран на: Съб Окт 13, 2007 12:12 pm
Мнения: 712
Мнение 
Отсвири това, ами почни да си конфигурираш портовете и периферията в main функцията.


Пон Мар 15, 2010 10:54 pm
Профил
Ранг: Популярен
Ранг: Популярен

Регистриран на: Съб Ное 28, 2009 5:50 am
Мнения: 391
Местоположение: Варна
Мнение 
Код:
  setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);
   setup_timer_1(T1_DISABLED);
   setup_comparator(NC_NC);
   setup_vref(FALSE);

   set_tris_a(0x00);
   printf("TEST");


Трябва ли да инклууд stdio.h? :)

_________________
Ангел Димитров 95


Пон Мар 15, 2010 10:56 pm
Профил WWW
Ранг: Популярен
Ранг: Популярен

Регистриран на: Съб Ное 28, 2009 5:50 am
Мнения: 391
Местоположение: Варна
Мнение 
Ето и схемата. Като го напиша същия код дори без да има set_tris.. с pic16f84a - работи без грешка 8) но с тоз тъпия 629 - не ще :evil: :evil: :evil: :evil:


Прикачени файлове:
evilll.PNG
evilll.PNG [ 74.58 KiB | Прегледано 1980 пъти ]

_________________
Ангел Димитров 95
Пон Мар 15, 2010 11:14 pm
Профил WWW
Ранг: Почетен член
Ранг: Почетен член

Регистриран на: Съб Окт 13, 2007 12:12 pm
Мнения: 712
Мнение 
Не ще защото на този PIC пина, който ползваш за предаване(TX) е само вход(GPIO3/MCLR)! Що не четеш! :D
Вземи си кофигурирай TX-a на друг пин! Брей - голям талант! :D


Пон Мар 15, 2010 11:21 pm
Профил
Ранг: Популярен
Ранг: Популярен

Регистриран на: Съб Ное 28, 2009 5:50 am
Мнения: 391
Местоположение: Варна
Мнение 
Ем пак не ще :evil:
Код:
#include <12F629.h>

#FUSES NOWDT                    //No Watch Dog Timer
#FUSES INTRC_IO                 //Internal RC Osc, no CLKOUT
//#FUSES NOCPD                      //Data EEPROM Code Protected
//#FUSES NOPROTECT                  //Code protected from reads
#FUSES NOMCLR                     //Master Clear pin enabled
//#FUSES PUT                      //Power Up Timer
//#FUSES NOBROWNOUT                 //Reset when brownout detected
//#FUSES BANDGAP_HIGH         
#use delay(clock=4000000)
#use rs232(baud=9600,parity=N,xmit=PIN_A0,rcv=PIN_A1,bits=8)


фюз-а с MCLR го променям защото незнам как трябва да е като е без резистор. :) Май трябва да е NOMCLR но незнам вий кажете.

Код:
#include "C:\Documents and Settings\ANEX\My Documents\EDHK\test\main.h"
#include <stdio.h>

void main()
{

   setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);
   setup_timer_1(T1_DISABLED);
   setup_comparator(NC_NC);
   setup_vref(FALSE);

   set_tris_a(0b00000010);
   printf("TEST");

}

_________________
Ангел Димитров 95


Пон Мар 15, 2010 11:31 pm
Профил WWW
Покажи мненията от миналия:  Сортирай по  
Отговори на тема   [ 143 мнения ]  Отиди на страница Предишна  1, 2, 3, 4, 5, 6, 7 ... 10  Следваща

Кой е на линия

Потребители разглеждащи този форум: 0 регистрирани и 16 госта


Вие не можете да пускате нови теми
Вие не можете да отговаряте на теми
Вие не можете да променяте собственото си мнение
Вие не можете да изтривате собствените си мнения
Вие не можете да прикачвате файл

Търсене:
Иди на:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group.
Designed by ST Software for PTF.
Хостинг и Домейни