W

Binbaşı
10 Haziran 2010
Tarihinde Katıldı
Takip Ettikleri
10 üye
Görüntülenme (?)
36 (Bu ay: 1)
Gönderiler Hakkında
W
6 yıl
Güvenilir Apache Tomcat sunucusu
Merhabalar,
İki adet web sitesi ve bir de Java web server (yine domain name'i olmak koşuluyla) uygulaması sunmak üzere hosting firması arıyoruz. Tavsilerinizi bekliyoruz.
W
6 yıl
C++ kullanırken göz önünde neler bulundurulmalı?
Merhabalar,
Visual C++ (ve bazı .Net kütüphaneleri) kullanarak TCP üzerinden haberleşecek bir sunucu yazmakla meşgulüz. Yabancı forumlarda (daha çok soru & cevap platformlarında) gördüğüm birkaç yorumdan ötürü bu yolu izlerken neleri dikkate almamız gerektiğiyle ilgili sizlere sormak istedim. Her sınıfımızı Managed olarak tasarladık. Managed'in ne anlama geldiği anlamış değilim, açıp okumadım da, verdiği hatalardan yola çıkarak yaptığım varsayımlarla düzelttim birçok şeyi. Ama özetleyecek olursak, hiçbirşekilde düz pointer kullanmadık, array<T> kullandık, yeni obje oluştururken gcnew kullandık, hiçbirşeyi delete etmedik (gcnew kullanınca delete etmek gerekip gerekmediğini araştırmayışımızdan ötürü). Memory management'la ilgili olsun, genel olarak C++ veya .Net ile ilgili olsun, önerileriniz, tavsiyeleriniz varsa çok memnun olurum (z) duymaktan.
İyi geceler.
W
6 yıl
TCP Server
Merhaba,

Sorum şu ki:
TCP üzerinden işleyecek olan haberleşmenin Client'ından Server'a giden istekde, Request'in şu olduğunu varsayalım:

 
<requestcode>123</requestcode>
<params>
<param>
<paramName>userName</paramName>
<paramValue>admin</paramValue>
</param>
<param>
<paramName>password</paramName>
<paramValue>asdfgh12345</paramValue>
</param>
</params>


(Formatlamaya takılmayalım lütfen, biliyorum, kötü) Burada "admin" yerine şifrelenmiş "admin" i (veya şifrenin şifrelenmiş hali olsun atıyorum) koymak mı daha mantıklı, yoksa tüm bu string'i şifreleyip göndermek mi daha mantıklı?

Detay

Küçük bir amatör iş için TCP üzerinden birkaç işlem yapacak bir server yazmayla uğraşıyorum, C# kullanarak. Şu ana kadar birşeyler geliştirmiş durumdayım. Server'ımı Request-Response mantığıyla (terim adı varsa bilmiyorum, başka bir mantıkda çalışan server tipi var mı onu da bilmiyorum) işletmek istiyorum. Gerekli sistemi kurduğumu düşünüyorum. Henüz Unit-Test vb. bir Test yöntemi ile test etme şansım olmadı (baştan girişmediğim için üşendim), tam ismini bilmediğim ama herkesin amatörken yaptığı şekilde (console application üzerinden debugger vasıtasıyla)

Şimdiye kadar Request ve Response'u şu mantık üzerine kurdum;
Request -> int RequestCode ve Parameter obje kolleksiyonu barındıran bir sınıf.
Parameter ise bir Dictionary'nin bir elemanı gibi Name ve Value'dan oluşuyor.

Şimdi karşıma şöyle bir sorun geldi (sorun demiyeyim de daha önce karşılaşmadığım için "en iyi" çözüm yolunu bilmediğim bir ayrım diyeyim):

Ben şuanda şifrelemek istediğim verileri (Request veya Response için) Parameter objesi oluştururken, Value'ya şifreleyip atıyorum, byte array'inden string'e dönüştürüp Request nesnesi oluşturup, onu da Serialize edip TCP üzerinden Server'a (Client için) veya Response'u Client'a gönderiyorum. XML'den vazgeçmemin nedeni de buydu, Şifrelenmiş bir metni string'e dönüştürüp, ondan XML oluşturmaya çalıştığımda karakter hataları alıyorum (her zaman değil, kontrol karakteri denk gelirse (?)).

Ama farkettim ki, aslında Parameter sınıfının Value'sunu Serializable herhangi bir obje yapabilirim, daha sonra Parameter koleksiyonunu da bir şekilde serialize edebilirdim (tahmin ediyorum ki Serializable olan bir sınıfın list'i otomatik olarak serializable olmuyor ? sonuçta list serializable değil ?), en son Request veya Response'u da serialize eder, tüm veriyi şifreler TCP üzerinden gönderebilirim. Sorumu tekrarlayayım:

