Programming for the SAE J1939 standard - mobile

I'm trying to find information on how to program an embedded mobile controller such as the ifm R 360. Where could I find specific information on the programming language used, the required development environment and any other useful information?
From what I understand, the programming language is based on IEC 61131-3. What books or tutorials should I look at to better understand this?

Here is a J1939 Software Protocol Stack

Apparently you need a version of CoDeSys adapted to the controllers, see the products page.

Related

Using UML for C programming

I'm developing an embedded software based on standard specification.
The software is big and I need a design of my software before start coding.
the UML is an object-oriented language and could be a solution but I don't know how to use it for C softwares.
are there any document which help to use UML for C programming ?
or are there another design language for c softwares ?
Well we use Enterprise Architect to model our embedded software although we stop short of generating the code. EA can generate C code as well although we use C++ code because it feels more natural combined with UML. You can try it out and see if it fits your needs, it is not unforgivingly expensive either. It can also reverse engineer your C code so that may be a help.
Yes, you can, mostly because of two reasons:
You can actually do Object Oriented Programming with C (although it is tedious and not completely advisable), there a few books on the subject that you can read.
You can still use class diagrams to model data structures and static methods. But UML is not just about class diagrams: you also have state diagrams, interaction diagrams, use case diagrams... And they are useful for structured programming too.
I am not an expert for embedded software but have you look to https://www.polarsys.org/ ?
"PolarSys is an Eclipse Industry Working Group created by large industry players and by tools providers to collaborate on the creation and support of Open Source tools for the development of embedded systems."
It is a platform based on Eclipse dedicated to embedded software.
It use Papyrus for UML/SysML modeling and implement MARTE profil.
"Papyrus is the PolarSys solution for SysML and UML modeling. It relies on the underlying Eclipse platform and on other Polarsys and Eclipse-based offerings to fulfill lifecycle integration needs, such as a C/C++ "
I have two products in mind that could help you:
LieberLieber Software Embedded Extension, which is based on EA and gives you an idea about UML and C or
Eclipse Papyrus, which supports UML and SysML

Guide to scala.io and simple IO for Scala 2.9?

Does anybody have a guide to this, containing code samples, tips and an outline of the different IO approaches?
I have checked out the the API documentation. There are also some basic examples with scala.io.Source in Programming in Scala.
There are some pretty basic questions already answered here on SO.
I'm looking for something more in depth.
Alternatively, any tips on exactly which bits of the API documentation to focus on and which Java libraries? I'm familiar with System.IO in .NET land, but not so much Java.
Scala's standard library is currently pretty limited for I/O, so you'll probably want to dig into Java's libraries. Oracle's Basic I/O tutorial, covering java.nio, looks like a reasonable starting point.
A while ago there was some discussion about a community driven redesign of Scala I/O called scala-io, but I'm not sure the official status. The mailing list hasn't seen much recent activity, but the code in Github is being actively developed (incubator mailing list and Github project). In his answer, hishadow gave a link to scala-io documentation.
My tip is to look also at tools Path,File and Directory.
They have little sugar (that everyone has in their little utils library) like:
val writer = File("/my/file").bufferedWriter
File.closeQuietly(writer)
Directory("myDir").walk
Then have a look at Process like here
There is an in-development IO library with documentation available at http://jesseeichar.github.com/scala-io/. Included are examples for different usages.
The source repository is at https://github.com/jesseeichar/scala-io.
I recommend looking at java.nio.
Due to technical limitations of the underlying Java platform implementing IO in Scala wasn't a good idea.
This has changed with Java 7, which provides good Java APIs for everything related to file management.
There are some thoughts about an IO library for Scala, but no decision about that yet.
The author of scala-IO, Jesse Eichar, has recently began a series of articles about using Scala-IO on his blog: here's the 'getting started' entry.

Modelling C Programs

I have done some research on this question and most answers are a few years old or suggest just using text.
I need to model some C code I have developed for an embedded system. It is not massively complex but there are a great number of functions and UML does not appear to cover it as this is working on the pretense that the language to be modeled is object orientated.
Whilst I have read that it isn't far fetched to modify this and still use it to try and model C I wondered what thoughts people had on this or if anyone had any suggestions for how I could professionally document or model my code?
You should take a look at the Gtk documentation and the GTK-Doc tool:
http://www.gtk.org/documentation.html
It is a big API and it is pure C.

