Arsip: TComport (Data Serial Ada New Line)

 
user image
more 13 years ago

exeption_e77or

Hloo Saya punya problem dengan Comport? Untuk Mengirim atau pun menerima data dari serial berhasil tapi masalahnya setiap kali saya terima data serial dan menampilkan data tersebut ke Memo atau RichEdit pasti ada "New Line" Contohnya gini dari Mikrokontroller saya kirim : Dari Sumber Mikro = 43 setelah di terima dan ditampilkan di Memo Atau RichEdit hasilnya seperti ini. Memo1 4 3 4 3 saya sudah coba menggunkan Hyperterimnal dan hasilnya sama dengan sumber 43; dan saya dapat solusi dari kode programnya seperti ini: saya menggunakan C++
AnsiString DataSer
ComPort1->ReadStr(DataSer,Count);
RichEdit2->Text = RichEdit2->Text+DataSer;
ada yang tau ga gimana cara menampung Data serial yang Didalam RichEdit2 ? soalnya ketika saya mengambil data Referens dari variable DataSer pasti hasilnya ada NewLine lagi.. Tolong Pencerahanya :) Salam exeption_e77or :D
user image
more 13 years ago

denmasdanang

coba kesini mas : http://pascal-id.org/dpr/Forum/viewtopic/7869/subject/help.....-USB-to-SERIAL-mengunakan-ic-FT232-BL-/highlight/comport
user image
more 13 years ago

exeption_e77or

@denmasdanang: coba kesini mas : http://pascal-id.org/dpr/Forum/viewtopic/7869/subject/help.....-USB-to-SERIAL-mengunakan-ic-FT232-BL-/highlight/comport
Thanks denmasdanang tapi mas saya mau nanya, apa iya data yang kita terima dari serial Comm port itu benar2 ada jedah baris? Thanks in advance adhy
user image
more 13 years ago

exeption_e77or

Oh iya ini simple scripts sya dari Mikro yang hanya mengirim data 43 [code:1:9b00eeb754] //pengiriman data serial #include<reg52.h> #include<stdio.h> #include<stdlib.h> void tunda_ms(unsigned int wkt) { unsigned int i,r; for(i=0;i<wkt;i++) { for(r=0;r<100;r++); } } void init_intser() { EA=1; ES=1; PS=1;//perioritas tinggi } void Init_SerialT2() { //timer 2 Osilator 12 MHz TCLK = RCLK = 1; SM0 = 0; SM1 = 1; TH2 = 0x5; TL2 = 0x124; RCAP2H = 0xff; RCAP2L = 0xec; //baut rate 19200 SCON = 0x50; // enable serial com mode1 = 8 bit UART T2CON = 0x34; // timer2 as baud rate generator REN = 1; C_T2 = 0; TR2 = 1; } void KirimChar (unsigned char datanya) { ES =0; SBUF =datanya; while(!TI) {;} TI =0; ES =1; } void KirimTeks (unsigned char *teks) { char i =0; while (teks[i] !=0) { KirimChar(teks[i]); i++; tunda_ms(10); } } void main() { init_intser(); Init_SerialT2(); while(1) { KirimTeks("43"); //<< data yang dikirim bernilai 43 //KirimChar(234); tunda_ms(1000);//<< kira2 1 detik } } [/code:1:9b00eeb754] dengan scripts diatas diterima oleh Com port dengan kode berikut.

AnsiString DataSer
ComPort1->ReadStr(DataSer,Count);
RichEdit2->Text = RichEdit2->Text+DataSer;
tapi setelah saya mengambil nilai dari DataSer dan ditampilkan di TCart nilai yang diberikan tidak menunjukan angka 43 tapi 4? 3-nya kemna? :) [code:1:9b00eeb754] AnsiString DataSer ComPort1->ReadStr(DataSer,Count); //RichEdit2->Text = RichEdit2->Text+DataSer; unsigned int ch = 0 ; if (!DataSer.IsEmpty()) { Shape3->Brush->Color = clRed; Series1->Add(StrToInt(DataSer),ch,clRed); ch++; } [/code:1:9b00eeb754] [/code]
user image
more 13 years ago

mas_kofa