Göndereceğim tüm veriyi şifreleyip göndermem mi daha mantıklı? Yoksa göndereceğim verinin yalnızca şifrelenmesini istediğim kısmını şifrelemem mi daha mantıklı?

Teşekkürler,
İyi forumlar.
W
6 yıl
WinObjC? Objective-C for Windows
Merhaba,
Az önce reddit'de gördüm WinObjC'yi deneme şansı olan oldu mu?
Reddit Konusu
Github
İyi forumlar.
W
7 yıl
C++ Destructor çağrısı?
Ön bilgi: kullandığım sınıflar;
Button.h
typedef void(*buttonmethod) (int buttonId, char buttonState); 

class Button
{
private:
int pin;
int id;
char oldState;
char read();
buttonmethod onstate;
public:
Button(buttonmethod onStateChange = nullptr, int Pin = 0);
//Button(method onStateChange);

void Attach(int Pin);
int GetPin();

int Read();
void Update();

int GetID();
void SetID(int ID);
};

Potentiometer.h
typedef void(*potmethod) (int potId, int potVal); 

class Potentiometer
{
private:
int id;
int sensivity;
int pin;
int val;

int read();

potmethod onval;
public:
Potentiometer(potmethod onStateChange = nullptr, int ID = 0, int Sensivity = 0);
~Potentiometer();

void Attach(int Pin);
int GetPin();

void SetSensivity(int SensivityValue);
int GetSensivity();

int Read();
void Update();

int GetID();
void SetID(int ID);
};

Joystick.h
class Joystick 
{
private:
int id;

Potentiometer *axises;
Button *buttons;

int potSize;
int buttonSize;

int potCount;
int buttonCount;

int freePotId(int base = 0);
int potIdCollapse(int id);

int freeButtonId(int base = 0);
int buttonIdCollapse(int id);

void reformButtons(const int size);
void reformPots(const int size);

public:
Joystick();
~Joystick();

char AddAxis(Potentiometer pot);
void SetPot(int potId, Potentiometer val);
Potentiometer GetPot(int potId);
void SetAxisSensivity(int SensivityValue);
int GetPotSize();
void SetPotSize(const int size);

char AddButton(Button button);
void SetButton(int buttonId, Button val);
Button GetButton(int buttonId);
int GetButtonSize();
void SetButtonSize(const int size);

int GetID();
void SetID(int ID);

void Update();
};

GS.h
class GS 
{

private:
Button *buttons;
Joystick *joysticks;
Potentiometer *pots;

int buttonCount;
int joystickCount;
int potCount;

int buttonSize;
int joystickSize;
int potSize;

void reformButtons(const int size);
void reformJoysticks(const int size);
void reformPots(const int size);

int freePotId(int base = 0);
char potIdCollapse(int id);

int freeButtonId(int base = 0);
char buttonIdCollapse(int id);

int freeJoystickId(int base = 0);
char joystickIdCollapse(int id);

public:
GS();
~GS();
void Loop();
char AddButton(Button button);
char AddJoystick(Joystick joystick);
char AddPotentiometer(Potentiometer pot);
int GetButtonSize();
void SetButtonSize(const int size);
int GetJoystickSize();
void SetJoystickSize(const int size);
int GetPotSize();
void SetPotSize(const int size);
};

main methodum;

