私は優れたプログラマーではありません。学校では、MATLABを学びました。だから私は自分が何をしているのか分かりません。
私はThingMagicM6リーダーを使用しています。彼らは独自のAPIを持っています。プログラムを読むための独自のアプリケーションを作成したかったのです。彼らが提供したサンプルプログラムを使用したい(私のプログラムが機能していないように見えるため)。ただし、提供されているプログラムはコマンドライン引数のみを受け入れます。コードで引数を渡すことができるように変更するにはどうすればよいですか。
これは提供されたコードです:(コマンドラインでtmr://10.0.0.101と入力します)
/**
* Sample program that reads tags for a fixed period of time (500ms)
* and prints the tags found.
*/
// Import the API
package samples;
import com.thingmagic.*;
public class read
{
static void usage()
{
System.out.printf("Usage: demo reader-uri <command> [args]\n" +
" (URI: 'tmr:///COM1' or 'tmr://astra-2100d3/' " +
"or 'tmr:///dev/ttyS0')\n\n" +
"Available commands:\n");
System.exit(1);
}
public static void setTrace(Reader r, String args[])
{
if (args[0].toLowerCase().equals("on"))
{
r.addTransportListener(r.simpleTransportListener);
}
}
static class TagReadListener implements ReadListener
{
public void tagRead(Reader r, TagReadData t) {
System.out.println("Tag Read " + t);
}
}
public static void main(String argv[])
{
System.out.println(argv.getClass().toString());
// Program setup
TagFilter target;
Reader r;
int nextarg;
boolean trace;
r = null;
target = null;
trace = false;
nextarg = 0;
if (argv.length < 1)
usage();
if (argv[nextarg].equals("-v"))
{
trace = true;
nextarg++;
System.out.println("Trace");
}
// Create Reader object, connecting to physical device
try
{
TagReadData[] tagReads;
r = Reader.create(argv[nextarg]);
if (trace)
{
setTrace(r, new String[] {"on"});
}
r.connect();
if (Reader.Region.UNSPEC == (Reader.Region)r.paramGet("/reader/region/id"))
{
r.paramSet("/reader/region/id", Reader.Region.NA);
}
r.addReadListener(new TagReadListener() );
// Read tags
tagReads = r.read(500);
// Print tag reads
for (TagReadData tr : tagReads)
System.out.println(tr.toString());
// Shut down reader
r.destroy();
}
catch (ReaderException re)
{
System.out.println("Reader Exception : " + re.getMessage());
}
catch (Exception re)
{
System.out.println("Exception : " + re.getMessage());
}
}
}
これは私がそれを使おうとしているところです:(引数はJTextFieldから来ています)
String[] argv = new String[1];
argv[0] = arg;
readOnceApp(argv);
私はこの問題に対する本当に簡単な答えがあると感じています、私はそれを理解することができません。私は数日間インターネットを検索して本を読みましたが、それでも理解できません。どんな助けでも大歓迎です。ありがとうございました。
編集:readOnceAppは私が書いたメソッドの1つです。これは基本的に、提供されたコードのメインメソッドにすぎません。それが助けになるなら、私はそれを含めることができます。あまり多くのコードを投稿したくなかっただけです。