Correct using bytearray.

This commit is contained in:
SeungheeOh 2019-09-15 09:21:17 +09:00
parent 27814e5a8e
commit 53a6431453
3 changed files with 95 additions and 42 deletions

View File

@ -26,7 +26,7 @@ public class MainActivity extends AppCompatActivity {
public static final String TAG="carnav";
static final String ACTION_USB_PERMISSION = "com.flywithu.carnav.USB_PERMISSION";
private BroadcastReceiver usbReceiver = null;
private static UsbSerialPort sPort = null;
private void goService()
{
@ -109,20 +109,21 @@ public class MainActivity extends AppCompatActivity {
Toast.makeText(getApplicationContext(), "Unknown error", Toast.LENGTH_LONG).show();
} else {
UsbSerialPort sPort = null;
sPort = driver.getPorts().get(0);
sPort.open(connection);
Toast.makeText(getApplicationContext(),"Serial Count:"+String.valueOf(driver.getPorts().size()),Toast.LENGTH_LONG).show();
sPort.close();
sPort = null;
Toast.makeText(getApplicationContext(),"Serial Count:"+String.valueOf(driver.getPorts().size()),Toast.LENGTH_LONG).show();
goService();
}
}
}
catch(Exception e)
{
Toast.makeText(getApplicationContext(),e.toString(),Toast.LENGTH_LONG).show();
Toast.makeText(getApplicationContext(),e.toString(),Toast.LENGTH_LONG).show();
}

View File