GS gs = GS(); 
gs.SetJoystickSize(1);
Joystick j1 = Joystick();
j1.SetPotSize(3);
Potentiometer p1 = Potentiometer(ptn, 1, 1);
p1.Attach(1);
Potentiometer p2 = Potentiometer(ptn, 2, 1);
p2.Attach(2);
Potentiometer p3 = Potentiometer(ptn, 2, 1);
p3.Attach(3);
j1.AddAxis(p1);
j1.AddAxis(p2);
j1.AddAxis(p3);
gs.AddJoystick(j1);


Sorunum:
main metodundaki o son satır "gs.AddJoystick(j1);" execute edildikten sonra bir sebepten ötürü ilk resimdeki hatayı alıyorum.
Retry'a tıklayınca 2. resimdeki pencere geliyor, break deyince de 3. resimdeki yere yönlendiriyor beni. Program orada durduğunda watch ekranından axises'ın içeriğini şu şekilde görebiliyorum;
----------------------------------------------------------------------------------------------
this->axises[0] {id=1 sensivity=1 pin=1 ...} Potentiometer
id 1 int
sensivity 1 int
pin 1 int
val 0 int
onval 0x01181249 {Ground System.exe!ptn(int,int)} void (int, int) *
----------------------------------------------------------------------------------------------
this->axises[1] {id=2 sensivity=1 pin=2 ...} Potentiometer
id 2 int
sensivity 1 int
pin 2 int
val 0 int
onval 0x01181249 {Ground System.exe!ptn(int,int)} void (int, int) *
----------------------------------------------------------------------------------------------
this->axises[2] {id=0 sensivity=1 pin=3 ...} Potentiometer
id 0 int
sensivity 1 int
pin 3 int
val 0 int
onval 0x01181249 {Ground System.exe!ptn(int,int)} void (int, int) *

Tam olarak nedir hata anlamadım? Neden destructor çağırılmış onu da anlamadım?
axisesı oluşturma şeklim şöyle;
this->axises = new Potentiometer[size]; 
this->potCount = 0;
this->potSize = size;


Değiştirme şeklim şöyle;
char Joystick::AddAxis(Potentiometer pot) 
{
if (potCount < potSize)
{
if (potIdCollapse(pot.GetID()))
{
pot.SetID(freePotId());
}
axises[potCount++] = pot;
return 1;
}
else
{
return 0;
}
}


Genel olarak hatayla ilgili bilgilendirebilecek veya onun dışında yanlış yaptığım hatalı kullandığım şeyleri düzeltebilecek ufak bilgilendirmeler, yönlendirmeler çok yardımcı olacak, teşekkürler, iyi forumlar.
< Resime gitmek için tıklayın >< Resime gitmek için tıklayın >< Resime gitmek için tıklayın >
W
7 yıl
Next level low
Az önceki oyunda başıma geçen olaydan ötürü bir gereksizi ifşa etmek istiyorum. Nicki OneOfKing1, talon oynadı az önceki oyunda, syndra oynuyordum lanede 2-3 kere ölünce bana kayıttasın, hack kullanıyorsun falan dedi. Dedim istediğin şekilde kanıtlarım gel internet cafede 1v1 atalım bakalım nasıl oluyormuş felan derken, oyun boyu aynı şeyleri tekrarladı. Hayatımın en iyi syndra oyunu da sayılmaz, %70'in üzerinde win ratiom var syndrayla. Bu nasıl bi lowluktur ya? ezilince, mekanik olarak kendinden üstün birini görünce hileyle suçlamak? Her neyse uzun lafın kısası ignorelamanız tavsiye edilir :)
W
7 yıl
C++ SD card'daki veri
Merhabalar, HenningKarlsen'in UTFT kütüphanesi'ni kullanarak ekrana bitmap çizdirmeye çalışıyoruz. bitmapdatatype'ın ne olduğunu bulamasam da aşağı yukarı tahmin ediliyor koddan;

col=pgm_read_word(&data[(ty*sx)+tx]);

