Hirdetés
-
AMD-s alternatívát ajánl az NVIDIA AI ellen a Microsoft
it AMD-s alternatívát kapnak az NVIDIA AI-processzorokra a Microsoft felhős ügyfelei.
-
Fehér zakót öltenek a Super Flower platinás Leadex VII Pro tápjai
ph A kétféle kapacitással készülő, 12+4 tűs csatolóval szállított típus érdekessége, hogy az eszköz felőli oldalon egységesített konnektorokkal jön.
-
Újabb előzetesen a GreedFall II: The Dying World
gp Az új rész korai kiadása a nyáron érkezik PC-re, a teljes változat PlayStation 5-re és Xbox Series X/S-re is befut majd.
Új hozzászólás Aktív témák
-
don_peter
senior tag
Srácok egy kis segítségre lenne szükségem.
Lehet nem is kicsire, remélem jó helyre írok.Csharp 2012-ben próbálok maradandót alkotni, de csak nehezen megy
Következő a helyzet.
Egy bin-fájlt kellene megnyitnom úgy, hogy szavanként olvassa be és a szavakat tömbökbe rendezné.
Eljutottam odáig, hogy txt-fájlt tudok megnyitni egészben listázva vagy soronként, esetleg karakterenként is le tudom bontani (a sorokat), de bin fájl esetében ez sajnos nem megy.Egy próba teszt file innen tölthető le: [link]
Nem vírusos, ez egy Sega MegaDrive játék ROM fájl.A lényege az lenne, hogy beolvasnám ezt a fájlt és byte-onként tömbbe rendezném az adatot aztán a további művelet egy másik hardverre történő COM-portos adatküldés lenne amit már megírtam illetve egy része már megvan és működik.
Persze ha nem kell tömbbe rendezni és úgy is lehet byte-onként az adatokat kiolvasni és küldeni úgy is jó..Valaki tudna segíteni e témában?
Előre is köszönöm.----== Neo Geo és Arcade Fórum : www.neo-geo.hu ==----
-
don_peter
senior tag
Köszönöm, már tárgytalan.
Megírtam.----== Neo Geo és Arcade Fórum : www.neo-geo.hu ==----
-
don_peter
senior tag
Srácok miért van az, ha írok egy programot azt más gépen nem lehet futtatni?
Hivatkozik CLR20r3-ra és a System.IO.FileNotFoundException hibára.
Meg még jó párr dolgot ír, de gondolom ez a lényeg.
4 és 4-5-ös Microsoft Net Framework keretekkel próbáltam, de továbbra is a hibára hivatkozva nem indul.
Mit tudok tenni, hogy elinduljon?[ Szerkesztve ]
----== Neo Geo és Arcade Fórum : www.neo-geo.hu ==----
-
don_peter
senior tag
Uraim lenne egy kérdésem a következő programmal kapcsolatban.
Írtam egy kis rutint ami 0x20-tól 0x32-ig küld COM porton egy adatsort.
Minden egyes adat után vár egy választ a célhardvertől, de van olyan eset amikor nem jön.
Ekkor a program vár és ez felfogható egyfajta fagyásnak is mert nem jön soha válasz.
A cél hardverrel van gondolom, hiba és ezért akad le a program.Van mód arra, hogy beállítsak egy időlimitet ami megszakítja a programom futását?
A kód:
byte[] buffer = new byte[3];
buffer[0] = 0;
buffer[1] = 0xff;
buffer[2] = 0x20;
while (a < 1) {
if (buffer[2] >= 50) break;
serialPort1.Write(buffer, 2, 1);
textBox1.Text += buffer[2].ToString("X") + "\r\n";
serialPort1.Read(buffer, 0, 1);
buffer[2]++;
}
Valami ilyen timeout vagy ilyesmire gondolok.
A lényeg, hogy ha 1-2mp-ig nem jön válasz akkor szakítsa meg a program futását.
Előre is köszi.[ Szerkesztve ]
----== Neo Geo és Arcade Fórum : www.neo-geo.hu ==----
-
don_peter
senior tag
válasz sztanozs #6901 üzenetére
Igen pont ezt használom, de bezárja a programot.:
serialPort1.Write(buffer, 2, 1);
textBox1.Text += buffer[2].ToString("X") + "\r\n";
serialPort1.ReadTimeout = 1000;
serialPort1.Read(buffer, 0, 1);
Elég lenne egy hiba üzenetet küldenie vagy csak alap helyzetbe kerülni vagy megszüntetné az adat küldési folyamot.[ Szerkesztve ]
----== Neo Geo és Arcade Fórum : www.neo-geo.hu ==----
-
don_peter
senior tag
Srácok, szeretnék 64byte-ot kiküldeni serialport-on.
Ezt csak string-ként tudom megtenni ha egyben akarom kiküldeni?
Byte-onként már megoldottam, csak nagyon sok időbe telik.
2byte között akár 1ms-ot is elidőzik a program. Nagy a veszteség.----== Neo Geo és Arcade Fórum : www.neo-geo.hu ==----
-
don_peter
senior tag
válasz rgeorge #6911 üzenetére
Igen System.IO.Ports.SerialPort-ot használok.
rows = System.IO.File.ReadAllBytes(open.FileName);
Így a rows az egy tömb.
A hossza változó.
Ezt kellene 64byte-okra feldarabolva kiküldenem COM portra.
Hogy tudok egy 64byte tömböt kiküldeni?
Ügy nem csak string-ként megy..?----== Neo Geo és Arcade Fórum : www.neo-geo.hu ==----
-
don_peter
senior tag
válasz lord.lakli #7235 üzenetére
Nem értem ezt a kérdést..
Csak olvasás?
Mire gondolsz?----== Neo Geo és Arcade Fórum : www.neo-geo.hu ==----
-
don_peter
senior tag
Uraim, még egy problémám lenne.
Optimalizálnám a több file feltöltési ciklusomat.
Arra gondoltam, hogy a 4 file-omat amit behívok a programba egy tömbbe teszem bele egymás után és a végén a maximum 8MB-os tömböm meg szépen fel tudom tölteni egy ciklusom belül.
Ebből van nekem 4db:file1 = System.IO.File.ReadAllBytes(open.FileName1);
file2 = System.IO.File.ReadAllBytes(open.FileName2);
file3 = System.IO.File.ReadAllBytes(open.FileName3);
file4 = System.IO.File.ReadAllBytes(open.FileName4);
Persze mindegyik lekezelve ahogyan kell.
Ezek után ezeket szeretném egy 2dimenziós tömbbe elhelyezni.
Az első dimenzió maximum 4 lenne, vagy is 0-3-ig.
A második dimenzió pedig attól függne mekkora a file amit bele töltök.
Így próbálkoztam:byte[] array;
array[0] = file1;
...stb
Aztán így is:byte[,] array = new byte[4,(1024*1024*8)];
array[0] = file1;
Utóbbi már többdimenziós lenne, de számít, hogy a beletöltött file mérete mekkora.
Sajnos eddig nem jött össze.
Előre is köszi a segítséget..ui: nem muszáj több dimenziós tömböt használnom lehet egy, maximum 4 file össz méretével megegyező és a 4 fájl adataival feltöltött sima tömb is ami bejárható.
[ Szerkesztve ]
----== Neo Geo és Arcade Fórum : www.neo-geo.hu ==----
-
don_peter
senior tag
válasz don_peter #7240 üzenetére
Közben megoldottam egy sor for() ciklussal, de ha van jobb ötlet akkor szívesen venném.
uint AddrCount = 0;
for (i = 0; i < file1.Length; i++)
{
FileRoms[AddrCount++] = file1[i];
}
for (i = 0; i < file2.Length; i++)
{
FileRoms[AddrCount++] = file2[i];
}
for (i = 0; i < file3.Length; i++)
{
FileRoms[AddrCount++] = file3[i];
}
for (i = 0; i < file4.Length; i++)
{
FileRoms[AddrCount++] = file4[i];
}[ Szerkesztve ]
----== Neo Geo és Arcade Fórum : www.neo-geo.hu ==----
-
don_peter
senior tag
Azért mert byte-onként kezelem az adatokat.
Egy hardverre küldöm át az adatokat, amely byte-onként fogadja és dolgozza fel.
Itt nincs előzménye.. De meg tudom mutatni miről van szó, ha látni akarod vagy csak képbe akarsz kerülni a lényegével.[ Szerkesztve ]
----== Neo Geo és Arcade Fórum : www.neo-geo.hu ==----
-
don_peter
senior tag
Egy saját fejlesztésű hardverről van szó.
Itt egy videó az adat feltöltésről: [DPTP System - DPTP SMFD 64/128Mbit cartridge proto ]
A videón látszik, hogy csak 1 fájl választható ki, de az új verzión már 4.
Ezt képbe tudom csak mutatni:Utóbbi esetben kellene összefűzöm a betöltött fájlokat egy tömbbe, majd azt az egy tömböt fogom feltölteni a hardverre..
Ha van ötleted vagy példa kódod a byte-os ősszéfűzésre, ne tartsd magadba, mert a feljebb beírt kódom nem a legjobb és szerintem hibás is, mert kb 6.7MB után valami hiba miatt nem tölt be semmit.----== Neo Geo és Arcade Fórum : www.neo-geo.hu ==----
-
don_peter
senior tag
Most lord-lakli javaslatára ezt tesztelem:
var osszefuzott = new byte[DataLenght]; // DataLenght értéke a 4 file mérete
rows.CopyTo(osszefuzott, 0);
rows2.CopyTo(osszefuzott, rows.Length);
rows3.CopyTo(osszefuzott, rows2.Length);
rows4.CopyTo(osszefuzott, rows3.Length);Ez után kipróbálom majd ezt ez, mert az első teszten már nem ment át a fentebbi kód.:
byte[] rv = new byte[a1.Length + a2.Length + a3.Length];
System.Buffer.BlockCopy(a1, 0, rv, 0, a1.Length);
System.Buffer.BlockCopy(a2, 0, rv, a1.Length, a2.Length);
System.Buffer.BlockCopy(a3, 0, rv, a1.Length + a2.Length, a3.Length);
Valamelyik csak jó lesz[ Szerkesztve ]
----== Neo Geo és Arcade Fórum : www.neo-geo.hu ==----
-
don_peter
senior tag
Sajnos egyik megoldás sem volt jó, a for() ciklusos megoldásom működik, most teszteltem.
Most csak azt a részt tesztelem, hogy betöltöm a 4 fájlt, és for ciklusokkal mint amit fentebb is mutattam, és azonnal kiírom az összefűzött tömb tartamát egy fájlba.
A memória másolós nem működött sajnos, egyik sem.----== Neo Geo és Arcade Fórum : www.neo-geo.hu ==----
-
don_peter
senior tag
válasz lord.lakli #7258 üzenetére
Fentebbi bejegyzésemben látható, mind két változatot kipróbáltam, és mind kettő 2MB felett nem másolt bele a tömbbe.
Onnan tudom, hogy nem jó, hogy összemásolás után azonnal kiírtam fájlba a tömb tartamát, és a 4 fajból csak kettő van meg a további 2 fáj tartama hiányzik, vagy csak nullák vannak helyettük..----== Neo Geo és Arcade Fórum : www.neo-geo.hu ==----
-
don_peter
senior tag
válasz lord.lakli #7264 üzenetére
A teljes fáj letöltést így csinálom:
// Teljes memória letöltése (8MB)
private void button13_Click(object sender, EventArgs e)
{
uint i = 0, Count = 1024 * 1024 * 8;
//byte[] FlashRom = new byte[1024*1024*8];
byte[] buffer = new byte[1];
serialPort1.Write("f"); // Küldünk egy parancsot (rom letöltési parancs)
string folderName = @"c:\DPTPFolder";
//string pathString = System.IO.Path.Combine(folderName, "SubFolder"); // További könyvtár
System.IO.Directory.CreateDirectory(folderName);
string fileName = "dptpsmfdcartridge_" + DateTime.Now.ToString("yMd_Hm") + ".bin";
string pathString = System.IO.Path.Combine(folderName, fileName);
if (!System.IO.File.Exists(pathString))
{
using (System.IO.FileStream fs = System.IO.File.Create(pathString))
{
while (true)
{
i++;
serialPort1.Read(buffer, 0, 1); // Várakozunk hardver adat küldésig
fs.WriteByte(buffer[0]);
if (i % 64 == 0)
{
serialPort1.Write("0");
i = 0;
Count = Count - 64;
}
if (Count <= 0)
{
break;
}
}
}
}
else
{
textBox1.Text += "Hiba a fájl kiírásában...(lehet, hogy létezik a fájl)" + "\r\n";
return;
}
textBox1.Text += "\r\n" + "Letöltés elkészült.\r\n";
textBox1.Text += "File name: " + folderName + "/" + fileName + "\r\n";
}
A memória másolásokat meg pontosan úgy mint feljebb mutattam./// Így is próbáltam
var osszefuzott = new byte[DataLenght]; // DataLenght értéke a 4 file mérete
rows.CopyTo(osszefuzott, 0);
rows2.CopyTo(osszefuzott, rows.Length);
rows3.CopyTo(osszefuzott, rows2.Length);
rows4.CopyTo(osszefuzott, rows3.Length);
// és így is:
byte[] rv = new byte[a1.Length + a2.Length + a3.Length+ a4.Length];
System.Buffer.BlockCopy(a1, 0, rv, 0, a1.Length);
System.Buffer.BlockCopy(a2, 0, rv, a1.Length, a2.Length);
System.Buffer.BlockCopy(a3, 0, rv, a1.Length + a2.Length, a3.Length);
System.Buffer.BlockCopy(a4, 0, rv, a1.Length + a2.Length + a3.Length, a4.Length);A fájlok betöltése pedig a klasszikus módon történik: (pl.: a 4-es fájl)
OpenFileDialog open4 = new OpenFileDialog();
open4.Title = "Open file";
open4.Filter = "Bin File (*.bin)|*.bin|MD File (*.md)|*.md|SMD File (*.smd)|*.smd|All Files (*.*)|*.*";
open4.FilterIndex = 2;
if (open4.ShowDialog() == DialogResult.OK)
{
rows4 = System.IO.File.ReadAllBytes(open4.FileName);
}A teljes kódot nem linkelem, mert több ezer soros, biztosan meg lehetne írni a feléből, de nem vagyok nagy mágus, inkább hardverprogramozással foglalkozom, ez csak szükséges +.
[ Szerkesztve ]
----== Neo Geo és Arcade Fórum : www.neo-geo.hu ==----
-
don_peter
senior tag
Köszönöm Uraim a segítséget, de figyelembe véve azt hogy mire is van szükségem, az álltalam megírt for() ciklusos megoldást választottam.
Az oka pedig igen egyszerű, a hardver amit fejlesztek csak korlátozott módon engedélyezi a címzéseket ezért minden olyan fájlt amely nem osztható (1024*1024)-el azt ki kell bővíteni, hogy osztható legyen, illetve minden olyan fájlt ami páratlan számú méretre jön ki (az egyet kivéve), teszem azt 3,5,7 azokat párosra kell bővítenem.
A for() ciklusban lehetőségem van mindezt figyelni és bővíteni, ha szükséges.Köszönöm a segítséget.
----== Neo Geo és Arcade Fórum : www.neo-geo.hu ==----
-
don_peter
senior tag
Srácok, küzdök egy kis problémával, de nem akar össze jönni. Valószínű nem jól csinálom és sajna régebben sem értettem pontosan, hogy működik a stringből való karakter kiszedés.
Azt hiszem split metódust kellene használnom, de a mintát nem tudom megadni. (persze lehet nem is jót nézek)A lényeg, hogy van egy nagyon hosszú string-em, pl.:
0x0148, 0x0148, 0x0148, 0x0148, 0x0148, 0x0148, 0x0148, 0x0968, 0x0148, 0x0968,
0x0148, 0x0969, 0x0148, 0x0988, 0x0168, 0x0168, 0x0168, 0x0168, 0x0968, 0x0988
Szeretnék minden sallangot kivenni a string láncból.
Vagy is nem kellenek a szóközök, nem kellenek a sortörések és a vesszőknél el kellene őket választani, vagy is tömbösítve elkülöníteni őket. Még nem tudom, hogy ebben a formában képes leszek e majd átalakítani int típussá őket, de ennyire nem akarok előre szaladni. (lehet a 0x-eket is el kell távolítani a stringből)Előre is köszi..
----== Neo Geo és Arcade Fórum : www.neo-geo.hu ==----
-
-
don_peter
senior tag
válasz don_peter #7988 üzenetére
Közben elkészült a program és szerencsére jól működik..
A 16bit-es színképzés okozott némi fejtörést, de végül megadta magát..A kép bináris átalakítása is szépen megtörténik, szóval minden jól alakult.
A kérdés még fent állhat, hogy minek is kellett ez, hát ehhez:
DPTP System - Időjárás állomás beltéri----== Neo Geo és Arcade Fórum : www.neo-geo.hu ==----
-
don_peter
senior tag
Srácok, segítséget szeretnék kérni egy jártasabb XAML-es kollégától. Sajnos nincs idő már megtanulni és ma lesz vizsgám belőle, sajnos elmélet és gyakorlat egyszerre. Sajnos nem tudom segítség nélkül abszolválni. Ha kollektíve is lehetőség van a segítség kérésre, akkor a közösbe be dobom a feladat kiírást, ha nem akkor privátban kérnék segítséget. Nem nagy programról lenne szó, de túl vállaltam magam és egyedül ez most nem fog menni. Lehet ezt megvetni vagy elítélni, tök megértem ezt is, de még is inkább segítséget kérek, mint ismételnem kelljen. Előre is köszi mindenkinek.
Az előző feladat egy egyszerű számológép elkészítése volt, amelyet felületileg és néhány funkcióját tekintve vért izzadva időn túl megoldottam, de összességében eredménytelen pontot értem el mivel nem tudtam időben befejezni illetve elvégezni a feladatot. Kérem a segítségeteket.
----== Neo Geo és Arcade Fórum : www.neo-geo.hu ==----
-
don_peter
senior tag
válasz Alexios #9673 üzenetére
Hogy valaki vagy kollektíve kaphatok e segítséget egy programozási vizsga kapcsán. Mivel arra nem tudtam érdemben készülni és nem akarom, hogy emiatt ismétlésre legyek kárhoztatva. Ma este 6 kor lesz. Az mellékes miért nem sikerült rá időt szánnom mert én beszélek és vagy elhiszi valaki vagy nem. Sajnos most csak kapkodok, amit nem szeretek, de nem akarok ezzel további időt elvesztegetni.
rosejbli : Majdnem. De ettől még muszáj kérjek segítséget. Ez van. Szégyen ide vagy oda. Túl vállaltam magam. És nem online vizsgáról van szó, de online kell feltölteni az időt intervallumban. (a vizsga program végére be fogom írni, hogy nem önálló megoldás, ha ez számít.)
[ Szerkesztve ]
----== Neo Geo és Arcade Fórum : www.neo-geo.hu ==----
-
don_peter
senior tag
Kollektív hallgatásból arra következtetek, hogy oldjam meg magam, ahogy tudom.
Köszi a segítséget.----== Neo Geo és Arcade Fórum : www.neo-geo.hu ==----
Új hozzászólás Aktív témák
● ha kódot szúrsz be, használd a PROGRAMKÓD formázási funkciót!
- Beszámítás! MSI B550 R7 5700X 16GB DDR4 500GB SSD RTX 3060 Ti 8GB ZALMAN Z1 Plus FSP 700W
- ÚJ! NZXT H5 FLOW - 2 Év Garancia
- Beszámítás! ASUS B550M R5 5600G 16GB DDR4 500GB SSD RX 5700XT 8GB ZALMAN S2 TG Seasonic 600W
- Beszámítás! ASUS B450 R5 3600X 16GB DDR4 512GB SSD RTX 3060 12GB Cooler Master MB520 Chieftec 600W
- Beszámítás! ASRock B550M R3 4300G 16GB DDR4 240GB SSD GTX 970 4GB FSP CMT160 fekete FSP 600W
Állásajánlatok
Cég: Alpha Laptopszerviz Kft.
Város: Pécs
Cég: Ozeki Kft.
Város: Debrecen