Új hozzászólás Aktív témák
-
don_peter
senior tag
Kollektív hallgatásból arra következtetek, hogy oldjam meg magam, ahogy tudom.
Köszi a segítséget. -
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.)
-
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.
-
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 -
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..
-
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.
-
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 +.
-
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.. -
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. -
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 -
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. -
-
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];
} -
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ó.
-
don_peter
senior tag
válasz
lord.lakli #7235 üzenetére
Nem értem ezt a kérdést..
Csak olvasás?
Mire gondolsz? -
don_peter
senior tag
-
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. -
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. -
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. -
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? -
don_peter
senior tag
Köszönöm, már tárgytalan.
Megírtam. -
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.
Új hozzászólás Aktív témák
Hirdetés
● ha kódot szúrsz be, használd a PROGRAMKÓD formázási funkciót!
- Kodi és kiegészítői magyar nyelvű online tartalmakhoz (Linux, Windows)
- Bambu Lab 3D nyomtatók
- Milyen légkondit a lakásba?
- Autós topik
- World of Tanks - MMO
- Több évig húzódó per várhat az Apple-re az iPhone-ok uralma miatt
- A fociról könnyedén, egy baráti társaságban
- E-roller topik
- Xbox tulajok OFF topicja
- sziku69: Fűzzük össze a szavakat :)
- További aktív témák...
- Intel Core i7 6700K / GTX 1660TI / 16GB DDR4 RAM / 500 GB SSD konfig eladó
- Samsung Galaxy S23 128GB, Kártyafüggetlen, 1 Év Garanciával
- Samsung Galaxy A53 5G 128GB, Kártyafüggetlen, 1 Év Garanciával
- Megkímélt állapotú Xbox Series X 1TB eladó. Kitisztítva és újrapasztázva!
- Gamer PC - i5 13400F, GTX 1080ti és 16gb DDR5
- LG 65C2 - 65" OLED evo - 4K 120Hz 1ms - NVIDIA G-Sync - FreeSync Premium - HDMI 2.1 - PS5 és Xbox!
- Konzol felvásárlás!! Nintendo Switch
- Újra Akcióban!!! Ducky One 2 Mini és SF billentyűzetek a bolti ár töredékéért! Számla+Gari
- Honor Magic6 Lite 256GB, Kártyafüggetlen, 1 Év Garanciával
- BESZÁMÍTÁS! Asus B450 R7 2700X 16GB DDR4 512GB SSD RTX 2070 8GB Rampage SHIVA TT 500W
Állásajánlatok
Cég: CAMERA-PRO Hungary Kft
Város: Budapest
Cég: Promenade Publishing House Kft.
Város: Budapest