close
標題:

C# RS232的問題

發問:

SerialPort.Read([], Int32, Int32) 中間的參數 offset 指的是什麼?? 我搞不懂意思 請各位達人指點 15點 更新: 那假如 我的資料是 123 54 987 653....最高三位數資料 然後READ那邊要如何設定比較好?

aa.jpg

 

此文章來自奇摩知識+如有不便請留言告知

最佳解答:

參考以下資料 : http://msdn.microsoft.com/zh-tw/library/ms143549(VS.80).aspx C# public int Read ( byte[] buffer, int offset, int count ) 參數buffer 要寫入輸入的位元組陣列。 offset 緩衝區陣列中要開始寫入的位移。 count 要讀取的位元組數。 傳回值讀取的位元組數目。 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~也就是說 你需要提供一塊buffer(位元組陣列), 用來存放所讀取的資料, 而 offset則是存放該資料的起始位置(陣列的索引值), 若想從buffer的起始位置開始存放, offset就設為 0 . count值則是要讀取的數量. 須注意 buffer的大小空間須足夠, 至少須大於 offset+count 的大小, 不然會產生 ArgumentException 或 ArgumentOutOfRangeException 的例外; 當然, offset 與 count 不能為負值. 2009-02-17 13:02:05 補充: > 那假如 我的資料是 123 54 987 653....最高三位數資料 然後READ那邊要如何設定比較好? 因無法確定資料型態的內容 (數值字串? 數值? 數值的HiByte與 LowByte順序...), 我會建議先設一塊普通大小的Buffer (如1024), Offset 則設0, count 則先少量的設 32 或 64 來分析索取得的內容資料(若32 或 64 不足以分析則再擴大為128/256/512..) 2009-02-17 13:02:46 補充: 接著蒐集分析相關資訊, 依據實務需求與應用方式, 適當的調整 buffer大小, count數量, 甚至offset值(若之後讀取的資料需銜接在之前的buffer上時); 而也有可能在某些情況下, 或許使用 public int Read ( char[] buffer, int offset, int count ) 會是較合適的選擇. 發揮科學家反覆嘗試, 驗證的精神; 調整實務上的應用策略與方式, 這也累積自己在應用發展上的能力與智慧經驗; 所以還是自己動手去勇於嘗試吧!!

其他解答:CD51EBF2FDB84E83
arrow
arrow

    dlxpxv7 發表在 痞客邦 留言(0) 人氣()