Sıkıntı şurada başlıyor, bitmap'i tutabilecek bir hafızamız yok şuanda. Yapabileceğimiz 2 şey var sanırım;
1. Hafızayı büyütmek
2. SD karta kaydedilen resmi çizdirmek
2.'yi biraz araştırdım, araştırırken hard disk'deki birşeyin adresiyle ilgili konularla karşılaştım. Genel olarak şöyle birşey söyleniyordu : "mapleme" ama bu mapleme örneklerinin hepsi (benim gördüklerim) bir işletim sistemine bağlı ve hard disk üzerinden çalışıyordu. Benim istediğim, veya merak ettiğim şu;
SD kart'ta sakladığım bir veriyi dinamik bir hafızaya almadan (en azından tamamını) ekranıma gönderebilir miyim? Şu tarz bir çözüm geliyor aklıma, drawBitmap fonksiyonunu bu haliyle veya üzerinde oynanmış haliyle bitmapi parça parça çizdirebilirim. Ama bu da sanıyorum epey bi yavaşlık oluşturur FPS bakımından. Aşağıya yalnızca bitmap çizdirme kısmıyla ilgili gerekli fonksiyonları yazdım. Mümkün müdür aklımdaki şey?

drawBitmap;

void UTFT::drawBitmap(int x, int y, int sx, int sy, bitmapdatatype data, int scale) 
{
unsigned int col;
int tx, ty, tc, tsx, tsy;

cbi(P_CS, B_CS);
for (ty=0; ty<sy; ty++)
{
setXY(x, y+ty, x+sx-1, y+ty);
for (tx=sx-1; tx>=0; tx--)
{
col=pgm_read_word(&data[(ty*sx)+tx]);
LCD_Write_DATA(col>>8,col & 0xff);
}
}
sbi(P_CS, B_CS);

clrXY();
}


clrXY;

void UTFT::clrXY() 
{
setXY(0,0,disp_y_size,disp_x_size);
}


sbi, cbi;

#define cbi(reg, bitmask) *reg &= ~bitmask 
#define sbi(reg, bitmask) *reg |= bitmask


setXY;

void UTFT::setXY(word x1, word y1, word x2, word y2) 
{
swap(word, x1, y1);
swap(word, x2, y2)
y1=disp_y_size-y1;
y2=disp_y_size-y2;
swap(word, y1, y2)

LCD_Write_COM_DATA(0x46,(x2 << 8) | x1);
LCD_Write_COM_DATA(0x47,y2);
LCD_Write_COM_DATA(0x48,y1);
LCD_Write_COM_DATA(0x20,x1);
LCD_Write_COM_DATA(0x21,y1);
LCD_Write_COM(0x22);
}


writecomdata;

void UTFT::LCD_Write_COM_DATA(char com1,int dat1) 
{
LCD_Write_COM(com1);
LCD_Write_DATA(dat1>>8,dat1);
}


writedata;

void UTFT::LCD_Write_DATA(char VH,char VL) 
{
sbi(P_RS, B_RS);
LCD_Writ_Bus(VH,VL,display_transfer_mode);
}


writedata;

void UTFT::LCD_Write_DATA(char VL) 
{
sbi(P_RS, B_RS);
LCD_Writ_Bus(0x00,VL,display_transfer_mode);
}


writecommand;

void UTFT::LCD_Write_COM(char VL)   
{
cbi(P_RS, B_RS);
LCD_Writ_Bus(0x00,VL,display_transfer_mode);
}


includes;
#include "UTFT.h" 
#include <pins_arduino.h>

#include "hardware/avr/HW_ATmega1280.h"

#include "memorysaver.h"
W
7 yıl
C - Pointer & Array & Fonksiyon
Merhabalar,
http://www.tutorialspoint.com/cprogramming/c_pointer_to_an_array.htm
adresindeki örneği kendimce değiştirmek istedim ve şöyle bir kod yazdım;
#include <stdio.h> 

double* getP(double arr[], int sz)
{
double *p;
int i;
for(i = 0; i < sz; i++)
{
*(p + i) = arr[i];
}
return p;
}
int main ()
{
double balance[5] = {1000.0, 2.0, 3.4, 17.0, 50.0};
double *p;
int i;

for ( i = 0; i < 5; i++ )
{
//printf("*(balance + %d) : %f\n", i, *(balance + i) );
}

double *p2 = getP(balance, 5);
for ( i = 0; i < 5; i++ )
{
printf("*(p2 + %d) : %lf\n", i, *(p2 + i) );
}

return 0;
}

