Skip to content

Commit

Permalink
Merge branch 'hotfix/1.0.1'
Browse files Browse the repository at this point in the history
  • Loading branch information
Daisuke Baba committed Jul 26, 2016
2 parents ba3d45d + 2c12922 commit 610b6e7
Show file tree
Hide file tree
Showing 5 changed files with 78 additions and 13 deletions.
2 changes: 2 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -410,5 +410,7 @@ $ time sudo SRC_DIR=$(pwd) DEBUG=1 CANDY_RED=0 ./install.sh
```

# 履歴
* 1.0.1
- AMP520において、自動接続モードがデフォルトで有効になるように修正
* 1.0.0
- 初版
2 changes: 1 addition & 1 deletion install.sh
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ VENDOR_HOME=/opt/candy-line

SERVICE_NAME=ltepi2
GITHUB_ID=CANDY-LINE/ltepi2-service
VERSION=1.0.0
VERSION=1.0.1

NODEJS_VERSIONS="v0.12 v4.3"

Expand Down
28 changes: 23 additions & 5 deletions systemd/server_main.py
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ def run(self):
err = subprocess.call("ip route | grep %s" % self.nic, shell=True, stdout=Monitor.FNULL, stderr=subprocess.STDOUT)
if err != 0:
logger.error("LTEPi-II modem is terminated. Shutting down.")
os.kill(os.getpid(), signal.SIGINT) # exit from non-main thread
os.kill(os.getpid(), signal.SIGTERM) # exit from non-main thread
break
err = subprocess.call("ip route | grep default | grep -v %s" % self.nic, shell=True, stdout=Monitor.FNULL, stderr=subprocess.STDOUT)
if err == 0:
Expand Down Expand Up @@ -82,16 +82,32 @@ def resolve_boot_apn():
os.remove(apn_json)
return apn

def modem_init(serial_port, sock_path):
def modem_init1(serial_port, sock_path):
delete_sock_path(sock_path)
atexit.register(delete_sock_path, sock_path)

serial = candy_board_amt.SerialPort(serial_port, 115200)
server = candy_board_amt.SockServer(resolve_version(), resolve_boot_apn(), sock_path, serial)
ret = server.perform({'category':'modem', 'action':'enable_ecm'})
logger.debug("modem_init() : modem, enable_ecm => %s" % ret)
logger.debug("modem_init1() : modem, enable_ecm => %s" % ret)
sys.exit(json.loads(ret)['status'] != 'OK')

def modem_init2(serial_port, sock_path):
delete_sock_path(sock_path)
atexit.register(delete_sock_path, sock_path)

serial = candy_board_amt.SerialPort(serial_port, 115200)
server = candy_board_amt.SockServer(resolve_version(), resolve_boot_apn(), sock_path, serial)
ret = server.perform({'category':'modem', 'action':'enable_auto_connect'})
logger.debug("modem_init2() : modem, enable_auto_connect => %s" % ret)
ret = json.loads(ret)
if ret['status'] == 'OK':
if ret['result'] == 'Already Enabled':
sys.exit(0)
else:
sys.exit(1)
sys.exit(2)

def blinky():
global led, led_sec
led = 0 if led != 0 else 1
Expand Down Expand Up @@ -128,8 +144,10 @@ def server_main(serial_port, nic, sock_path='/var/run/candy-board-service.sock')
if len(sys.argv) < 3:
logger.error("USB Ethernet Network Interface isn't ready. Shutting down.")
elif len(sys.argv) > 3:
if sys.argv[3] == 'init':
modem_init(sys.argv[1], sys.argv[2])
if sys.argv[3] == 'init1':
modem_init1(sys.argv[1], sys.argv[2])
elif sys.argv[3] == 'init2':
modem_init2(sys.argv[1], sys.argv[2])
else:
logger.error("Do nothing: sys.argv[3]=%s" % sys.argv[3])
else:
Expand Down
56 changes: 50 additions & 6 deletions systemd/start_systemd.sh
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,23 @@ function wait_for_modem_usb_active {
done
}

function wait_for_modem_usb_inactive {
MAX=40
COUNTER=0
while [ ${COUNTER} -lt ${MAX} ];
do
RET=`lsusb | grep 1ecb:0208`
if [ "$?" != "0" ]; then
RET=`lsusb | grep 1ecb:0202`
if [ "$?" != "0" ]; then
break
fi
fi
sleep 0.5
let COUNTER=COUNTER+1
done
}

function look_for_serial_port {
MAX=60
COUNTER=0
Expand All @@ -39,12 +56,24 @@ function look_for_serial_port {
done
}

function try_to_change_usb_data_conn {
# Change to ECM
function change_usb_data_conn {
logger -t ltepi2 "Modifying the USB data connection I/F to ECM"
/usr/bin/env python /opt/candy-line/ltepi2/server_main.py ${MODEM_SERIAL_PORT} /var/run/candy-board-service.sock init
logger -t ltepi2 "*** Rebooting... ***"
reboot
/usr/bin/env python /opt/candy-line/ltepi2/server_main.py ${MODEM_SERIAL_PORT} /var/run/candy-board-service.sock init1
RET=$?
if [ "${RET}" == "0" ]; then
logger -t ltepi2 "*** Restarting modem... ***"
else
exit ${RET}
fi
}

function enable_auto_connect {
logger -t ltepi2 "Enabling auto-connect mode"
/usr/bin/env python /opt/candy-line/ltepi2/server_main.py ${MODEM_SERIAL_PORT} /var/run/candy-board-service.sock init2
RET=$?
if [ "${RET}" != "0" ]; then
exit ${RET}
fi
}

function wait_for_default_route {
Expand All @@ -68,8 +97,23 @@ function diagnose_self {
fi

if [ "${MODEM_USB_MODE}" == "ACM" ]; then
MODEM_USB_MODE=""

look_for_serial_port
try_to_change_usb_data_conn # may reboot
change_usb_data_conn
wait_for_modem_usb_inactive
wait_for_modem_usb_active
if [ -z "${MODEM_USB_MODE}" ]; then
return
fi

look_for_serial_port
enable_auto_connect
wait_for_modem_usb_inactive
wait_for_modem_usb_active
if [ -z "${MODEM_USB_MODE}" ]; then
return
fi
fi
}

Expand Down
3 changes: 2 additions & 1 deletion systemd/stop_systemd.sh
Original file line number Diff line number Diff line change
Expand Up @@ -75,8 +75,9 @@ logger -t ltepi2 "Inactivating ${PRODUCT}..."
diagnose_self
inactivate_lte
/opt/candy-line/ltepi2/_modem_off.sh > /dev/null 2>&1
wait_for_modem_usb_inactive
led_off
wait_for_modem_usb_inactive
led_off # ensure LED off

# end banner
logger -t ltepi2 "${PRODUCT} is inactivated successfully!"

0 comments on commit 610b6e7

Please sign in to comment.