+ Reply to Thread
Results 1 to 2 of 2

Thread: Remote Procedure Call through Internet with SOAP in XMC4000

  1. #1
    Rob
    Guest

    Remote Procedure Call through Internet with SOAP in XMC4000

    Hi! I'm Roberto Barrado. Last summer (2014) I worked in Infineon (München) for my final project: Porting SOAP to XMC4400 and 4500 microcontrollers.


    Introduction
    SOAP allows working with RPC (Remote Procedure Calls) through Internet easily. For this task I used gSOAP, it is a C and C++ software development toolkit for SOAP and REST XML Web services and generic C/C++ XML data bindings. ATENTION: gSOAP and (the plugin is under GPLv2 license.)

    Using the plugin that I did, it's possible to create a SOAP/REST server or client with a few clicks.

    Click image for larger version

Name:	pluginv2_1.PNG
Views:	4
Size:	13.8 KB
ID:	1717




    To install it into DAVE, you only need to download and extract the zip file, and select the path to SOAP_Update folder in "tab "Help/Install New Software". Then you can find this screen in Communication/SOAP or with his icon.


    It is mandatory to use ETH003 App!!






    Examples
    I did some examples to start easily, and another more complicated simulating a simple free cooling in computing centre (If you don’t know it, see this video):
    The goal is to connect through Internet a SOAP Server (xmc4500 relax that manages the control of the system) with a sensor temperature as SOAP client (xmc4500 hexagon), and android app as client too.
    • Android app:
      • Select auto or manual mode:
        • Auto: XMC4500 relax take all decisions
        • Manual: User can manage the actuators.
    • XMC4500 hexagon:
      • I simulated the outdoor temperature with a potentiometer and ADC converter.
    • XMC4500 relax:
      • Read the inside temperature with a TMP35 sensor and ADC converter.
      • Take a decision:
        • If outsideTemp<Desired Temp<insideTemp -> open window (move servo)
        • If Desired Temp<insideTem<poutsideTemp -> normal mode (start dc motor)
        • If Desired Temp<outsideTemp<insideTemp -> mixed mode (mover servo and used dc motor, 50% both)
      • Display the temperatures and state of system (dc motor and servo) in LCD.
    Click image for larger version

Name:	interc.png
Views:	4
Size:	146.8 KB
ID:	1718

    ** In the video the outside temp is -55ºC, it's not a bug, this is because I simulated temp with a potentiometer.
    ** At the beginning, I move one of the slider and nothing happened, in fact, the dc motor spins faster, you can check it in the LCD.






    Benchmark

    In the benchmark I did a simple calculator for integer, float and double types, and an operation with String (It receives one string, and response with “Hi! I received your message”).

    Volume test

    Transac per sencond per operation Num threads (clients) Test time
    30 3 120 s



    Results:
    Average (ms) Nº transac Transac per second Bytes Errors
    57.01 14240 102.72 6193532 2





    Although the average (orange line) time is high, the results are really good, because a XMC4500 can respond almost 103 operations in a second, only 2 errors in 14240 operations and around 50000 BPS (Green line in graphic).
    In the same test, I measured the time that processor is available for other operations, the second bar, (os_iddle_demon) is this time, and around 9% of the time it is doing nothing.
    It means this percent of time, we can use the processor for the main application, it is not much because in this test, the charge of communication Works is so high.

    Click image for larger version

Name:	1.PNG
Views:	3
Size:	45.3 KB
ID:	1722



    It means that during this percent of time, we can use the processor for the main application, and it is not much time because in this test the soap communication load is heavy.
    If the requirements of SOAP communication decrease, it’s possible to get around 70% of processor time free.


    Stress test

    Transac per sencond per operation Num threads (clients) Test time
    50 1-10 60 s



    This is a stress-test, here we can check how XMC4500 can work with almost 80000 Bytes per second until it fails.
    In the second graphic we see that we get a lot of errors. It shows the relation between the number of threads in the test (soap clients) and the number errors.

    Click image for larger version

Name:	2.PNG
Views:	1
Size:	29.9 KB
ID:	1721






    Operations comparison

    Transac per sencond per operation Num threads (clients) Test time
    100 2 120 s



    Finally, I measured the time every operation takes:

    Click image for larger version

Name:	4.PNG
Views:	1
Size:	11.9 KB
ID:	1723







    The DAVE eclipse plugin and all this examples are available in this zip file.

  2. #2
    Travis will become famous soon enough
    Join Date
    Feb 2013
    Location
    Singapore
    Posts
    749
    Points
    4580
    Hi Roberto,

    This is indeed a wonderful project. Thanks for sharing.

    BR
    Travis

+ Reply to Thread

Tags for this Thread

Disclaimer

All content and materials on this site are provided “as is“. Infineon makes no warranties or representations with regard to this content and these materials of any kind, whether express or implied, including without limitation, warranties or representations of merchantability, fitness for a particular purpose, title and non-infringement of any third party intellectual property right. No license, whether express or implied, is granted by Infineon. Use of the information on this site may require a license from a third party, or a license from Infineon.


Infineon accepts no liability for the content and materials on this site being accurate, complete or up- to-date or for the contents of external links. Infineon distances itself expressly from the contents of the linked pages, over the structure of which Infineon has no control.


Content on this site may contain or be subject to specific guidelines or limitations on use. All postings and use of the content on this site are subject to the Usage Terms of the site; third parties using this content agree to abide by any limitations or guidelines and to comply with the Usage Terms of this site. Infineon reserves the right to make corrections, deletions, modifications, enhancements, improvements and other changes to the content and materials, its products, programs and services at any time or to move or discontinue any content, products, programs, or services without notice.