DeepSoftware.Com
ComponentsProgramsArticlesLinksContacts

    Home     Components    nrComm Lib    FAQ

Main
Components overview
Documentation
Tools

CodeGear - Where Developers Matter

Google


nrComm Lib - Frequently Asked Questions

Common Questions

Q:What are restrictions of the shareware version ?
Q:Where are located the files of library ?
Q:How I can uninstall nrComm Lib from my computer ?
Q:What are differences between the licenses ?
Q:Why nrComm Lib is working so instable ?

Communication Questions

Q:Why missing bytes ?
Q:How I can make to receive one string?

TAPI Questions

Q:Is TnrCommTAPI presents in the Kylix version of libary ?

TnrZmodem Questions

Q:Why occurs the permanent modem disconnection during file transmittion ?
Q:Is supporting the resume of file transmittion ?

Common Questions

Q: What are restrictions of the shareware version ?
A: There are two restrictions for unregistered shareware version of nrComm Lib:
1) The nag screen dialog that shows on every TnrComm, TnrCommTAPI or TnrBarCodeScan constructor.
2) The limitation for numbers of receiving bytes (chars) approximately is 20K-94Kbytes.

Q: Where are located the files of library ?
A: The current version of setup program is asking you a home directory of library before continuing installation. After that, the next sub directories will be created:
1)..\DelphiX\ For the library source and binary files for Delphi version X.
2)..\CBuilderX\ For the library source and binary files for C++Builder version X.
3)..\Demo\ For the demo projects of library.
4)..\Help\ For the context help of library.
5)..\Sources\ For the full source code of library.

Q: How I can uninstall nrComm Lib from my computer ?
A: You should run the nrComm Lib uninstall program by using the Add/Remove Programs item from Control Panel.

Q: What are differences between the licenses ?
A: There are three type of licenses.
I. After registration the Pro Corporate License you will get full release of nrComm Lib with next features after installation:
+) VCL package Win32 platform for Delphi 3-7,2005,2006, C++Builder 3-6 (all components)
+) CLX package Win32 platform for Delphi 6,7 C++Builder 6 (without TAPI,Wave,Speech).
+) .NET assembly for Delphi 2006 and Microsoft Visual Studio.
+) CLX package Linux platform for Kylix 1-3 (without TAPI,Wave,Speech)

II. After registration the Delphi/C++Builder Private License you will get full release of nrComm Lib with next feature after installation:
+) VCL package Win32 platform for Delphi 3-7, C++Builder 3-6 (all components, without any CLX or Linux compatibility)

III. After registration the Kylix Private License you will get full release of nrComm Lib with next feature after installation:
+) CLX package Linux platform for Kylix 1-3 (without TAPI,Wave,Speech and without any CLX for Win32)

Q: Why nrComm Lib is working so instable ?
A: Possible, you use a cracked trial version ? Then read this document.

Communication Questions

Q: All instances of the bytes 0x11 and 0x13 are not being received by the PC (win98/nrComm). A monitoring PC (dos), does see these bytes.Why?
A: The chars 0x11 and 0x13 has been used by Xonn/Xoff Stream Control protocol. This protocol is default for PC serial port.

Q: How I can make to receive one string? Today make I the following one: I created one edit.text, and I directed: termial = edit.text.
A: It's not right way! You should understand how to detect end of string in the receiving bytes. There are exists next cases:
1) String that you receive has fixed length.
2) String that you receive has variable length but has fixed bytes in header or end.
3) If string that you want receive has variable length and random bytes, you should detect string by time out.
You should set TraceStates:=[tsRxChar]; and handling OnAfterReceive event.
//=======================================================
//Solution for first case (receiving fixed length string)
//-------------------------------------------------------

Var ReceiveString:string='';       // global buffer    
Const FixedLengthOfStr:integer=10; // length of incoming string

procedure TForm1.nrComm1AfterReceive(Com: TnrCustomComm; Buffer: Pointer;
  Received: Cardinal);
var i:integer;
begin
  for i:=0 to Received-1 do begin
    //accumulating string ...
    ReceiveString:=ReceiveString+PChar(Buffer)[i];
    if Length(ReceiveString)=FixedLengthOfStr then begin
       DoSomething(ReceiveString);
       ReceiveString:='';
    end;
  end;
end;

//============================================================
//Solution for second case (with fixed bytes sequence in end):
//------------------------------------------------------------

Var ReceiveString:string='';
    EndIndex:integer=1;
Const EndOfString:string='/end/';

procedure TForm1.nrComm1AfterReceive(Com: TnrCustomComm; Buffer: Pointer;
  Received: Cardinal);
var i:integer;
begin
  for i:=0 to Received-1 do begin
    //accumulating string ...
    ReceiveString:=ReceiveString+PChar(Buffer)[i];
    if PChar(Buffer)[i]=EndOfString[EndIndex] then begin
       if EndIndex=Length(EndOfString) then begin
         DoSomething(ReceiveString);
         ReceiveString:='';
         EndIndex:=1;
       end;
    end else EndIndex:=1;
  end;
end;


//===================================================
//Solution for third case (detecting by timeout):
//---------------------------------------------------
//You should use TTimer component Timer1.

procedure TForm1.nrComm1AfterReceive(Com: TnrCustomComm; Buffer: Pointer;
  Received: Cardinal);
var i:integer;
begin
  if not  Timer1.Enabled then Timer1.Enabled:=True;
  for i:=0 to Received-1  //accumulating string ...
    do ReceiveString:=ReceiveString+PChar(Buffer)[i];
end;
//handling OnTimer event ...
procedure TForm1.Timer1Timer(Sender: TObject);
begin
  DoSomething(ReceiveString); //processing string
  ReceiveString:='';     //reset string
  Timer1.Enabled:=False; //stop timer
end;

TAPI Questions

Q: Is TnrCommTAPI presents in the Kylix version of libarry ?
A: No, of course. The TAPI interface is Win32 specific. But TnrCommTAPI is included in the CLX version of library for Delphi/CBuilder.

TnrZmodem Questions ]

Q: Why occurs the permanent modem disconnection during file transmittion?
A: Possible, your file contains the escape sequence of AT modem command like this +++ATZ. You should forbid modem to detect this escape sequence. The following command do this: ATS2=128. You can add this command into initializing string of modem in Control Panel.

Q: Is supporting the resume of file transmittion ?
A: The current version of ZModem realization (TnrZModem component) in nrComm Lib v6.x supports the file transmittion with resume. The old version of nrComm Lib v5.x has not this advantage.



Components ] [ Programs ] [ Articles ] [ Links ] [ Custom Development ] [ Contacts ]


Copyright © 2000-2008 DeepSoftware. All Rights reserved.
Terms of Use ] [ Privacy Statement ]