کند شدن زیاد سرعت با افزایش طول آرایه هنگام انتقال اطلاعات روی پورت سریال
سلام
من یکسری داده را از نوع بایت داخل یک آرایه ذخیره میکنم و روی پورت سریال میفرستم
مشکل اینجاست که وقتی طول آرایه زیاد میشه سرعت ارسال از حد معمول خیلی کمتر مبیشه
اگر کسی میتونه راهنماییم کنه ممنون میشم.
کد ارسال:
[
for (long i = 0; i <= code1.Length - 1; i++)
{
serialPort1.Write(
newbyte[] { code1[i] }, 0, 1);
pBar.PerformStep();
{]
نقل قول: کند شدن زیاد سرعت با افزایش طول آرایه هنگام انتقال اطلاعات روی پورت سریال
سلام
شما چرا از حلقه استفاده می کنی چرا یک دفعه ارسال نمی کنی:
البته شما داخل حلقه از این متد استفاده کردی اما منظورم اینه که کل بایت ها در یک آرایه باشند و اون آرایه رو ارسال کنی. متوجه شدی؟ یعنی همه code1[i] ها یکی بشند.
نقل قول: کند شدن زیاد سرعت با افزایش طول آرایه هنگام انتقال اطلاعات روی پورت سریال
ممنون از جوابتون ولی اصلا وقتی آرایه خیلی بزرگ میشه چیزی فرستاده نمیشه کسی دلیلشو میدونه. به سایز بافر ربط داره؟اگ کسی راهنماییم کنه ممنون میشم.
نقل قول: کند شدن زیاد سرعت با افزایش طول آرایه هنگام انتقال اطلاعات روی پورت سریال
آیا گیرنده هم کد C# است یا سخت افزاریه؟(مثل میکرو) اگه C# است کدش را بزار ممکنه گیر اونجا باشه. اندازه بافر هم خیلی موثر است.
نقل قول: کند شدن زیاد سرعت با افزایش طول آرایه هنگام انتقال اطلاعات روی پورت سریال
گیرنده سخت افزاریه یعنی اطلاعات برای یه میکرو فرستاده میشه که کدشو من نمینویسم
من فکر میکنم وقتی طول آرایه زیاد میشه گنجایش بافر کمتر از این میزانه در نتیجه اطلاعات از بین میره میخوام بدونم چطور سایز بافر را بزرگترکنم یا چک کنم ببینم پر شده یا نه
در کل چطور میتونم این مشکلو حل کنم ممنون میشم از راهنماییهاتون.
نقل قول: کند شدن زیاد سرعت با افزایش طول آرایه هنگام انتقال اطلاعات روی پورت سریال
نقل قول:
نوشته شده توسط
thviser
گیرنده سخت افزاریه یعنی اطلاعات برای یه میکرو فرستاده میشه که کدشو من نمینویسم
من فکر میکنم وقتی طول آرایه زیاد میشه گنجایش بافر کمتر از این میزانه در نتیجه اطلاعات از بین میره میخوام بدونم چطور سایز بافر را بزرگترکنم یا چک کنم ببینم پر شده یا نه
در کل چطور میتونم این مشکلو حل کنم ممنون میشم از راهنماییهاتون.
ميتونيد با توجه به حجم buffer داده هاتون رو به دسته هايي با گنجايش حجم بافرتون تقسيم كنيد
اين ساده ترين راه، اما اگر به حجم buffer دسترسي داريد به تناسب حجم كل byte ها حجم buffer رو تغيير بديد اما بازم محدوديت هست و بايد به دسته هاي كوچكتر تقسيم كنيد ، دسته هاي كوچكتري كه از لحاظ حجم ارزش تكرار حلقه رو داشته باشند اما اينكه همه byte هارو به اين شكل در حلقه تكرار كنيد باعث كند شدن عمليات ميشه و اين كندي ارتباطي به پورت سريال نداره
نقل قول: کند شدن زیاد سرعت با افزایش طول آرایه هنگام انتقال اطلاعات روی پورت سریال
وقتی داده ها رو به دسته های کوچک تقسیم میکنم یعنی پورت سریال رو باز کنم یه دسته داده رو بفرستم بعد پورتو ببندم دوباره پورتو باز کنم دسته بعدی رو بفرستم بعد پورتو ببندم وبه همین ترتیب برای دسته های بعدی
آیا به این شکل اطلاعات درست فرستاده میشه؟
نقل قول: کند شدن زیاد سرعت با افزایش طول آرایه هنگام انتقال اطلاعات روی پورت سریال
کسی میتونه بیشتر کمکم کنه؟وقتی داده ها را به دسته های کوچکتر تقسیم میکنم .یعنی هر دسته رو در یک مرحله بفرستم مثل اینکه چند بار دکمه sendزده بشه در هر بار یه دسته فرستاده بشه.