I want to implement one small software. need suggestion

The software's algorithms are all written in C.(gcc compiler). And I need some beautiful and friendly UI for this small software...But I have no idea what language and what library and what tool I should use.
I need some idea from you guys. thanks indeed!
If you can say it more specific, I will thank you more!
It would be better if you are more specific with your question and give more details about your software. Because designing a UI interface depends on a lot of factors.
I am listing some below for your reference:
On what system are people going to use it? (Windows, Linux etc)
Users are novice users or advanced users (You can decide on a CLI for advanced users and more detailed colourful GUI for novice users who need a lot of help)
Do you have any specific requirements like the GUI should be light weight?
So, please determine the requirements first before deciding what language and what library you must use.
For starters, you can look at ncurses library in linux, MFC in Windows. I don't know much about Java, someone else must be able to help you on that.
All the best for your work!
Commonly used libraries for GUIs:
Tk which was written in Tcl and has bindings for Python, Perl, Ruby, Lisp and a few others
GTK, which is written in C (so you could write your GUI in C) and has bindings for most languages under the sun
Qt, which is written in C++ and also has a number of bindings
These are the "big three" for cross-platform toolkits (I know some will disagree). They have their advantages and disadvantages: Tk looks good on some platforms but not others, and there aren't too many bindings for it, GTK looks great on Gnome desktops but so-so elsewhere, and Qt looks good in KDE but okay elsewhere.
You have to ask yourself a few questions: what platform will you be deploying to? What kind of functionality do you need? What languages are you most comfortable writing the interface with?
I'd recommend that whatever language you choose, choose a scripting language of some sort. It's far easier to create interfaces using scripting languages IMO (though Qt makes C++ interface design fairly painless). I'd also recommend you pick a language that will be available on your platform with as few dependencies as possible (so for Linux, Python or Perl would be a good choice).

Getting Started with C and Objective-C