@ -54,10 +54,10 @@ public class RealService extends Service {
}
private synchronized void sendSerial(String str,Charset enc) {
byte t1[] = new byte[]{0x55, 0x34, 0x50, 0x4C, 0x30, 0x33, 0x7C, 0x31, 0x2C, 0x31, 0x7C, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30};
byte t2[] = new byte[]{0x55, 0x34, 0x50, 0x4C, 0x31, 0x33, 0x7C, 0x41, (byte) 0xec, (byte) 0xa7, (byte) 0x80, (byte) 0xec, (byte) 0x96, (byte) 0xb4, (byte) 0xeb, (byte) 0xb0, (byte) 0x98, 0x5a, 0x7c};
byte t3[] = new byte[]{0x55, 0x34, 0x50, 0x4C, 0x32, 0x33, 0x7C, (byte) 0xfe, (byte) 0xff, 0x00, 0x41, (byte) 0xc9, (byte) 0xc0, (byte) 0xc5, (byte) 0xb4, (byte) 0xbc, 0x18, 0x00, 0x5a, 0x7c};
byte t4[] = new byte[]{0x55, 0x34, 0x50, 0x4C, 0x33, 0x33, 0x7C, 0x00, 0x00, 0x00, 0x41, 0x00, 0x00, (byte) 0xc9, (byte) 0xc0, 0x00, 0x00, (byte) 0xc5, (byte) 0xb4, 0x00, 0x00, (byte) 0xbc, 0x18, 0x00, 0x00, 0x00, 0x5a, 0x7c};
// byte t1[] = new byte[]{0x55, 0x34, 0x50, 0x4C, 0x30, 0x33, 0x7C, 0x31, 0x2C, 0x31, 0x7C, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30};
// byte t2[] = new byte[]{0x55, 0x34, 0x50, 0x4C, 0x31, 0x33, 0x7C, 0x41, (byte) 0xec, (byte) 0xa7, (byte) 0x80, (byte) 0xec, (byte) 0x96, (byte) 0xb4, (byte) 0xeb, (byte) 0xb0, (byte) 0x98, 0x5a, 0x7c};
// byte t3[] = new byte[]{0x55, 0x34, 0x50, 0x4C, 0x32, 0x33, 0x7C, (byte) 0xfe, (byte) 0xff, 0x00, 0x41, (byte) 0xc9, (byte) 0xc0, (byte) 0xc5, (byte) 0xb4, (byte) 0xbc, 0x18, 0x00, 0x5a, 0x7c};
// byte t4[] = new byte[]{0x55, 0x34, 0x50, 0x4C, 0x33, 0x33, 0x7C, 0x00, 0x00, 0x00, 0x41, 0x00, 0x00, (byte) 0xc9, (byte) 0xc0, 0x00, 0x00, (byte) 0xc5, (byte) 0xb4, 0x00, 0x00, (byte) 0xbc, 0x18, 0x00, 0x00, 0x00, 0x5a, 0x7c};
/*
41eca780ec96b4ebb0985a
feff0041c9c0c5b4bc18005a
@ -67,8 +67,15 @@ feff0041c9c0c5b4bc18005a
try {
sPort.write(getStringToByte(str,enc), 3000);
sPort.write(new byte[]{0xd}, 3000);
sPort.write(getStringToByte(str,enc), 3000);
// Toast.makeText(getApplicationContext(),String.valueOf(result),Toast.LENGTH_SHORT).show();
sPort.write(new byte[]{0xd}, 3000);
// Toast.makeText(getApplicationContext(),String.valueOf(result2),Toast.LENGTH_SHORT).show();
Log.d("TAG",str);
// showToast(getApplication(), "SEND:"+str);
// sPort.write(t1, 3000);
// sPort.write(new byte[]{0xd}, 3000);
//
@ -81,17 +88,22 @@ feff0041c9c0c5b4bc18005a
// sPort.write(t4, 3000);
// sPort.write(new byte[]{0xd}, 3000);
} catch (Exception e) {
showToast(getApplication(),"Error:"+e.toString());
}
}
else
{
showToast(getApplication(),"SERIAL NULL");
}
}
protected byte[] getStringToByte(String str,Charset enc)
{
ByteBuffer buf = ByteBuffer.allocate(100);;
ByteBuffer buf = ByteBuffer.allocate(300);;
/*
sendSerial("U4PL13|soar|");
sendSerial("U4PL23|헤어지자 (Prod. 정키)|");
@ -106,8 +118,10 @@ feff0041c9c0c5b4bc18005a
buf.put(arrStr[0].getBytes(Charset.forName("UTF-8")));
buf.put(new byte[]{0x7c});
buf.put(arrStr[1].getBytes(enc));
// Log.d("TAG", String.valueOf( buf.position()));
buf.put(new byte[]{0x7c});
// System.out.println(new String(buf.array()));
// Log.d("TAG", String.valueOf( buf.position()));
}
else
@ -116,10 +130,11 @@ feff0041c9c0c5b4bc18005a
buf.put(str.getBytes(Charset.forName("UTF-8")));
}
byte[] bytes = new byte[buf.position()];
buf.get(bytes,0,buf.position());
return buf.array();
return bytes;
}
@ -147,6 +162,7 @@ feff0041c9c0c5b4bc18005a
UsbDeviceConnection connection = null;
try {
driver = availableDrivers.get(0);
connection = manager.openDevice(driver.getDevice());
if (connection == null) {
showToast(getApplication(), "No connection");
@ -154,8 +170,11 @@ feff0041c9c0c5b4bc18005a
}
sPort = driver.getPorts().get(0);
// showToast(getApplication(), driver.getDevice().getProductName());
} catch (Exception e) {
showToast(getApplication(), e.toString());
return START_NOT_STICKY;
}
try {
@ -172,6 +191,7 @@ feff0041c9c0c5b4bc18005a
// Ignore.
}
sPort = null;
return START_NOT_STICKY;
}
//set the time
//TMST001801140907
@ -199,31 +219,9 @@ feff0041c9c0c5b4bc18005a
//U4PL03|1,1|0001010000000 U4PL13|soar| U4PL23|헤어지자 (Prod. 정키)| U4PL33|휘인 (Whee In)|
showToast(getApplication(), currentTime);
// try {
// sPort.write("zxcv".getBytes(), 50);
// }
// catch(Exception e)
// {
//
// }
// SimpleDateFormat sdf = new SimpleDateFormat("aa hh:mm");
// boolean run = true;
// while (run) {
// try {
// Thread.sleep(1000 * 60 * 1); // 1 minute
// Date date = new Date();
// //showToast(getApplication(), sdf.format(date));
// sendNotification(sdf.format(date));
// } catch (InterruptedException e) {
// run = false;
// e.printStackTrace();
// }
// }
// }
// });
// mainThread.start();
IntentFilter iF = new IntentFilter();
iF.addAction("com.android.music.metachanged");
@ -255,13 +253,21 @@ feff0041c9c0c5b4bc18005a
{
try
{
Thread.sleep(1000);
Thread.sleep(5000);
SimpleDateFormat format1 = new SimpleDateFormat("00yyMMddHHmm");
// String f = format1.format(System.currentTimeMillis());
String currentInfo = format1.format(new Date());
String currentTime = String.format("TMST%s", currentInfo);
sendSerial(currentTime);
showToast(getApplication(), currentTime);
sendSerial("U4EN00");
sendSerial("*R|R1R2R3D1D2A1A3U4|");
sendSerial("U4PL03|5,3|0001010000000");
sendSerial("U4PL13|8소아|",Charset.forName("UTF-8"));
sendSerial("U4PL23|16헤어지자 (Prod. 정키)|", Charset.forName("UTF-16"));
sendSerial("U4PL33|32휘인 (Whee In)|",Charset.forName("UTF-32"));
}
catch(InterruptedException e)
{
@ -275,6 +281,49 @@ feff0041c9c0c5b4bc18005a
}).start();
// new Thread(new Runnable() {
// @Override
// public void run()
// {
//
// boolean myRun = true;
// showToast(getApplication(), "READ start");
// while (myRun)
// {
// try
// {
// byte[] mArray = new byte[100];
// int len = sPort.read(mArray,1000);
// if(len >0)
// {
// String result = new String (mArray,0,len,Charset.defaultCharset());
// showToast(getApplication(), "READ:"+result);
// }
// else
// {
// showToast(getApplication(), "READ FAIL");
// Log.d("FAIL","FAIL");
// }
//
//
// }
// catch(Exception e)
// {
// myRun = false;
//
// }
// }
//
// }
//
// }).start();
return START_NOT_STICKY;
}
@ -285,12 +334,13 @@ feff0041c9c0c5b4bc18005a
sPort.close();
sPort = null;
} catch (Exception e) {
showToast(getApplication(),"stop Error");
}
serviceIntent = null;
setAlarmTimer();
Thread.currentThread().interrupt();
unregisterReceiver(mReceiver);
showToast(getApplication(),"stop Service");
// if (mainThread != null) {
// mainThread.interrupt();
// mainThread = null;
@ -317,7 +367,7 @@ feff0041c9c0c5b4bc18005a
h.post(new Runnable() {
@Override
public void run() {
Toast.makeText(application, msg, Toast.LENGTH_LONG).show();
Toast.makeText(application, msg, Toast.LENGTH_SHORT).show();
}
});
}

View File

@ -4,10 +4,12 @@ import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.os.Build;
import android.widget.Toast;
public class RebootReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
Intent in = new Intent(context, RestartService.class);
context.startForegroundService(in);