OPC DA client library for Objective-C - iphone

I'm developing an iPhone application with a couple of features.
Now I need to connect to an OPC DA server but I don't want to implement OPC by my self. Does an Objective-C library even exists? or are there other possible solutions for my problem (maybe C or C++ libraries?).

So I guess you want to access OPC DA Server information from an iPhone/iPad ?
OPC DA is part of the classic OPC specification and based on Microsoft COM Technology, so this might not be so easy.
A solution could be to use an OPC UA Gateway to expose your OPC DA Server over OPC UA, then use a C/C++ SDK or write your own using OPC Foundation ANSI C Stack, to get an OPC UA Client running and accessing your information.
Guys from Unified Automation (https://www.unified-automation.com/) have done some great stuff that you might want to give a look.

well i don't know if exist any library for Objective-C, check out in OPC Foundation or maybe you should think about develop an webapp instead a native app
Regards

Related

Is there a solution to connect a Web app to a Modbus PLCs

I'm developing a Web application with HMI capabilities that needs to interface with multiple Modbus RTU and Modbus TCP PLCs:
frequently update the web UI based on the state of the Modbus devices
send commands to Modbus devices based on the user's input
What is the best way to integrate a Web application and a bunch of Modbus devices, given the requirements?
have you looked at modbus bridges (or Modbus-RTU to Modbus-TCP converters)? and the 'middle-man' software we use at our place is Kepware which then talks to our SCADA package (Cimplicity for us). Not sure if you're still in need of any more info on this, just shout back and i'll fill you in a lot more :)
Also, does this need to be a low cost solution (you could pretty much do this with off the shelf hobby hardware) or a full-blown industrial solution? Doing a dead simple SCADA bit and then talking to the plc's shouldn't pose too much of a headache if you have the time for it.

IoTivity vs AllJoyn - what is the difference?

Open Interconnect Consortium has just released IoTivity, an open source framework for IoT, similar to AllSeen Alliance's AllJoyn framework. What are the differences between them, apart from IoTivity being based on CoAP and AllJoyn based on D-Bus? Are they interoperable?
This is a community wiki, so please expand it if you can.
Architecture
IoTivity
IoTivity provides 4 basic components:
Discovery
Data transmission
Data Management
Device management
AllJoyn
AllJoyn provides the following components:
App Code
Service Frameworks Libraries
Core Library
Router
It also provides the Thin variant without the Router.
Protocols
IoTivity
IoTivity will be using multiple protocols, but for now it uses CoAP. IT also has a MQTT plugin.
AllJoyn
AllJoyn provides its own bus based on D-Bus Wire protocol. AllJoyn Gateway Agent will have connectors for REST, MQTT, XMPP and TR-069.
Supported platforms
IoTivity
IoTivity currently supports:
Android
Arduino
darwin/iOS
Linux
Tizen
Windows
Yocto
AllJoyn
AllJoyn currently supports:
Android
Arduino
iOS
Linux
OS X
Windows
As explained at OpenIoT 2016 :
Full presentation at :
http://events.linuxfoundation.org/sites/events/files/slides/OpenIoT%20Summit%20Greg%20Burns.pdf
https://www.youtube.com/watch?v=siT2TPnTRHY&list=PLq2bxbH0KVGmtGRUQ4G7RfxsDeGtc9Yxz
When it comes to supported transports, AllJoyn now supports more. It supports IP-related physical layers like WiFi, WiFi-Direct, Ethernet and Powerline. Also, it can support bluetooth with their gateway agent. Other radios such as Bluetooth LE, 6LowPan, ZigBee or Z–Wave are encouraged to be added.
The following is a snapshot from the QA session in Allseen official website.
Reference: https://allseenalliance.org/alliance/faq#n142
One additional difference between these frameworks is how they treat Intellectual Property rights. AllSeen require from members not to sue other vendors which used AllJoyn for their product (Patent Non-Assertion Pledge).
Iotivity is easy to use, it provides C and C++ sdk for developing application on constrained devices. Quite easy to use for a basic application, provides GET,PUT ,POST and Observe functionality. Compared to Alljoyn it is faster and easier to develop apps on it.
Theyre completely different frameworks made by different companies that are both trying to achieve the same (or similar) thing. Its like comparing iOS to android.
They are not interoperable.

use REST api to communicate to server using GSM client in arduino

