Skip to content

Commit

Permalink
Update fbp-example.ipynb
Browse files Browse the repository at this point in the history
  • Loading branch information
Ximenes Rocha Resende committed Apr 22, 2024
1 parent 6d018d6 commit cb47bde
Showing 1 changed file with 33 additions and 30 deletions.
63 changes: 33 additions & 30 deletions siriuspy/siriuspy/pwrsupply/tests/fbp-example.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -2,66 +2,69 @@
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"execution_count": 2,
"metadata": {},
"outputs": [],
"source": [
"from siriuspy.pwrsupply.psbsmp import FBP\n",
"from siriuspy.pwrsupply.pru import PRU\n",
"from siriuspy.pwrsupply.bsmp.commands import FBP\n",
"from siriuspy.pwrsupply.pructrl.pru import PRU\n",
"from PRUserial485 import EthBridgeClient as _EthBridgeClient\n",
"\n",
"\n",
"def create_fbp(bbbname, device_id):\n",
" \"\"\".\"\"\"\n",
" pru = PRU(bbbname=bbbname)\n",
" pru = PRU(ethbridgeclnt_class=_EthBridgeClient, bbbname=bbbname)\n",
" ps = FBP(slave_address=device_id, pru=pru)\n",
" return ps"
]
},
{
"cell_type": "code",
"execution_count": 9,
"execution_count": 4,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"PRUserial485 lib version_client: 2.3.3\n",
"PRUserial485 lib version_server: None\n",
"\n"
"BEAGLEBONE: LA-RaCtrl:CO-PSCtrl-TB2\n",
"IP_ADDRESS: 10.128.121.104\n"
]
},
{
"ename": "SerialErrEmpty",
"evalue": "Serial read returned empty!",
"ename": "timeout",
"evalue": "timed out",
"output_type": "error",
"traceback": [
"\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
"\u001b[0;31mSerialErrEmpty\u001b[0m Traceback (most recent call last)",
"\u001b[0;32m<ipython-input-9-7513689bb8c0>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m\u001b[0m\n\u001b[1;32m 3\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 4\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 5\u001b[0;31m \u001b[0mack\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mdata\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mps\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mremove_all_groups_of_variables\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mtimeout\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;36m100\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 6\u001b[0m \u001b[0mprint\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'cmd : '\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m'remove_all'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 7\u001b[0m \u001b[0mprint\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'ack : '\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mack\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
"\u001b[0;32m/home/sirius/repos/dev-packages/siriuspy/siriuspy/bsmp/commands.py\u001b[0m in \u001b[0;36mremove_all_groups_of_variables\u001b[0;34m(self, timeout)\u001b[0m\n\u001b[1;32m 218\u001b[0m \u001b[0;31m# send request package\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 219\u001b[0m \u001b[0mmsg\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0m_Message\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mmessage\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mcmd\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mpayload\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mpayload\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 220\u001b[0;31m \u001b[0mres\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mchannel\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mrequest\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mmsg\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mtimeout\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mtimeout\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 221\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 222\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mres\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mcmd\u001b[0m \u001b[0;34m==\u001b[0m \u001b[0mack\u001b[0m \u001b[0;32mand\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0mres\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mpayload\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
"\u001b[0;32m/home/sirius/repos/dev-packages/siriuspy/siriuspy/bsmp/serial.py\u001b[0m in \u001b[0;36mrequest\u001b[0;34m(self, message, timeout, read_flag)\u001b[0m\n\u001b[1;32m 224\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mwrite\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mmessage\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mtimeout\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 225\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mread_flag\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 226\u001b[0;31m \u001b[0mresponse\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mread\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 227\u001b[0m \u001b[0;31m# print(response.cmd)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 228\u001b[0m \u001b[0;31m# print(response.payload)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
"\u001b[0;32m/home/sirius/repos/dev-packages/siriuspy/siriuspy/bsmp/serial.py\u001b[0m in \u001b[0;36mread\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 192\u001b[0m \u001b[0;31m# len(resp)), [hex(ord(c)) for c in resp])\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 193\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0mresp\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 194\u001b[0;31m \u001b[0;32mraise\u001b[0m \u001b[0m_SerialErrEmpty\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m\"Serial read returned empty!\"\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 195\u001b[0m \u001b[0mpackage\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mPackage\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mresp\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 196\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_size_counter\u001b[0m \u001b[0;34m+=\u001b[0m \u001b[0mlen\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mpackage\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mstream\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
"\u001b[0;31mSerialErrEmpty\u001b[0m: Serial read returned empty!"
"\u001b[0;31mtimeout\u001b[0m Traceback (most recent call last)",
"Cell \u001b[0;32mIn[4], line 3\u001b[0m\n\u001b[1;32m 1\u001b[0m \u001b[38;5;66;03m# ps = create_fbp(bbbname='IA-11RaCtrl:CO-PSCtrl-SI4', device_id=1) # SI-11C1:PS-CH\u001b[39;00m\n\u001b[1;32m 2\u001b[0m \u001b[38;5;66;03m# ps = create_fbp(bbbname='PA-RaPSB06:CO-PSCtrl-SI1', device_id=3) # SI-Fam:PS-SDA1\u001b[39;00m\n\u001b[0;32m----> 3\u001b[0m ps \u001b[38;5;241m=\u001b[39m \u001b[43mcreate_fbp\u001b[49m\u001b[43m(\u001b[49m\u001b[43mbbbname\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;124;43m'\u001b[39;49m\u001b[38;5;124;43mLA-RaCtrl:CO-PSCtrl-TB2\u001b[39;49m\u001b[38;5;124;43m'\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mdevice_id\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;241;43m1\u001b[39;49m\u001b[43m)\u001b[49m \u001b[38;5;66;03m# TB-01:PS-CH-1\u001b[39;00m\n\u001b[1;32m 6\u001b[0m \u001b[38;5;66;03m# ack, data = ps.remove_all_groups_of_variables(timeout=100)\u001b[39;00m\n\u001b[1;32m 7\u001b[0m \u001b[38;5;66;03m# print('cmd : ', 'remove_all')\u001b[39;00m\n\u001b[1;32m 8\u001b[0m \u001b[38;5;66;03m# print('ack : ', ack)\u001b[39;00m\n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 57\u001b[0m \u001b[38;5;66;03m# print('data: ', psnames)\u001b[39;00m\n\u001b[1;32m 58\u001b[0m \u001b[38;5;66;03m# print()\u001b[39;00m\n",
"Cell \u001b[0;32mIn[2], line 8\u001b[0m, in \u001b[0;36mcreate_fbp\u001b[0;34m(bbbname, device_id)\u001b[0m\n\u001b[1;32m 6\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21mcreate_fbp\u001b[39m(bbbname, device_id):\n\u001b[1;32m 7\u001b[0m \u001b[38;5;250m \u001b[39m\u001b[38;5;124;03m\"\"\".\"\"\"\u001b[39;00m\n\u001b[0;32m----> 8\u001b[0m pru \u001b[38;5;241m=\u001b[39m \u001b[43mPRU\u001b[49m\u001b[43m(\u001b[49m\u001b[43methbridgeclnt_class\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43m_EthBridgeClient\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mbbbname\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mbbbname\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 9\u001b[0m ps \u001b[38;5;241m=\u001b[39m FBP(slave_address\u001b[38;5;241m=\u001b[39mdevice_id, pru\u001b[38;5;241m=\u001b[39mpru)\n\u001b[1;32m 10\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m ps\n",
"File \u001b[0;32m~/repos/dev-packages/siriuspy/siriuspy/pwrsupply/pructrl/pru.py:88\u001b[0m, in \u001b[0;36mPRU.__init__\u001b[0;34m(self, ethbridgeclnt_class, bbbname, ip_address)\u001b[0m\n\u001b[1;32m 85\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_ip_address \u001b[38;5;241m=\u001b[39m ip_address\n\u001b[1;32m 87\u001b[0m \u001b[38;5;66;03m# start communication threads\u001b[39;00m\n\u001b[0;32m---> 88\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_ethbridge \u001b[38;5;241m=\u001b[39m \u001b[43methbridgeclnt_class\u001b[49m\u001b[43m(\u001b[49m\u001b[43mip_address\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mip_address\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 90\u001b[0m \u001b[38;5;66;03m# init PRUserial485 interface\u001b[39;00m\n\u001b[1;32m 91\u001b[0m PRUInterface\u001b[38;5;241m.\u001b[39m\u001b[38;5;21m__init__\u001b[39m(\u001b[38;5;28mself\u001b[39m)\n",
"File \u001b[0;32m~/repos/eth-bridge-pru-serial485/client/PRUserial485/PRUserial485.py:458\u001b[0m, in \u001b[0;36mEthBridgeClient.__init__\u001b[0;34m(self, ip_address)\u001b[0m\n\u001b[1;32m 454\u001b[0m \u001b[38;5;28msuper\u001b[39m()\u001b[38;5;241m.\u001b[39m\u001b[38;5;21m__init__\u001b[39m(ip_address)\n\u001b[1;32m 456\u001b[0m \u001b[38;5;66;03m# NOTE: Should I connect here with option #1, #2 or should I leave\u001b[39;00m\n\u001b[1;32m 457\u001b[0m \u001b[38;5;66;03m# it for the first interaction with the server?\u001b[39;00m\n\u001b[0;32m--> 458\u001b[0m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mconnect_socket\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\n",
"File \u001b[0;32m~/repos/eth-bridge-pru-serial485/client/PRUserial485/PRUserial485.py:473\u001b[0m, in \u001b[0;36mEthBridgeClient.connect_socket\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 471\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21mconnect_socket\u001b[39m(\u001b[38;5;28mself\u001b[39m):\n\u001b[1;32m 472\u001b[0m \u001b[38;5;250m \u001b[39m\u001b[38;5;124;03m\"\"\"Open a socket connection.\"\"\"\u001b[39;00m\n\u001b[0;32m--> 473\u001b[0m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_socket_connect\u001b[49m\u001b[43m(\u001b[49m\u001b[43mSERVER_PORT_RW\u001b[49m\u001b[43m)\u001b[49m\n",
"File \u001b[0;32m~/repos/eth-bridge-pru-serial485/client/PRUserial485/PRUserial485.py:197\u001b[0m, in \u001b[0;36m_EthBridgeClientCommonInterface._socket_connect\u001b[0;34m(self, conn_port)\u001b[0m\n\u001b[1;32m 194\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39msocket \u001b[38;5;241m=\u001b[39m socket\u001b[38;5;241m.\u001b[39msocket(socket\u001b[38;5;241m.\u001b[39mAF_INET, socket\u001b[38;5;241m.\u001b[39mSOCK_STREAM)\n\u001b[1;32m 195\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39msocket\u001b[38;5;241m.\u001b[39msettimeout(DEFAULT_TIMEOUT)\n\u001b[0;32m--> 197\u001b[0m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43msocket\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mconnect\u001b[49m\u001b[43m(\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_bbb_ip\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mconn_port\u001b[49m\u001b[43m)\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 198\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39msocket\u001b[38;5;241m.\u001b[39msetsockopt(socket\u001b[38;5;241m.\u001b[39mSOL_TCP, socket\u001b[38;5;241m.\u001b[39mTCP_NODELAY, \u001b[38;5;241m1\u001b[39m)\n",
"\u001b[0;31mtimeout\u001b[0m: timed out"
]
}
],
"source": [
"# ps = create_fbp(bbbname='IA-11RaCtrl:CO-PSCtrl-SI4', device_id=1)\n",
"ps = create_fbp(bbbname='PA-RaPSB06:CO-PSCtrl-SI1', device_id=3)\n",
"# ps = create_fbp(bbbname='IA-11RaCtrl:CO-PSCtrl-SI4', device_id=1) # SI-11C1:PS-CH\n",
"# ps = create_fbp(bbbname='PA-RaPSB06:CO-PSCtrl-SI1', device_id=3) # SI-Fam:PS-SDA1\n",
"ps = create_fbp(bbbname='LA-RaCtrl:CO-PSCtrl-TB2', device_id=1) # TB-01:PS-CH-1\n",
"\n",
"\n",
"ack, data = ps.remove_all_groups_of_variables(timeout=100)\n",
"print('cmd : ', 'remove_all')\n",
"print('ack : ', ack)\n",
"print('data: ', data)\n",
"print()\n",
"# ack, data = ps.remove_all_groups_of_variables(timeout=100)\n",
"# print('cmd : ', 'remove_all')\n",
"# print('ack : ', ack)\n",
"# print('data: ', data)\n",
"# print()\n",
"\n",
"ack, data = ps.read_variable(0, timeout=100)\n",
"print('cmd : ', 'read_variable')\n",
"print('ack : ', ack)\n",
"print('data: ', data)\n",
"print()\n",
"# ack, data = ps.read_variable(0, timeout=100)\n",
"# print('cmd : ', 'read_variable')\n",
"# print('ack : ', ack)\n",
"# print('data: ', data)\n",
"# print()\n",
"\n",
"# ack, data = ps.read_group_of_variables(group_id=0, timeout=100)\n",
"# print('cmd : ', 'read_group_of_variables')\n",
Expand Down Expand Up @@ -103,7 +106,7 @@
"# psnames = ps.parameter_read(eid=0)\n",
"# print('cmd : ', 'parameter_read(eid=0)')\n",
"# print('data: ', psnames)\n",
"# print()\n"
"# print()"
]
},
{
Expand All @@ -130,7 +133,7 @@
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.6.8"
"version": "3.9.2"
}
},
"nbformat": 4,
Expand Down

0 comments on commit cb47bde

Please sign in to comment.