I am eventually wanting to program in Objective-C to write programs for OS X and possibly the iPhone. I do not have any direct experience with C and I come from a web programming background. I am much more familiar with java syntax than C and Objective C.
I am just looking for suggestions on how to get started. It looks like I need to just start with C (I do not yet have a Mac computer powerful enough for programming, so it would be nice to start with C on the Windows platform anyway (information about programming environments would be helpful too, I am used to eclipse)). I am just looking for book recommendations, online tutorials or any other pointers to keep in mind. Keep in mind though that my end goal is to work with Objective-C, so is there anything I need to keep in mind when learning C, anything to watch out for, etc. Thanks for any input.
Update: The reason I am thinking I need to learn C first is that most of the tutorials that I have come across so far for Objective-C assume you already understand C syntax, which I do not fully. Are there better tutorials out there for me?
I don't entirely agree with unwind who says "C and Objective-C are different languages". Objective-C is a strict superset of C.
Of course he knows that - his point was that you don't need to completely master C before progressing onto Objective-C. I'll second that (and hopefully have clarified it).
But I do think it's worth getting some basics with C first, as most introductory texts on Objective-C will assume a basic knowledge.
I don't have any recommendations on that myself, but probably most internet based tutorials will be sufficient for that purpose (remember, you're not trying to master it at this stage). If you want to take it seriously, then "The C Programming Language" by K&R is the classic text.
When you you can do some basic hello world programs in C, and understand the type system, pointers and stuff - then pick up a copy of "Cocoa Programming for Mac OS X", by Aaron Hillegass. This is a book about Cocoa that covers Objective-C along the way, but it one of the best presented coverages of the language. It will assume you are coding on a Mac (it's in the context of Cocoa after all). You may be able to follow the pure language stuff using GCC on Windows, but I wouldn't recommend it.
If you're going to be working on a Mac eventually, then best to do it at this stage, IMHO. You say you don't have a Mac "powerful enough for programming", but anything that can run OS X would be fine to get your started.
If you know java, obj-c will be easy for you (java was influenced a lot by obj-c.) Apple has great documentation, you can start here. I don't think you need to learn C before learning obj-c (sorry Joel).
You can use obj-c on windows if you get gcc. Also check out cocotron:
The Cocotron is an open source project
which aims to implement a
cross-platform Objective-C API similar
to that described by Apple Inc.'s
Cocoa documentation. This includes the
AppKit, Foundation, Objective-C
runtime and support APIs such as
CoreGraphics and CoreFoundation.
With all the buzz about iPhone development, there are now dozens of obj-c books. Not sure how good they are, but a classic that I would suggest is Cocoa Programming from Mac OSX by Aaron Hillegass.
Programming in Objective-C by Stephen Kochan is what you want. It assumes no programming experience but doesn't hold you back if you do and introduces the whole thing, C with the Objective-C superset, as a complete package. I read the first half of Kochan (the second half gets into Cocoa) and now I'm working on Cocoa Programming for Mac OS X (3rd Edition) by Aaron Hillegass and reading Kochan was a massive help. Those two are a "one-two punch" that will get you going in no time.
Have a C and Objective-C reference handy as Apple's docs of C in XCode pretty much sucks from what I've seen so far. K&R's C text is like the Encyclopedia Brittanica of C and, just like a set of encyclopedias, isn't for everyone. I've just been Googling for references and generally find what I need on the web since C is so ubiquitous.
You'll burn through a couple of books before you find the set that best fits you, but you simply can't go wrong with Kochan and Hillegass for Objective-C and Cocoa. By the time you finiah the first couple chapters of Hillegass, you'll want to (and be able to) start writing some stuff on your own.
There is a recent blog-entry at Tuaw:
http://www.tuaw.com/2009/01/15/starting-out-with-objective-c/
4 guides about getting started with Objective-C, which helped me quite a lot when I started developing in Xcode. You should take a look at this:
http://cocoadevcentral.com/
http://developer.apple.com/iphone/index.action
http://developer.apple.com/iphone/library/referencelibrary/GettingStarted/Learning_Objective-C_A_Primer/
http://developer.apple.com/iphone/library/documentation/userexperience/conceptual/mobilehig/Introduction/Introduction.html#//apple_ref/doc/uid/TP40006556-CH1-SW1
I'd say that it's better to learn C first. be sure to approach it like what it is: a structured machine language.
when you feel comfortable on it (no need to really master it), go on to Objective C, where you'll rediscover several things familiar from Java, but knowing the C infrastructure will make more apparent when they're similar but not equivalent.
it's very important not to learn a language using what you already know as a 'metaphor' for the new. always try to pretend you didn't know anything before.
I don't know what you mean by a Mac powerful enough to do programming on (any Mac should do), but get yourself something at least marginally useful as a development system soon. (You may well have the development system on one of the CDs that came with your Mac, or alternatively you can download it from Apple.)
The sooner you get Xcode working, the sooner you'll be comfortable with it.
I have recently started to learn programming for the Iphone and tried many differenet books until i found these helped me the most (I would also strongly recomenned getting a mac since the Xcode is the way to go when coding for Iphone):
Apress: Learn C on the Mac (To
get the initial C going)
Apress: Learn Objective-C on the Mac
(Learn Objective-C based on your
understanding of C)
Apress: Learn Cocoa for the mac
(learn apples way of building
applications, greatly helps when
going over to Iphone however you can
go straight to the iphone if you
like)
Apress: Beginning Iphone
development... (The final book,
and essential tool)
To note all these books have the same author and thus the traceability is great! The books have crossreferences between each other that really helps.
Agreeing with others, I found Cocoa Programming for Mac OSX - Hillegass
a great intro to Objective-C, the Cocoa framework and whole Apple way of doing things.
You can run Objective-C on any Linux or Windows box too although of course you won't have access to all the Apple libraries eg. NS (afaik). These frameworks are really the whole point of Objective-C, and the real reason it still exists given C++ and C# came later and are more or less languages designed around themselves (as opposed to Objective-C which is a strict superset of C).
Apart from pointers, I think you can get by without learning all the intricacies and close-to-the-metal aspects of C, although any and all C you can digest always helps.

Resources