Hello experts!
I need to communicate with a microcontroller from a Symbian device and have some trouble:
With the attached code it is possible to receive data from the MCP2155 device (attached to PC) in Symbian, but no sent data (from Symbian) is received on PC. When I test the circuit with the Mhcp.c sample application (for Windows-PC), sending is working well.
I wonder if you could help me out with this issue, please.
I am using a N95 8Gb model and a MCP2155 with RTS-DSR bridged, a MAX232 attached to RS232 using Hyper-Terminal.
Any help would be highly appreciated!!

Code:
LOCAL_C void doExampleL()
    {

    console->Printf (_L("Simple IrDA Test\n"));

    _LIT(SocketsProtocolName, "IrTinyTP" );
    _LIT8(classname,"IrDA:IrCOMM");//IRServer");   
    _LIT8(attribute,"IrDA:TinyTP:LsapSel");
    _LIT8(none,"");

    TRequestStatus stat;
    RSocketServ ss;
    TProtocolDesc pInfo;
    TProtocolName protoName(SocketsProtocolName);
    TInt ret;
    ret=ss.Connect ();
    ret=ss.FindProtocol (protoName, pInfo);
    if ( ret!=KErrNone)
        {
        ss.Close();
        }
    //start discovery 
    RHostResolver hr1;
    ret=hr1.Open (ss, pInfo.iAddrFamily, pInfo.iProtocol);
    if ( ret!=KErrNone)
        {
        ss.Close();
        }
    console->Printf (_L("HostResolver started\n"));
    console->Printf (_L("Now searching for device...\n"));

    TNameEntry log;
    THostName name;
    //finds all IrLAP stations
    TUint tryNum = 1;

    ret=hr1.GetByName (name, log);
    if ( ret!=KErrNone)
        {
        while (ret!=KErrNone)
            {
            tryNum++;
            ret=hr1.GetByName (name, log);
            }
        }
    console->Printf (_L("Discovered something after %d tries\n"),tryNum);
    console->Printf (_L("Device: "));
    console->Printf (log().iName); /// IS Generic IrDA
    console->Printf (_L("\n"));

    TIrdaSockAddr addr(log().iAddr); // Takes a TSockAddr and casts it to a TIrdaSockAddr.
    //    console->Printf (_L("Remote machine dev addr: %d\n"),addr.GetRemoteDevAddr());
    //    console->Printf (_L("Host machine dev addr: %s\n"),addr.GetHostDevAddr());
    //    console->Printf (_L("Remote machine solicited: %s\n"),addr.GetSolicitedStatus());
    //    console->Printf (_L("Rete machine sniff status: %s\n"),addr.GetSniffStatus());
    //    console->Printf (_L("Remote machine Irlap version: %s\n"),addr.GetIrlapVersion());
    //    console->Printf (_L("Remote no.of service hint bytes: %s\n"),addr.GetServiceHintByteCount());
    //    console->Printf (_L("Remote first service hint byte: %s\n"),addr.GetFirstServiceHintByte());
    //    console->Printf (_L("Remote machine character set: %s\n"),addr.GetCharacterSet());
    //console->Printf (_L("Remote machine name: %s\n"),log().iName);

    //    console->Getch ();

    RSocket sender;
    sender.Open (ss, pInfo.iAddrFamily, pInfo.iSockType, pInfo.iProtocol);
    console->Printf (_L("Opened sender\n"));

    TIrdaSockAddr iAddress(log().iAddr);
    //open database for IAS Query

    RNetDatabase aNetdb;
    ret = aNetdb.Open(ss, pInfo.iAddrFamily, pInfo.iProtocol);
    if (ret!=KErrNone)
        {
        ss.Close();
        hr1.Close();
        sender.Close();
        }
    console->Printf (_L("Opened database\n"));

    TUint remDevAddr = iAddress.GetRemoteDevAddr();

    TInt port = IASQuery(aNetdb,classname,attribute,remDevAddr);
    iAddress.SetPort(port);
    console->Printf (_L("Queried database, using port: %d\n"),port);

    aNetdb.Close();

    sender.Bind(iAddress);
    sender.Connect(iAddress,stat);
    User::WaitForRequest(stat);
    if(stat.Int()!=KErrNone)
        {
        ss.Close();
        hr1.Close();
        sender.Close();
        }
    console->Printf (_L("Sender connected\n"));

    sender.Write(none,stat);
    User::WaitForRequest(stat);
    if(stat.Int()!=KErrNone)
        {
        ss.Close();
        hr1.Close();
        sender.Close();
        }

    TBuf8<10> b1;
    TBuf<10> b2;
    b1.FillZ();
    b2.FillZ();
    console->Printf (_L("Read until ESC (27):"));
    do
        {
        sender.Read (b1, stat); // Reading from accepted socket.
        User::WaitForRequest (stat);
        b2.Copy(b1);
        console->Printf (b2);
        }while(b2[1]!=27);

    console->Printf (_L("\nPress any key...\n"));
    console->Getch();
    console->Printf (_L("Staring to send...\n"));

    TBuf8<10> b3;
    TBuf8<1> b4;
    b3.FillZ();
    b4.FillZ();
    b3.Format (_L8("Finally :]"));

    sender.Write (b3, stat);
    User::WaitForRequest (stat);

    for(int i=0; i<10; i++)
        {
        sender.Write (b4, stat);
        User::WaitForRequest (stat);
        User::After(1000);
        console->Printf (_L("%d Stat:%d\n"),i,stat.Int());
        }

    console->Printf (_L("Finished\n"));
    hr1.Close();
    sender.Close();
    ss.Close();
    }