How to access the serial port in Java?
How can I initialise and access the serial port for writing and reading data from it? Are there any code examples available?
I tried that and I tried compiling and executing one of its examples, the one below:
import java.io.*;
import java.util.*;
import javax.comm.*;
public class SimpleWrite {
static Enumeration portList;
static CommPortIdentifier portId;
static String messageString = "Hello, world!\n";
static SerialPort serialPort;
static OutputStream outputStream;
public static void main(String[] args) {
portList = CommPortIdentifier.getPortIdentifiers();
while (portList.hasMoreElements()) {
portId = (CommPortIdentifier) portList.nextElement();
if (portId.getPortType() == CommPortIdentifier.PORT_SERIAL) {
if (portId.getName().equals("COM1")) {
//if (portId.getName().equals("/dev/term/a")) {
try {
serialPort = (SerialPort)
portId.open("SimpleWriteApp", 2000);
} catch (PortInUseException e) {}
try {
outputStream = serialPort.getOutputStream();
} catch (IOException e) {}
try {
serialPort.setSerialPortParams(9600,
SerialPort.DATABITS_8,
SerialPort.STOPBITS_1,
SerialPort.PARITY_NONE);
} catch (UnsupportedCommOperationException e) {}
try {
outputStream.write(messageString.getBytes());
} catch (IOException e) {}
But when I execute this I get the error:
Exception in thread "main" java.lang.NoClassDefFoundError: SimpleWrite
What is wrong with this example??
Similar Messages
-
How to access the serial port on sdk 3.1.3 ?
Hi all,
I know that accessing serial port is not possible on firmware 2.x for non jailbroken iPhones.
But what about firmware 3.0?
Apple has focused firmware 3.0 on accessories, through bluetooth or through serial port. So, accessing serial port should be possible.
But I can't find any documentation / sample code for that.
Would you please help me?
Regards,
Alx
PS: I tried to read the port /dev/cu.iap and get this message:
Error opening serial port /dev/cu.iap - Permission denied(13).
Looks bad.Yes I am enregistred in the Mad For iPod program?
And I try to communique with my accessorie
So the Code
+*// SerialPortsModuleAppDelegate.m*+
+*// SerialPortsModule*+
+*// Created by BPO iMac on 08/02/10.*+
+*// Copyright _MyCompanyName_ 2010. All rights reserved.*+
+*#import "SerialPortsModuleAppDelegate.h"*+
+*#import <fcntl.h>*+
+*@implementation SerialPortsModuleAppDelegate*+
+*@synthesize window;*+
+*- (void)applicationDidFinishLaunching:(UIApplication *)application {*+
+*// Override point for customization after application launch*+
+*[window makeKeyAndVisible];*+
+* portSerie = [SerialManager alloc];*+
+* [portSerie init];*+
+* int nb_port;*+
+* nb_port = [portSerie findRS232Ports];*+
+* NSString path_port;+
+* path_port = [NSString alloc];*+
+* int num_port;*+
+* if(nb_port!=0)*+
+* {*+
+* num_port=0;*+
+* path_port=[portSerie pathAtIndex:num_port];*+
+* int resultat= [portSerie openInput:path_port baudrate:9600 bits:8 parity:0 stopbits:1 flags:O_RDONLY];*+
+* if(resultat==-1)*+
+* {*+
+* NSLog(@"Communication Error");*+
+* }*+
+* resultat= [portSerie openOutput:path_port baudrate:9600 bits:8 parity:0 stopbits:1];*+
+* if(resultat==-1)*+
+* {*+
+* NSLog(@"Communication Error");*+
+* }*+
+* }*+
+* [path_port release];*+
+* *+
+*- (void)dealloc {*+
+*[window release];*+
+*[super dealloc];*+
@end
+*// SerialPortsModuleAppDelegate.h*+
+*// SerialPortsModule*+
+*// Created by BPO iMac on 08/02/10.*+
+*// Copyright _MyCompanyName_ 2010. All rights reserved.*+
+*#import <UIKit/UIKit.h>*+
+*#import "SerialManager.h"*+
+*@interface SerialPortsModuleAppDelegate : NSObject <UIApplicationDelegate> {*+
+*UIWindow window;+
+* SerialManager portSerie;+
+*@property (nonatomic, retain) IBOutlet UIWindow window;+
@end
+*// SerialManager.m*+
+*// K3 Tools*+
+*// Created by Kok Chen on 4/28/09.*+
+*// Copyright 2009 Kok Chen, W7AY. All rights reserved.*+
+*#import "SerialManager.h"*+
+*#include <unistd.h>*+
+*#include <termios.h>*+
+*#include <sys/ioctl.h>*+
+*#include <IOKit/IOKitLib.h>*+
+*#include <IOKit/serial/IOSerialKeys.h>*+
+*#import <fcntl.h>*+
+*#import <UIKit/UIKit.h>*+
+*@implementation SerialManager*+
+*- (id)init*+
+* self = [ super init ] ;*+
+* if ( self ) {*+
+* termiosBits = -1 ;*+
+* inputfd = outputfd = -1 ;*+
+* useTermiosThread = NO ;*+
+* needsNotification = NO ;*+
+* termioLock = [ [ NSLock alloc ] init ] ;*+
+* }*+
+* return self ;*+
+*static int findPorts( CFStringRef *stream, CFStringRef *path, int maxDevice, CFStringRef type )*+
+*kernreturnt kernResult ;*+
+*machportt masterPort ;*+
+* ioiteratort serialPortIterator ;*+
+* ioobjectt modemService ;*+
+*CFMutableDictionaryRef classesToMatch ;*+
+* CFStringRef cfString ;*+
+* int count ;*+
+*kernResult = IOMasterPort( MACHPORTNULL, &masterPort ) ;*+
+*if ( kernResult != KERN_SUCCESS ) return 0 ;*+
+* *+
+*classesToMatch = IOServiceMatching( kIOSerialBSDServiceValue ) ;*+
+*if ( classesToMatch == NULL ) return 0 ;*+
+* *+
+* // get iterator for serial ports (including modems)*+
+* CFDictionarySetValue( classesToMatch, CFSTR(kIOSerialBSDTypeKey), type ) ;*+
+*kernResult = IOServiceGetMatchingServices( masterPort, classesToMatch, &serialPortIterator ) ;*+
+* // walk through the iterator*+
+* count = 0 ;*+
+* while ( ( modemService = IOIteratorNext( serialPortIterator ) ) ) {*+
+* if ( count >= maxDevice ) break ;*+
+*cfString = IORegistryEntryCreateCFProperty( modemService, CFSTR(kIOTTYDeviceKey), kCFAllocatorDefault, 0 ) ;*+
+*if ( cfString ) {*+
+* stream[count] = cfString ;*+
+* cfString = IORegistryEntryCreateCFProperty( modemService, CFSTR(kIOCalloutDeviceKey), kCFAllocatorDefault, 0 ) ;*+
+* if ( cfString ) {*+
+* path[count] = cfString ;*+
+* count++ ;*+
+* }*+
+* }*+
+*IOObjectRelease( modemService ) ;*+
+* IOObjectRelease( serialPortIterator ) ;*+
+* return count ;*+
+*// return number of ports*+
+*- (int)findPorts:(CFStringRef)type*+
+* CFStringRef cstream[64], cpath[64] ;*+
+* int i ;*+
+* *+
+* numberOfPorts = findPorts( cstream, cpath, 64, type ) ;*+
+* for ( i = 0; i < numberOfPorts; i++ ) {*+
+* stream = [ [ NSString stringWithString:(NSString*)cstream ] retain ] ;*+
+* CFRelease( cstream ) ;*+
+* path = [ [ NSString stringWithString:(NSString*)cpath ] retain ] ;*+
+* CFRelease( cpath ) ;*+
+* }*+
+* return numberOfPorts ;*+
+*- (int)findPorts*+
+* return [ self findPorts:CFSTR( kIOSerialBSDAllTypes ) ] ;*+
+*- (int)findModems*+
+* return [ self findPorts:CFSTR( kIOSerialBSDModemType ) ] ;*+
+*- (int)findRS232Ports*+
+* return [ self findPorts:CFSTR( kIOSerialBSDRS232Type ) ] ;*+
+*- (NSString)streamAtIndex:(int)n+
+* if ( n < 0 || n >= numberOfPorts ) return nil ;*+
+* return stream[n] ;*+
+*- (NSString)pathAtIndex:(int)n+
+* if ( n < 0 || n >= numberOfPorts ) return nil ;*+
+* return path[n] ;*+
+*// common function to open port and set up serial port parameters*+
+*static int openPort( NSString *path, int speed, int bits, int parity, int stops, int openFlags, Boolean input )*+
+* int fd, cflag ;*+
+* struct termios termattr ;*+
+* *+
+* fd = open( [ path cStringUsingEncoding:NSASCIIStringEncoding], openFlags ) ;*+
+* if ( fd < 0 ) return -1 ;*+
+* *+
+* // build other flags*+
+* cflag = 0 ;*+
+* cflag |= ( bits == 7 ) ? CS7 : CS8 ; // bits*+
+* if ( parity != 0 ) {*+
+* cflag |= PARENB ; // parity*+
+* if ( parity == 1 ) cflag |= PARODD ;*+
+* }*+
+* if ( stops > 1 ) cflag |= CSTOPB ;*+
+* *+
+* // merge flags into termios attributes*+
+* tcgetattr( fd, &termattr ) ;*+
+* termattr.c_cflag &= ~( CSIZE | PARENB | PARODD | CSTOPB ) ; // clear all bits and merge in our selection*+
+* termattr.c_cflag |= cflag ;*+
+* *+
+* // set speed, split speed not support on Mac OS X?*+
+* cfsetispeed( &termattr, speed ) ;*+
+* cfsetospeed( &termattr, speed ) ;*+
+* // set termios*+
+* tcsetattr( fd, TCSANOW, &termattr ) ;*+
+* return fd ;*+
+*- (int)openInput:(NSString*)pathname baudrate:(int)speed bits:(int)bits parity:(int)parity stopbits:(int)stops flags:(int)openFlags*+
+* return ( inputfd = openPort( pathname, speed, bits, parity, stops, openFlags, YES ) ) ;*+
+*- (int)openInput:(NSString*)pathname baudrate:(int)speed bits:(int)bits parity:(int)parity stopbits:(int)stops*+
+* return ( inputfd = openPort( pathname, speed, bits, parity, stops, ( O_RDONLY | O_NOCTTY | O_NDELAY ), YES ) ) ;*+
+*- (int)openOutput:(NSString*)pathname baudrate:(int)speed bits:(int)bits parity:(int)parity stopbits:(int)stops flags:(int)openFlags*+
+* return ( outputfd = openPort( pathname, speed, bits, parity, stops, openFlags, NO ) ) ;*+
+*- (int)openOutput:(NSString*)pathname baudrate:(int)speed bits:(int)bits parity:(int)parity stopbits:(int)stops*+
+* return ( outputfd = openPort( pathname, speed, bits, parity, stops, ( O_WRONLY | O_NOCTTY | O_NDELAY ), NO ) ) ;*+
+*- (void)closeInput*+
+* if ( inputfd > 0 ) close( inputfd ) ;*+
+*- (void)closeOutput*+
+* if ( outputfd > 0 ) close( outputfd ) ;*+
+*- (int)inputFileDescriptor*+
+* return inputfd ;*+
+*- (int)outputFileDescriptor*+
+* return outputfd ;*+
+*- (int)getTermios*+
+* int bits ;*+
+* *+
+* if ( inputfd > 0 ) {*+
+* [ termioLock lock ] ;*+
+* ioctl( inputfd, TIOCMGET, &bits ) ;*+
+* [ termioLock unlock ] ;*+
+* return bits ;*+
+* }*+
+* return 0 ;*+
+*- (void)setRTS:(Boolean)state*+
+* int bits ;*+
+* if ( inputfd > 0 ) {*+
+* [ termioLock lock ] ;*+
+* ioctl( inputfd, TIOCMGET, &bits ) ;*+
+* if ( state ) bits |= TIOCM_RTS ; else bits &= ~( TIOCM_RTS ) ;*+
+* ioctl( inputfd, TIOCMSET, &bits ) ;*+
+* [ termioLock unlock ] ;*+
+* }*+
+*- (void)setDTR:(Boolean)state*+
+* int bits ;*+
+* if ( inputfd > 0 ) {*+
+* [ termioLock lock ] ;*+
+* ioctl( inputfd, TIOCMGET, &bits ) ;*+
+* if ( state ) bits |= TIOCM_DTR ; else bits &= ~( TIOCM_DTR ) ;*+
+* ioctl( inputfd, TIOCMSET, &bits ) ;*+
+* [ termioLock unlock ] ;*+
+* }*+
+*// IO Notifications*+
+*// prototype for delegate*+
+*- (void)port:(NSString*)name added:(Boolean)added*+
+* if ( delegate && [ delegate respondsToSelector:@selector(port:added:) ] ) [ delegate port:name added:added ] ;*+
+*// this is called from deviceAdded() and deviceRemoved() callbacks*+
+*- (void)portsChanged:(Boolean)added iterator:(ioiteratort)iterator*+
+* ioobjectt modemService ;*+
+* CFStringRef cfString ;*+
+* while ( ( modemService = IOIteratorNext( iterator ) ) > 0 ) {*+
+* cfString = IORegistryEntryCreateCFProperty( modemService, CFSTR( kIOTTYDeviceKey ), kCFAllocatorDefault, 0 ) ;*+
+* if ( cfString ) {*+
+* [ self port:(NSString*)cfString added:added ] ;*+
+* CFRelease( cfString ) ;*+
+* }*+
+* IOObjectRelease( modemService ) ;*+
+* }*+
+*// callback notification when device added*+
+*static void deviceAdded(void *refcon, ioiteratort iterator )*+
+* ioobjectt modemService ;*+
+* *+
+* if ( refcon ) [ (SerialManager*)refcon portsChanged:YES iterator:iterator ] ;*+
+* else {*+
+* while ( modemService = IOIteratorNext( iterator ) ) IOObjectRelease( modemService ) ;*+
+* }*+
+*static void deviceRemoved(void *refcon, ioiteratort iterator )*+
+* ioobjectt modemService ;*+
+* *+
+* if ( refcon ) [ (SerialManager*)refcon portsChanged:NO iterator:iterator ] ;*+
+* else {*+
+* while ( modemService = IOIteratorNext( iterator ) ) IOObjectRelease( modemService ) ;*+
+* }*+
+*- (void)startNotification*+
+* CFMutableDictionaryRef matchingDict ;*+
+* *+
+* notifyPort = IONotificationPortCreate( kIOMasterPortDefault ) ;*+
+* CFRunLoopAddSource( CFRunLoopGetCurrent(), IONotificationPortGetRunLoopSource( notifyPort ), kCFRunLoopDefaultMode ) ;*+
+* matchingDict = IOServiceMatching( kIOSerialBSDServiceValue ) ;*+
+* CFRetain( matchingDict ) ;*+
+* CFDictionarySetValue( matchingDict, CFSTR(kIOSerialBSDTypeKey), CFSTR( kIOSerialBSDAllTypes ) ) ;*+
+* *+
+* IOServiceAddMatchingNotification( notifyPort, kIOFirstMatchNotification, matchingDict, deviceAdded, self, &addIterator ) ;*+
+* deviceAdded( nil, addIterator ) ; // set up addIterator*+
+* IOServiceAddMatchingNotification( notifyPort, kIOTerminatedNotification, matchingDict, deviceRemoved, self, &removeIterator ) ;*+
+* deviceRemoved( nil, removeIterator ) ; // set up removeIterator*+
+*- (void)stopNotification*+
+* if ( addIterator ) {*+
+* IOObjectRelease( addIterator ) ;*+
+* addIterator = 0 ;*+
+* }*+
+* if ( removeIterator ) {*+
+* IOObjectRelease( removeIterator ) ;*+
+* removeIterator = 0 ;*+
+* }*+
+* if ( notifyPort ) {*+
+* CFRunLoopRemoveSource( CFRunLoopGetCurrent(), IONotificationPortGetRunLoopSource( notifyPort ), kCFRunLoopDefaultMode ) ;*+
+* IONotificationPortDestroy( notifyPort ) ;*+
+* notifyPort = nil ;*+
+* }*+
+*// prototype for delegate or subclass*+
+*- (void)controlFlagsChanged:(int)termbits*+
+* if ( delegate && [ delegate respondsToSelector:@selector(controlFlagsChanged:) ] ) [ delegate controlFlagsChanged:termbits ] ;*+
+*- (void)termiosThread*+
+* NSAutoreleasePool *pool = [ [ NSAutoreleasePool alloc ] init ] ;*+
+* int termbits ;*+
+* while ( 1 ) {*+
+* if ( useTermiosThread == NO ) break ;*+
+* if ( inputfd > 0 ) {*+
+* if ( [ termioLock tryLock ] ) {*+
+* ioctl( inputfd, TIOCMGET, &termbits ) ;*+
+* if ( termiosBits != termbits ) [ self controlFlagsChanged:termbits ] ;*+
+* termiosBits = termbits ;*+
+* [ termioLock unlock ] ;*+
+* }*+
+* [ NSThread sleepUntilDate:[ NSDate dateWithTimeIntervalSinceNow:0.25 ] ] ;*+
+* }*+
+* else {*+
+* [ NSThread sleepUntilDate:[ NSDate dateWithTimeIntervalSinceNow:1.0 ] ] ;*+
+* }*+
+* }*+
+* [ pool release ] ;*+
+*// If delegate is set, setDelegate also starts a termiosThread if delegate responds to -controlFlagsChanged:*+
+*- (void)setDelegate:(id)object*+
+* delegate = object ;*+
+* if ( delegate == nil ) {*+
+* useTermiosThread = NO ;*+
+* if ( needsNotification ) {*+
+* needsNotification = NO ;*+
+* [ self stopNotification ] ;*+
+* }*+
+* }*+
+* else {*+
+* if ( [ delegate respondsToSelector:@selector(controlFlagsChanged:) ] ) {*+
+* useTermiosThread = YES ;*+
+* [ NSThread detachNewThreadSelector:@selector(termiosThread) toTarget:self withObject:nil ] ;*+
+* } *+
+* if ( [ delegate respondsToSelector:@selector(port:added:) ] ) {*+
+* needsNotification = YES ;*+
+* [ self startNotification ] ;*+
+* }*+
+* }*+
+*- (id)delegate*+
+* return delegate ;*+
@end
+*// SerialManager.h*+
+*// K3 Tools*+
+*// Created by Kok Chen on 4/28/09.*+
+*// Copyright 2009 Kok Chen, W7AY. All rights reserved.*+
+*//#import <Cocoa/Cocoa.h>*+
+*#import <Foundation/Foundation.h>*+
+*#import <UIKit/UIKit.h>*+
+*#import <CoreData/CoreData.h>*+
+*//#import <IOKit/IOKitLib.h>*+
+*//#import <IOKitLib.h>*+
+*#include <IOKit/IOKitLib.h>*+
+*typedef int FileDescriptor ;*+
+*@interface SerialManager : NSObject {*+
+* NSLock *termioLock ;*+
+* FileDescriptor outputfd ;*+
+* FileDescriptor inputfd ;*+
+* id delegate ;*+
+* // serial ports in system*+
+* NSString *stream[64] ;*+
+* NSString *path[64] ;*+
+* int numberOfPorts ;*+
+* *+
+* // termios*+
+* int termiosBits ;*+
+* Boolean useTermiosThread ;*+
+* *+
+* // IO notifications*+
+* IONotificationPortRef notifyPort ;*+
+* ioiteratort addIterator, removeIterator ;*+
+* Boolean needsNotification ;*+
+*- (void)setDelegate:(id)sender ;*+
+*- (int)findPorts ;*+
+*- (int)findModems ;*+
+*- (int)findRS232Ports ;*+
+*- (NSString*)streamAtIndex:(int)n ;*+
+*- (NSString*)pathAtIndex:(int)n ;*+
+*- (FileDescriptor)openInput:(NSString*)path baudrate:(int)speed bits:(int)bits parity:(int)parity stopbits:(int)stops ;*+
+*- (FileDescriptor)openInput:(NSString*)path baudrate:(int)speed bits:(int)bits parity:(int)parity stopbits:(int)stops flags:(int)openFlags ;*+
+*- (FileDescriptor)openOutput:(NSString*)path baudrate:(int)speed bits:(int)bits parity:(int)parity stopbits:(int)stops ;*+
+*- (FileDescriptor)openOutput:(NSString*)path baudrate:(int)speed bits:(int)bits parity:(int)parity stopbits:(int)stops flags:(int)openFlags ;*+
+*- (void)closeInput ;*+
+*- (void)closeOutput ;*+
+*- (FileDescriptor)inputFileDescriptor ;*+
+*- (FileDescriptor)outputFileDescriptor ;*+
+*- (int)getTermios ;*+
+*- (void)setRTS:(Boolean)state ;*+
+*- (void)setDTR:(Boolean)state ;*+
+*- (void)setDelegate:(id)object ;*+
+*- (id)delegate ;*+
+*// delegates*+
+*- (void)port:(NSString*)name added:(Boolean)added ;*+
+*- (void)controlFlagsChanged:(int)termbits ;*+
@end
Could you help me ? -
hello
I would like to know if there is other library than comm to use to establish communication with the serial port ..
can we do this with pure java ,I mean without the need of using any library ???
if not then what is the best library to use ???
any examples ??
I have other question
when i use the library comm
I use the public void serialEvent(SerialPortEvent event) to get my data
but that data comme line by line
is there a way to get all the data at once ???
than kyou in advanceThere you go
http://java.sun.com/products/javacomm/
Some extra resources
http://www.google.co.in/search?q=java+access+serial+po
rt&start=0&ie=utf-8&oe=utf-8&client=firefox-a&rls=org.
mozilla:en-US:officialmaybe I was not clear ,I know the comm lib
Im already using it
but am asking if there any other lib that will work for windows
thank you -
How can detect the serial port is active
I made a program. It can read datas via serial port. But the datas wont came all the time, so the other part of the program not need to run. I want to put before the "reading serial port" a detection about the serial port is get a data. So the reading is wont start before datas are not coming. Can anybody help me how can i solve this problem?
Hi Zoyo, if you use the VISA- VIs, the functionyou need is "VISA Bytes at serial port". It shows, how many Bytes are available in the input buffer. You can find it here:
greets, Dave
Message Edited by daveTW on 11-22-2006 02:01 PM
Greets, Dave
Attachments:
Bytes at serial port.png 20 KB -
How to read and write from the serial port using java
can anyone tel me how to capture data from a serial port and display on the screen and also store it in a database.
Java Comm API, JDBC
-
How to access the data stored in Java tables in E-Commerce 7.0
For the CRM E-Commerce 7.0 Web shop all the data related order templates, Shop Id and catalog variants are not getting stored in CRM tables. Can anyone please let us know where all the details are getting stored.
By searching here, in SDN Forum we found that these details are getting stored in some java tables. If this is true kindly let us know the following points.
1). How can we access these tables.
2).Where these java tables are stored .
3).Do we have authorizations to check and modify these tables.
4).If we donu2019t have authorizations to check and modify these tables, how can we get the access to them.
4).How can we write Database Queries to retrieve the data from these tables.I am afraid, all these three entities are in CRM tables.
Web Shops - Function module CRM_ISA_SHOP_GETLIST, Table crmm_isa_shop_h
Catalog Variants - Function module - COM_PRDCAT_GET_VARIANTS (they are also stored in CRM tables) for a given catalog.
Now for the Order Templates - They are technically order objects with system status set to "Order Template" I1034. You should be able to see them in CRM tables alongwith other orders... crmd_orderadm_h and etc... -
How to access the stored procedures from Java
Hi,
There is stored procedure in oracle sql and that have two input parameters and recordset as an output parameter.
eg.
CREATE OR REPLACE PROCEDURE Test(
p_Age JUNK.Age%Type,
p_SURNAME JUNK.SURNAME%TYPE,
RC1 IN OUT P_GETALLTOPICDATAPkg.RCT1)
Now i want to execute this by using Java JDBC.I have wrote the following code,
but how to convert "String data to Clob data".
Code is :
String strSPName = "{ call Test(?,?,?) }"; oracle.jdbc.driver.OracleCallableStatement cstmt = (oracle.jdbc.driver.OracleCallableStatement)MyConn.prepareCall(strSPName);
cstmt.setInt(1, 001);
String ClobData ="AMMA AAI MA";
cstmt.setClob(2, (java.sql.Clob)ClobData); above gives error*/
cstmt.execute();
Can any body help.
nullTry using setCharacterStream (this should work in 816 I am not sure of prior Oracle/JDBC releases)
String ClobData ="AMMA AAI MA";
java.io.StringReader sr = java.io.StringReader(ClobData);
cstmt.setCharacterStream(2,sr,ClobData.length());
cstmt.execute();
Good luck -
How to access the SAP MDM destinations using mdm java api in 7.1
hi,
I have SAP MDM 7.1 SP11 and SAP Portal 7.3 and developing the custom webdynpro application using the JAVA MDM API. I want configure the SAP MDM destinations in SAP Portal .
How to access the MDM destinations in java code using API? and how to create the connection with MDM using the MDM destinations.
Please provide the code for access the SAP MDM destinations in java code using MDM java api and creating the connection to MDM.
ThanksJun,
Thanks for the reply and api information.
I have got this api information from the following sap documentation. But i am looking for the code by implementing this class and creating the mdm connection.
Creating an MDM Connection Using Java Code - SAP NetWeaver Master Data Management (MDM) - SAP Library
if any thing can you share it.
Thanks -
[SOLVED] How to set non-root access to serial ports?
I have this device which is listed as
/dev/ttyUSB0
I need to
sudo chown sms /dev/ttyUSB0
every time I reboot. Normally I would think to add myself to some group but "tty" group is not doing the trick... proof:
[sms@sms-linux ~]$ groups sms
tty wheel sms
[sms@sms-linux ~]$ MinOZW
Starting MinOZW with OpenZWave Version 1.0.758
2014-03-15 06:32:07.921 Cannot find a path to the configuration files at ../../../config/, Using /usr/local/etc/openzwave/ instead...
2014-03-15 06:32:07.928 mgr, Added driver for controller /dev/ttyUSB0
2014-03-15 06:32:07.929 Opening controller /dev/ttyUSB0
2014-03-15 06:32:07.931 Trying to open serial port /dev/ttyUSB0 (attempt 1)
2014-03-15 06:32:07.933 ERROR: Cannot open serial port /dev/ttyUSB0. Error code 13
2014-03-15 06:32:07.935 ERROR: Failed to open serial port /dev/ttyUSB0
2014-03-15 06:32:07.936 WARNING: Failed to init the controller (attempt 0)
^C
[sms@sms-linux ~]$ sudo MinOZW
[sudo] password for root:
Starting MinOZW with OpenZWave Version 1.0.758
2014-03-15 06:32:23.776 Cannot find a path to the configuration files at ../../../config/, Using /usr/local/etc/openzwave/ instead...
2014-03-15 06:32:23.782 mgr, Added driver for controller /dev/ttyUSB0
2014-03-15 06:32:23.784 Opening controller /dev/ttyUSB0
2014-03-15 06:32:23.786 Trying to open serial port /dev/ttyUSB0 (attempt 1)
2014-03-15 06:32:23.794 Serial port /dev/ttyUSB0 opened (attempt 1)
Edit: yes, it was after logout and even reboot.
Last edited by smsware (2014-03-15 15:07:15)Hi,
I also have a similar problem. I added myself to uucp group, but I still cannot access the serial port.
[manjaro@mycomp work]$ sudo gpasswd -a manjaro uucp
[sudo] password for manjaro:
Adding user manjaro to group uucp
[manjaro@mycomp work]$ groups manjaro
lp wheel uucp network video audio storage users
[manjaro@mycomp work]$ ls -l /dev/ttyUSB0
crw-rw---- 1 root uucp 188, 0 23.06.2014 21:32 /dev/ttyUSB0
[manjaro@mycomp work]$ lpc21isp firmware.hex /dev/ttyUSB0 19200 11059
lpc21isp version 1.97
File firmware.hex:
loaded...
Start Address = 0x00004F9C
converted to binary format...
image size : 30304
Image size : 30304
Can't open COM-Port /dev/ttyUSB0 ! (Error: 13d (0xD))
But when I try as root, it works:
[manjaro@mycomp work]$ sudo lpc21isp firmware.hex /dev/ttyUSB0 19200 11059
[sudo] password for manjaro:
lpc21isp version 1.97
File firmware.hex:
loaded...
Start Address = 0x00004F9C
converted to binary format...
image size : 30304
Image size : 30304
Synchronizing (ESC to abort)..... OK
Read bootcode version: 13
Download Finished... taking 27 seconds
Now launching the brand new code
Do you have any idea what I am doing wrong?
Last edited by manjaro (2014-06-23 19:57:40) -
How can I use the output value from SIMPLE PID to write something to the serial port?
I am working on my Senior Design Project that requires the use of incoming compressed air, propotional valves, continuous servo motors, and a serial servo motor microcontroller. I have figured out how to send byte sequences to the microcontroller through LabVIEW using the VISA serial write function. The motors are attached to the valves to control the flow rate. I have created my own simple feedback system using a bunch of case structures but I realized that I am basically trying to recreate the wheel (I basically was writing my own PID VI). I have an older version of LabVIEW (7.0 Express) and theres no way to upgrade or buy the PID toolkit, so I am stuck using the Simple PID VI. Also, the only way the motor works is sending an array of bytes to tell it to turn on/off, direction, and speed. Is there any way I can use the Simple PID VI in conjunction with the VISA SERIAL write function, or is there any other way I can communicate with the serial port using this pid vi? Any information would be appreciated.
Hi gpatel,
you know how to communicate to serial port, but you don't know how to send a value from SimplePID to serial port???
You know how to communicate, but then you don't know how to communicate???
You should explain this in more detail...
Edit:
From you first post you know what values your motor driver is expecting. You know which values the PID.vi is providing. Now all you need is a formula to reshape the values from PID to the motor. It's up to you to make such a formula. Unless you provide any details we cannot give more precise answers...
Message Edited by GerdW on 02-28-2010 08:35 PM
Best regards,
GerdW
CLAD, using 2009SP1 + LV2011SP1 + LV2014SP1 on WinXP+Win7+cRIO
Kudos are welcome -
The serial port seems to be working, and labview seems to be sending the data, but the problem is in which format does it send the data, because in hyperterminal i just input the string "JDX" and it sends it to my device, with labview it sends something but my device does not recognize it.
nobuto wrote:
> I want to transfer data through the serial port in the same coding
> that hyperterminal uses. How can i do it?
>
> The serial port seems to be working, and labview seems to be sending
> the data, but the problem is in which format does it send the data,
> because in hyperterminal i just input the string "JDX" and it sends it
> to my device, with labview it sends something but my device does not
> recognize it.
Hyperterminal adds the carriage return/line feed to the string which is
generated by the return key to send out the current line. LabVIEW simply
sends out what you tell it, so try to set the string to "Show \ Display"
format and add a \r or \n or \r\n to the command you want to send out.
Assumes of course that you set the right baudr
ate/bits/parity etc in
LabVIEW with the VISA property node, when opening the serial port.
Rolf Kalbermatter
Rolf Kalbermatter
CIT Engineering Netherlands
a division of Test & Measurement Solutions -
I am trying to write a vi that interfaces with a piece of OEM equipment that is set up to talk with a VT 100 terminal. I can't seem to locate the ASCII equivalent string (if there is such a thing) of a CTRL D. Is there a vi that emulates VT 100 commands?
If I recall, CTRL-D is EOF on most ASCII tables.
You'd probably have to use an escape sequence
or if you can use an unsigned 8-bit that might be
easier.
In article <[email protected]>, TLS
wrote:
> How can I use LabVIEW to send the equivalent of a CTRL D (in VT 100
> format) out the serial port of my computer?
>
> I am trying to write a vi that interfaces with a piece of OEM
> equipment that is set up to talk with a VT 100 terminal. I can't seem
> to locate the ASCII equivalent string (if there is such a thing) of a
> CTRL D. Is there a vi that emulates VT 100 commands? -
Problem in Accessing serial port using java comm Api
I have installed java comm Api in my pc.
i have gone through the instalation instruction which comes on this package.
I have done the instalation like this
Copy win32com.dll to my <JDK>\bin directory.
Copy comm.jar to my <JDK>\lib directory.
Copy javax.comm.properties to my <JDK>\lib directory.
and restart the system.
But when i run the BlackBox , it is giving me message
"serial port not found".
Can any one tell me , what is the exact problem ?I'm not sure what you mean by BlackBox, but I have used the COMM api extensively.
The majority of problems is that the api cannot see the serial port (which is what you are describing) and this is caused by incorrect placing of the javax.comm.properties file.
As well as <JDK>\lib, try putting it into <JRE>\lib as well. That has often solved problems on my setup. -
How to access the java stack table "xi_af_msg" from the ABAP engine.
Hello Guys,
How to access the java stack table "xi_af_msg" from the ABAP engine.
I need to access this table.These 3 are the tables that are for XI Adapter in ABAP Stack.
SWFRXICNT
SWFRXIHDR
SWFRXIPRC
You can also try the following tables.
SXMSAEADPMOD XI: Adapter and Module Information
SXMSAEADPMODCHN XI: Adapter Module Chains
SXMSAEAGG XI: Adapter Runtime Data (Aggregated)
SXMSAERAW XI: Adapter Runtime Data (Raw Data)
Cheers,
Sarath.
Award if helpful. -
How to access the *.java file corresponding to a TypeElement T?
Here is a problem:
How to access the *.java file corresponding to a TypeElement T from a AnnotationProcessor environment?
Let us say the hook method
public boolean process(Set<? extends TypeElement> annos, RoundEnvironment roundEnv)
is invoked with a TypeElement T such that T.getQualifiedname() = "a.b.c.X"
And the problem is how to locate the file that has the *.java source code for a.b.c.X?
That is the file that has the source code for a.b.c.X say "some/path/a/b/c/X.java"?
For simplicity, let us assume that TypeElement T corresponds to a top-level Java class.Pinaki wrote:
That is not something you as the annotation processor author should be asking about. That is something you the person configuring the javac environment should set up via the -d option or its equivalent.
I strongly recommend using a separate output directory hierarchy.That is the way the current implementation is. The annotation processor takes a -Aout= <some directory path> to write generated output relative to a user-specified location (which defaults to the class output location).That is contrary to the design of the annotation processing facility. The intended use is for that information to be configured via options like "javac -d".
Additionally, IMO it is a serious configuration error to put generated files and input files, presumably tracked under version control, in the same directory. Interesting you said that. We are just running some "field trial" with these things and some users want them to be in the same directory of the original *.java files (especially when their source files are spread across many roots) .
Who knows what the user wants?The user does and the user is free to (mis)configure their environment however they like ;-) However, that is the user's option and the user has control of this via the javac command line. The annotation processor is not the proper place to configure this setting; see slide 7 of http://blogs.sun.com/darcy/resource/J1_2006-BOF-0606.pdf for some thoughts on different roles in annotation processing.
presumably tracked under version control, in the same directory.version control is another 'usability issues' that we are trying to get our heads around with this stuff. "To check-in or not?" - that seems to be the question. When presented these facilities without any cue, "the users" were divided -- some wanted them to be checked-in, some did not. The context where these generated files being used -- there exists some rationale to check them in a version control system.The right answer depends on the circumstances, but IMO generally generated files should not be checked in under version control, especially if they are derived from other source files. Checking in generated files of this nature just creates the opportunity for them to get out of date with the originating files.
Maybe you are looking for
-
My computer was stolen. How do I find it if I dont know that I have icloud?
My computer was stolen. How do I find it if I dont know that I have icloud?
-
How to get the PDF documents that are currently opened in Adobe Reader?
When a PDf file is opened in adobe reader, how can we know the details of the file which is currently opened. If I want a copy the PDF document to get saved on desktop automatically without asking to user, How can I do this in c#? If there are many P
-
Updation of material data using a function module
HI i want to update fields in the mvke table,but the field is a Customer field in the table, not sap table field.i want to update the field using a program , not going to mm02. which function can i use for the updation.There is a function module MA
-
IPhoto not launching . only spinning wheel
I have a macbook pro; OSX 10.8.4 and have a problem with iPhoto not opening. only spinning wheel
-
Start page when opening new tab?
when i open a new tab (by clicking the + at the tab-taskbar), i get another start page as the start page i have set. how can i get the same start page, when i open a new tab, as the one i have set when firefox opens ?