I am new to the arduino platform.
I want to use REST api for communication between my web server and GSM/GPRS.
i have already created a REST api for communication between my android app and web server, but now i want to fire the same REST api(GET request) using GSM/GPRS client in arduino and want to read the response from the server.
FYI i am using arduino uno for atmega328-pu.
I tried searching in the web but ultimately ended up getting nothing useful.
Any help will be highly appreciated.
Thanks in advance.
From what you write, it is not entirely clear if you want to use the Arduino as a REST client or server. For setting up a server on it, your best bet will be to use the Webduino library that implements GET and POST methods.
Depending on the type of networking hardware (Wifi, Ethernet) you are using, there will be an implementation of the "Client" interface that you can use for sending HTTP requests. See this example for the Ethernet client: http://arduino.cc/en/Tutorial/WebClient
The code for the GSM client is in the GSM library, that you can find here: http://arduino.cc/en/Reference/GSM
There's also a sample for using the GSM client: http://arduino.cc/en/Tutorial/GSMExamplesWebClient
Which GSM/GPRS shield are you using? If it supports the official GSM library you can use that or if it is a Seeedstudio GPRS Shield use my GSMGPRS_Shield. Anyway then use my fork of arduino-restclient or modify it if you use the default GSM library.
Let me know if that helps you. Otherwise I have some more examples etc I can post.

Any advice for iPhone Wireless Comms with Embedded Linux Device?

I am looking for advice on protocols for use in LAN comms between an iPhone and an embedded Linux device. The embedded Linux device requires the following functionality...
Connectible to Wireless LAN.
Discoverable as a device on the Wireless LAN.
(Virtually) connectible with iPhone.
Remotely Callable API provided to the iPhone.
Able to remotely call back functions on the iPhone.
I am looking to use platform independent protocols to achieve this functionality because the mobile application will be ported from the iPhone to other mobile platforms like Android. Since I am a newbie with Embedded Linux, my research (and possibly naivety) suggests that said functionality could be realised with the following protocols...
DHCP for obtaining dynamic IP address.
DNLA? (Bonjour is native to iOS right?)
Connection-oriented communication implies TCP.
SOAP or REST architecture on HTTP.
SOAP or REST architecture on HTTP.
Can you suggest other, more suitable protocols? Am I barking up the wrong tree? Is there a much more simple way I could achieve this functionality? For example, providing the remote API using only a TCP socket?
Any advice you can offer is welcome...
Look into 0mq. It's a scalable messaging library that provides a message queue without requiring a message broker.
-Has objective-c bindings to help you implement in iOS
-Has java bindings to help you implement in Android.
-Small footprint.
I did something similar - an Arduino that streams data to an iPhone app connected over WiFi using the UDP protocol.

How can I integrate CalDAV and CardDAV

I am trying to allow people (from a URL) to connect to a calender/contacts from their iPhone, Blackbury or Android phone - what is the best way to do this?
I've had a bit of a read and it seems that CalDAV and CardDAV are the best way to integrate calenders/contacts, but how exactly can I do this? The internet seems to lack a standard way of how you can integrate this into a number of devices.
Which mobile devices support them? And is it possible to just provide a URL and then the calender/contacts just automatically sync!?
All of this assumes you have some sort of Groupware server setup somewhere which acts as the repository for this information.
For opensource you might want to look at a product called Sogo. Apple also do a caldav/carddav server written in python. They expect you to buy a mac server but you can download the code and run it from a pc or linux box. There's a heap of paid-for groupware.
You might want to check out the "opensource" client software written by the same kids who develop Sogo caled funambol. This claims to be x-mobile (all the ones youve mentioned anyway).
The idea behind all the *DAV protocols is that yes everything is done by Uri (this was actually specced by Tim Berners Lee in his draft for the web).
I've just been through this very same process and found only emerging standards, of which *DAV are the de facto ones IMO. HTC use MS active sync on my HD2 to sync my Gmail. Go figure!
Bedework is CalDAV/CardDAV server that allows you to hook your iPhone/iCal calendar and events.
I have used it and it gives you an url to sign in with in you phone calendar. The Bedework is a server you could install on you machine (it is provided with documentation; this is a good point to start with).
Android natively does not support Bedework. In order for Android to support the CalDAV you have to install an application that supports CalDAV, but I do not know if they work with Bedewrok or not.
In the case of android you could try using the CalendarProvider and the ContactProvider. You could refer to this : http://developer.android.com/guide/topics/providers/calendar-provider.html