getP fonksiyonunun amacı şu: Parametreye girilen arrayi pointera eleman eleman çevirip geri döndürüyor.
Ama bu kod şu haliyle çalışmıyor, yorum satırının da çalışır koda eklenmesi lazım. Ama neden? printf'e gönderilen 2. değer *(balance + i) bir işlem mi yapıyor? Cevaplarınız için teşekkür ederim, iyi forumlar.
W
7 yıl
C++ array, pointer, fonksiyon return değeri
Merhabalar, C++ ile bir kelimenin içindeki ünlüleri veren bir fonksiyon yazdım;
string *KelimedekiUnluler(string kelime) 
{
string unluler[kelime.length()];
string mevcutUnluler = "aeiou";
int unluSayac = 0;
for (int i = 0; i < kelime.length(); i = i + 1)
{
if (mevcutUnluler.find(kelime[i]) != -1)
{
if (kelime[i + 1] == '.')
{
unluler[unluSayac] = kelime.substr(i, 2);
cout << unluler[unluSayac];
unluSayac++;
}
else
{
unluler[unluSayac] = kelime.substr(i, 1);
cout << unluler[unluSayac];
unluSayac++;
}
}
}
return unluler;
}

Normalde fonksiyon çıktı yapmayacak, test etmek için cout koydum ve çalışıyor. Ama geriye döndürdüğü değerde bir sıkıntı var.
Ben bu fonksiyondan gelen değerleri bir string dizisine aktarmak istiyorum, fakat geriye dönen pointerdan hiçbirşekilde veri alamıyorum.
 
string kelime = "deneme";
string* retVal = KelimedekiUnluler(kelime);
cout << *(retVal + 1);

Mesela bunu denediğimde ilk önde eee çıktısını alıyorum fonksiyon içi cout'lardan daha sonra da program çalışmayı durduruyor ve 3221225477 değeriyle kapanıyor.

Bu fonksiyonu pointer kullanmadan yazamaz mıyım? C++'ta bir fonksiyonun geri dönüş değeri string arrayi olabilir mi?
W
7 yıl
Arduino ile Webcam'den veri almak
Merhabalar yazılım geliştirme bölümüne de yazdım konuyu ama buraya da yazayım dedim. Arduino Leonardo üzerine taktığımız basit bir webcam'den görüntü almak istiyoruz.
Webcam'den gelen veriyi analiz edebilmek için şöyle çok basit bir kod kullandık;
int webCamPin = 2; 
int val;

void setup()
{
Serial.begin(9600);
pinMode(webCamPin, INPUT);
}

void loop()
{
val = digitalRead(webCamPin);
Serial.println(val);
}

Serial Monitor'e gelen tek veri 1 oldu (bir kere değil tabi sürekli).
Benim sorularım şöyle;
1-VGA normal bir WebCam bir saniyede kaç frame yollar?
2-Bir frame -> width x height x pixel(R,G,B,A) -> 640x480x24 bit büyüklüğünde midir?
3-Arduinoda digital pinden gelen veriyi byte olarak okuyan hazır bir fonksiyon var mı? Çünkü bit hesabım doğruysa, 7372800 bit sırf bir frame için gönderiliyor ve 10 FPS desen kameraya çok büyük bir sayı yapar, açıkçası yukarıda kullandığım kodun bana bir saniyede 73728*10^3 kere bit yazabileceğini sanmıyorum, hadi println kullanmayayım yine de o kadar update rate'i yoktur heralde loop'un? Dolayısıyla bit bit okuma olayı biraz yalan gibi.

Varsa bu işle ilgilenen, bilgisi olan, yol gösterirse sevinirim. Kolay gelsin.
DH Mobil uygulaması ile devam edin. Mobil tarayıcınız ile mümkün olanların yanı sıra, birçok yeni ve faydalı özelliğe erişin. Gizle ve güncelleme çıkana kadar tekrar gösterme.