GithubHelp home page GithubHelp logo

azurechen / robotmon-scripts Goto Github PK

View Code? Open in Web Editor NEW

This project forked from r2-studio/robotmon-scripts

0.0 2.0 0.0 6.52 MB

scripts

License: Apache License 2.0

JavaScript 73.31% HTML 20.73% CSS 2.35% Shell 0.38% CMake 0.28% C++ 2.94%

robotmon-scripts's Introduction

Robotmon Javascript Apis

Before Using Apis

Install App (Only support Android) (No need to root)

Download link Google Play

Install developer tool

See Robotmon Desktop

Run background service (Important)

Service is built in app com.r2studio.robotmon.Main, that's start it.

First, connect android phone to PC with USB

Using Double-Click Tools

  1. Download Robotmon-service-manager
  2. Unzip it
  3. Double Click windows-start.bat in windows, mac-start.command in mac, linux-start.sh in linux

Using developer tool

  1. Click 掃描 Scan
  2. Click 啟動 Start

Using command line (need adb tools)

adb shell 'nohup sh -c "LD_LIBRARY_PATH=/system/lib:/data/app/com.r2studio.robotmon-1/lib/arm:/data/app/com.r2studio.robotmon-2/lib/arm CLASSPATH=/data/app/com.r2studio.robotmon-1/base.apk:/data/app/com.r2studio.robotmon-2/base.apk app_process32 /system/bin com.r2studio.robotmon.Main $@" > /dev/null 2> /dev/null &'

Check service is running

$ adb shell 'ps | grep app_process'
# or
$ adb shell 'ps | grep app_process'
shell     16035 16032 2295692 40508 futex_wait ab35c858 S app_process32

Troubling

  • Check LD_LIBRARY_PATH, CLASSPATH and app_process32 is correct/exists
  • Thers is no nohub in some devices, you may remove it and try again
  • Using app_process instead of app_process32 in old phones
  • We only test HTC phones currently

If you want to kill background service

# find pid
$ adb shell ps app_process
# or
$ adb shell "ps | grep app_process"
# kill it
$ adb shell kill <pid>

Javascript APIs

  • (Only support ES5)
getScreenSize() {int width, int height}
getScreenshotModify(int cropX, int cropY, int cropWidth, int cropHeight, int resizeWidth, int resizeHeight, int quality) int imgPtr
getScreenshot() int imgPtr
execute(string command) string result
tap(int x, int y, int during)
swipe(int x1, int y1, int x2, int y2, int during)
tapDown(int x, int y, int during)
tapUp(int x, int y, int during)
moveTo(int x, int y, int during)
typing(string words, int during)
keycode(string label, int during)

# images (openCV functions) 
clone(int sourceImg) int imgPtr
smooth(int sourceImg, int smoothType, size int)
	smoothType:
		0 = CV_BLUR_NO_SCALE
		1 = CV_BLUR
		2 = CV_GAUSSIAN
		3 = CV_MEDIAN
		4 = CV_BILATERAL
convertColor(int sourceImg, int code)
	code:
		40 = CV_BGR2HSV
		52 = CV_BGR2HLS
	see: imgproc/types_c.h 

absDiff(int sourceImg, int targetImg) int diffImgPtr
threshold(int sourceImg, float thr, maxThr, int code)
	code:
		0 = CV_THRES_BINARY
	see: imgproc/types_c.h

eroid(int sourceImg, int w, int h, int x, int y)
canny(int sourceImg, float t1, float t2, int apertureSize) int cannyImgPtr
findContours(int cannyImgPtr, float minArea, float maxArea) {"0": {int x, int y}}

drawCircle(int imgPtr, int x, int y, int radius, int r, int g, int b, int a)
findImages(int srcPtr, int targetImg, int scoreLimit, int resultCountLimit, withoutOverlap) string json
  json format (key is string!):
    {"0": {"x": 0, "y": 0, "score": 0.99}, "1": {"x": 10, "y": 10, "score": 0.43}}

getIdentityScore(int sourceImg, int targetImg) int score
findImage(int sourceImg, int targetImg) {int x, int y, int score}
cropImage(int sourceImg, int x, int y, int width, int height) int imgPtr
resizeImage(int sourceImg, int width, int height) int imgPtr
releaseImage(int imgPtr)
getImageColor(int sourceImg, int x, int y) {int r, int g, int b, int a}
getImageSize(int imgPtr) {int width, int height}
saveImage(int imgPtr, string path)
openImage(string path) int imgPtr
sleep(int millisecond)

getStoragePath() string path
getImageFromURL(string url) int imgPtr
getImageFromBase64(string base64) int imgPtr
getBase64FromImage(int imgPtr) string base64
log(string tag, string msg) string logMsg

readFile(string path) string text
writeFile(string path, string text)
runScript(string script)

Connect to background service your self

Grpc APIs (Service Client)

message Empty {}

message Response {
  string message = 1;
}

message RequestRunScript {
  string script = 1;
}

message RequestScreenshot {
  int32 cropX = 1;
  int32 cropY = 2;
  int32 cropWidth = 3;
  int32 cropHeight = 4;
  int32 resizeWidth = 5;
  int32 resizeHeight = 6;
  int32 quality = 7;
}

message RequestTap {
  int32 x = 1;
  int32 y = 2;
  int32 during = 3;
}

message ResponseScreenshot {
  bytes image = 1;
}

message ResponseScreenSize {
  int32 width = 1;
  int32 height = 2;
}

service GrpcService {
  rpc RunScript(RequestRunScript) returns (Response) {}
  rpc Logs(Empty) returns (stream Response) {}
  rpc GetScreenshot(RequestScreenshot) returns (ResponseScreenshot) {}
  rpc GetScreenSize(Empty) returns (ResponseScreenSize) {}
  rpc Tap(RequestTap) returns (Response) {}
  rpc TapDown(RequestTap) returns (Response) {}
  rpc TapUp(RequestTap) returns (Response) {}
  rpc MoveTo(RequestTap) returns (Response) {}
}

robotmon-scripts's People

Contributors

poi5305 avatar shawnlin013 avatar sean-hsueh avatar

Watchers

James Cloos avatar Azure Chen avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.