coba, data yg kamu kirim dari mikrokontroller akhiri dengan delimiter....sehingga mudah dalam memparsing output nya oleh TComport (berdasarkan delimiter)....
user image
more 13 years ago

exeption_e77or

@mas_kofa: coba, data yg kamu kirim dari mikrokontroller akhiri dengan delimiter....sehingga mudah dalam memparsing output nya oleh TComport (berdasarkan delimiter)....
Maaf saya kurang ngerti Dengan Delimiter? yang saya tangkap berarti diberi pembatas yang diakhiri dengan backslash? apa seperti ini Mas

void main()
 {
  init_intser();
  Init_SerialT2();
  while(1)
  {
  KirimTeks("[b]43\n[/b]"); //<< data yang dikirim bernilai 43
  //KirimChar(234);
  tunda_ms(1000);//<< kira2 1 detik
  }
  } 
user image
more 13 years ago

exeption_e77or

@exeption_e77or:
@mas_kofa: coba, data yg kamu kirim dari mikrokontroller akhiri dengan delimiter....sehingga mudah dalam memparsing output nya oleh TComport (berdasarkan delimiter)....
Maaf saya kurang ngerti Dengan Delimiter? yang saya tangkap berarti diberi pembatas yang diakhiri dengan backslash? apa seperti ini Mas

void main()
 {
  init_intser();
  Init_SerialT2();
  while(1)
  {
  KirimTeks("43\n"); //<< data yang dikirim bernilai 43
  //KirimChar(234);
  tunda_ms(1000);//<< kira2 1 detik
  }
  } 
user image
more 13 years ago

mas_kofa

delimiter nya berupa apa pun terserah.....mo backslash atau semicolon...terserah...
user image
more 13 years ago

exeption_e77or

@mas_kofa: delimiter nya berupa apa pun terserah.....mo backslash atau semicolon...terserah...
oh iya saya sudah... buat delimiter-nya dan hasilnya juga sama mas penggalan codenya seperti ini

void main()
 {
  init_intser();
  Init_SerialT2();
  while(1)
  {
  KirimTeks("43\n"); //<< data yang dikirim bernilai 43
  //KirimChar(234);
  tunda_ms(1000);//<< kira2 1 detik
  }
  }
tapi hasilnya juga sama.. [/code]
user image
more 13 years ago

denmasdanang

@exeption_e77or: [quote:f5a9528f02="denmasdanang"]coba kesini mas : http://pascal-id.org/dpr/Forum/viewtopic/7869/subject/help.....-USB-to-SERIAL-mengunakan-ic-FT232-BL-/highlight/comport[/quote:f5a9528f02] Thanks denmasdanang tapi mas saya mau nanya, apa iya data yang kita terima dari serial Comm port itu benar2 ada jedah baris? Thanks in advance adhy
:mas adhy jeda baris? tergantung pengiriman dari mikrocontroller, dari code masnya ini
void KirimChar (unsigned char datanya) 
 { 
    ES =0; 
    SBUF =datanya; 
    while(!TI) 
    {;} 
    TI =0; 
    ES =1; 
 } 
  
 void KirimTeks (unsigned char *teks) 
 { 
 char i =0; 
 while (teks[i] !=0) 
  { 
   KirimChar(teks[i]); 
   i++; 
   tunda_ms(10); 
  } 
 } 
menunjukkan data dikirim per karakter, dan memang benar harus ada karakter sufiks/akhiran yang menandai satu paket data terkirim lengkap kemudian di coding mas nya :
AnsiString DataSer 
ComPort1->ReadStr(DataSer,Count); 
RichEdit2->Text = RichEdit2->Text+DataSer; 
juga harus ditambah condition dimana bila data yang diterima berupa karakter akhiran maka RichEdit2 baru menampilkan data. thx
more ...
  • Pages:
  • 1
  • 2
Share to

AI Forward

🚀 We're thrilled to partner with Alibaba Cloud for "AI Forward - Alibaba Cloud Global Developer Summit 2025" in Jakarta! Join us and explore the future of AI. Register now: https://int.alibabacloud.com/m/1000400772/
#AlibabaCloud #DeveloperSummit #Jakarta #AIFORWARD

Random Topic

Local Business Directory, Search Engine Submission & SEO Tools FreeWebSubmission.com SonicRun.com