for home
This commit is contained in:
8
.idea/KX.iml
generated
Normal file
8
.idea/KX.iml
generated
Normal file
@@ -0,0 +1,8 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<module type="PYTHON_MODULE" version="4">
|
||||
<component name="NewModuleRootManager">
|
||||
<content url="file://$MODULE_DIR$" />
|
||||
<orderEntry type="inheritedJdk" />
|
||||
<orderEntry type="sourceFolder" forTests="false" />
|
||||
</component>
|
||||
</module>
|
||||
6
.idea/inspectionProfiles/profiles_settings.xml
generated
Normal file
6
.idea/inspectionProfiles/profiles_settings.xml
generated
Normal file
@@ -0,0 +1,6 @@
|
||||
<component name="InspectionProjectProfileManager">
|
||||
<settings>
|
||||
<option name="USE_PROJECT_PROFILE" value="false" />
|
||||
<version value="1.0" />
|
||||
</settings>
|
||||
</component>
|
||||
4
.idea/misc.xml
generated
Normal file
4
.idea/misc.xml
generated
Normal file
@@ -0,0 +1,4 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="ProjectRootManager" version="2" project-jdk-name="Python 3.7" project-jdk-type="Python SDK" />
|
||||
</project>
|
||||
8
.idea/modules.xml
generated
Normal file
8
.idea/modules.xml
generated
Normal file
@@ -0,0 +1,8 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="ProjectModuleManager">
|
||||
<modules>
|
||||
<module fileurl="file://$PROJECT_DIR$/.idea/KX.iml" filepath="$PROJECT_DIR$/.idea/KX.iml" />
|
||||
</modules>
|
||||
</component>
|
||||
</project>
|
||||
115
.idea/workspace.xml
generated
Normal file
115
.idea/workspace.xml
generated
Normal file
@@ -0,0 +1,115 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="ChangeListManager">
|
||||
<list default="true" id="72cc40b1-c3bf-43e3-bbc5-daa6555ea73d" name="Default Changelist" comment="" />
|
||||
<option name="SHOW_DIALOG" value="false" />
|
||||
<option name="HIGHLIGHT_CONFLICTS" value="true" />
|
||||
<option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
|
||||
<option name="LAST_RESOLUTION" value="IGNORE" />
|
||||
</component>
|
||||
<component name="FileTemplateManagerImpl">
|
||||
<option name="RECENT_TEMPLATES">
|
||||
<list>
|
||||
<option value="Python Script" />
|
||||
</list>
|
||||
</option>
|
||||
</component>
|
||||
<component name="ProjectId" id="1tfF9PwSNSXsgpWLjjHxA5A61PP" />
|
||||
<component name="ProjectViewState">
|
||||
<option name="hideEmptyMiddlePackages" value="true" />
|
||||
<option name="showExcludedFiles" value="true" />
|
||||
<option name="showLibraryContents" value="true" />
|
||||
</component>
|
||||
<component name="PropertiesComponent">
|
||||
<property name="RunOnceActivity.ShowReadmeOnStart" value="true" />
|
||||
</component>
|
||||
<component name="RunManager" selected="Python.main">
|
||||
<configuration name="main" type="PythonConfigurationType" factoryName="Python" temporary="true" nameIsGenerated="true">
|
||||
<module name="KX" />
|
||||
<option name="INTERPRETER_OPTIONS" value="" />
|
||||
<option name="PARENT_ENVS" value="true" />
|
||||
<envs>
|
||||
<env name="PYTHONUNBUFFERED" value="1" />
|
||||
</envs>
|
||||
<option name="SDK_HOME" value="" />
|
||||
<option name="WORKING_DIRECTORY" value="$PROJECT_DIR$" />
|
||||
<option name="IS_MODULE_SDK" value="true" />
|
||||
<option name="ADD_CONTENT_ROOTS" value="true" />
|
||||
<option name="ADD_SOURCE_ROOTS" value="true" />
|
||||
<option name="SCRIPT_NAME" value="$PROJECT_DIR$/main.py" />
|
||||
<option name="PARAMETERS" value="" />
|
||||
<option name="SHOW_COMMAND_LINE" value="false" />
|
||||
<option name="EMULATE_TERMINAL" value="false" />
|
||||
<option name="MODULE_MODE" value="false" />
|
||||
<option name="REDIRECT_INPUT" value="false" />
|
||||
<option name="INPUT_FILE" value="" />
|
||||
<method v="2" />
|
||||
</configuration>
|
||||
<configuration name="protocol_kx" type="PythonConfigurationType" factoryName="Python" temporary="true" nameIsGenerated="true">
|
||||
<module name="KX" />
|
||||
<option name="INTERPRETER_OPTIONS" value="" />
|
||||
<option name="PARENT_ENVS" value="true" />
|
||||
<envs>
|
||||
<env name="PYTHONUNBUFFERED" value="1" />
|
||||
</envs>
|
||||
<option name="SDK_HOME" value="" />
|
||||
<option name="WORKING_DIRECTORY" value="$PROJECT_DIR$" />
|
||||
<option name="IS_MODULE_SDK" value="true" />
|
||||
<option name="ADD_CONTENT_ROOTS" value="true" />
|
||||
<option name="ADD_SOURCE_ROOTS" value="true" />
|
||||
<option name="SCRIPT_NAME" value="D:\KX\protocol_kx.py" />
|
||||
<option name="PARAMETERS" value="" />
|
||||
<option name="SHOW_COMMAND_LINE" value="false" />
|
||||
<option name="EMULATE_TERMINAL" value="false" />
|
||||
<option name="MODULE_MODE" value="false" />
|
||||
<option name="REDIRECT_INPUT" value="false" />
|
||||
<option name="INPUT_FILE" value="" />
|
||||
<method v="2" />
|
||||
</configuration>
|
||||
<recent_temporary>
|
||||
<list>
|
||||
<item itemvalue="Python.main" />
|
||||
<item itemvalue="Python.protocol_kx" />
|
||||
</list>
|
||||
</recent_temporary>
|
||||
</component>
|
||||
<component name="SvnConfiguration">
|
||||
<configuration />
|
||||
</component>
|
||||
<component name="TaskManager">
|
||||
<task active="true" id="Default" summary="Default task">
|
||||
<changelist id="72cc40b1-c3bf-43e3-bbc5-daa6555ea73d" name="Default Changelist" comment="" />
|
||||
<created>1623152084822</created>
|
||||
<option name="number" value="Default" />
|
||||
<option name="presentableId" value="Default" />
|
||||
<updated>1623152084822</updated>
|
||||
</task>
|
||||
<servers />
|
||||
</component>
|
||||
<component name="WindowStateProjectService">
|
||||
<state width="1899" height="285" key="GridCell.Tab.0.bottom" timestamp="1623333108256">
|
||||
<screen x="0" y="0" width="1920" height="1050" />
|
||||
</state>
|
||||
<state width="1899" height="285" key="GridCell.Tab.0.bottom/0.0.1920.1050/1920.0.1920.1050@0.0.1920.1050" timestamp="1623333108256" />
|
||||
<state width="1882" height="285" key="GridCell.Tab.0.bottom/0.0.1920.1050/1920.0.1920.1050@1920.0.1920.1050" timestamp="1623328090440" />
|
||||
<state width="1899" height="285" key="GridCell.Tab.0.center" timestamp="1623333108256">
|
||||
<screen x="0" y="0" width="1920" height="1050" />
|
||||
</state>
|
||||
<state width="1899" height="285" key="GridCell.Tab.0.center/0.0.1920.1050/1920.0.1920.1050@0.0.1920.1050" timestamp="1623333108256" />
|
||||
<state width="1882" height="285" key="GridCell.Tab.0.center/0.0.1920.1050/1920.0.1920.1050@1920.0.1920.1050" timestamp="1623328090440" />
|
||||
<state width="1899" height="285" key="GridCell.Tab.0.left" timestamp="1623333108256">
|
||||
<screen x="0" y="0" width="1920" height="1050" />
|
||||
</state>
|
||||
<state width="1899" height="285" key="GridCell.Tab.0.left/0.0.1920.1050/1920.0.1920.1050@0.0.1920.1050" timestamp="1623333108256" />
|
||||
<state width="1882" height="285" key="GridCell.Tab.0.left/0.0.1920.1050/1920.0.1920.1050@1920.0.1920.1050" timestamp="1623328090440" />
|
||||
<state width="1899" height="285" key="GridCell.Tab.0.right" timestamp="1623333108256">
|
||||
<screen x="0" y="0" width="1920" height="1050" />
|
||||
</state>
|
||||
<state width="1899" height="285" key="GridCell.Tab.0.right/0.0.1920.1050/1920.0.1920.1050@0.0.1920.1050" timestamp="1623333108256" />
|
||||
<state width="1882" height="285" key="GridCell.Tab.0.right/0.0.1920.1050/1920.0.1920.1050@1920.0.1920.1050" timestamp="1623328090440" />
|
||||
<state x="2576" y="349" key="com.intellij.ide.util.TipDialog" timestamp="1623318929088">
|
||||
<screen x="1920" y="0" width="1920" height="1050" />
|
||||
</state>
|
||||
<state x="2576" y="349" key="com.intellij.ide.util.TipDialog/0.0.1920.1050/1920.0.1920.1050@1920.0.1920.1050" timestamp="1623318929088" />
|
||||
</component>
|
||||
</project>
|
||||
BIN
__pycache__/kx.cpython-37.pyc
Normal file
BIN
__pycache__/kx.cpython-37.pyc
Normal file
Binary file not shown.
BIN
__pycache__/protocol_kx.cpython-37.pyc
Normal file
BIN
__pycache__/protocol_kx.cpython-37.pyc
Normal file
Binary file not shown.
41
kx.py
Normal file
41
kx.py
Normal file
@@ -0,0 +1,41 @@
|
||||
import protocol_kx
|
||||
import can
|
||||
import cantools
|
||||
import os
|
||||
import numpy as np
|
||||
|
||||
|
||||
K = np.zeros(protocol_kx.KX_K_COUNT)
|
||||
|
||||
|
||||
class KX:
|
||||
def __init__(self, id, value, sbl_id, can):
|
||||
K[id] = value
|
||||
self.sbl_id = sbl_id
|
||||
self.can0 = can
|
||||
|
||||
|
||||
def KXInit(self, id, value):
|
||||
K[id] = value
|
||||
|
||||
|
||||
def reset(self):
|
||||
resetMsg = can.Message(arbitration_id=0xA, data=[99, self.sbl_id], is_extended_id=False)
|
||||
self.can0.send(resetMsg)
|
||||
|
||||
|
||||
def sendK(self):
|
||||
msg = protocol_kx.CANMsgK(self.sbl_id, 0, protocol_kx.KX_FLAG_SEND, K[0])
|
||||
i = 0
|
||||
for element in K:
|
||||
msg.k = element
|
||||
msg.index = i
|
||||
i = i + 1
|
||||
messageK = can.Message(protocol_kx.KX_FLAG_SEND, data=msg, is_extended_id=False)
|
||||
self.can0.send(messageK)
|
||||
|
||||
|
||||
def writeToFlashK(self):
|
||||
msg = protocol_kx.CANMsgK(self.sbl_id, 0, protocol_kx.KX_FLAG_WRITE_REQ, K)
|
||||
messageK = can.Message(protocol_kx.KX_FLAG_READ, data=msg, is_extended_id=False)
|
||||
self.can0.send(messageK)
|
||||
22
main.py
Normal file
22
main.py
Normal file
@@ -0,0 +1,22 @@
|
||||
import kx
|
||||
import can
|
||||
import protocol_kx
|
||||
import os
|
||||
|
||||
|
||||
can0 = can.interface.Bus(bustype='socketcan', channel='can0', bitrate=500000)
|
||||
|
||||
|
||||
KXLOX = kx.KX(protocol_kx.KDescription.K_TEST_SOURCE_2_SIGLVL.value, 950, 255, can0)
|
||||
KXLOX.KXInit(protocol_kx.KDescription.K_TEST_SOURCE_1_POS_X_MAX.value, 21)
|
||||
KXLOX.KXInit(protocol_kx.KDescription.K_TEST_SOURCE_1_POS_Y_MAX.value, 21)
|
||||
KXLOX.KXInit(protocol_kx.KDescription.K_TEST_SOURCE_1_POS_X_MIN.value, 1)
|
||||
KXLOX.KXInit(protocol_kx.KDescription.K_TEST_SOURCE_1_POS_Y_MIN.value, 1)
|
||||
KXLOX.KXInit(protocol_kx.KDescription.K_TEST_SOURCE_1_POS_Y.value, 7)
|
||||
KXLOX.KXInit(protocol_kx.KDescription.K_TEST_SOURCE_1_POS_X.value, 7)
|
||||
KXLOX.KXInit(protocol_kx.KDescription.K_TEST_SOURCE_1_SIGLVL.value, 450)
|
||||
KXLOX.KXInit(protocol_kx.KDescription.K_TEST_SOURCES_ENABLED.value, 1)
|
||||
KXLOX.sendK()
|
||||
KXLOX.writeToFlashK()
|
||||
os.wait(100)
|
||||
KXLOX.reset()
|
||||
87
protocol_kx.py
Normal file
87
protocol_kx.py
Normal file
@@ -0,0 +1,87 @@
|
||||
from enum import Enum
|
||||
|
||||
|
||||
KX_K_COUNT = 64
|
||||
KX_DSS_K_START_IDX = 57
|
||||
KX_DSS_K_COUNT = (KX_K_COUNT - KX_DSS_K_START_IDX)
|
||||
KX_MAX_CALLBACKS = 4
|
||||
KX_CAN_ID = 0x2BB
|
||||
KX_FLAG_RECEIVE_REQ = 0
|
||||
KX_FLAG_RECEIVE_RESP = 1
|
||||
KX_FLAG_SEND = 2
|
||||
KX_FLAG_READ_REQ = 3
|
||||
KX_FLAG_READ_ERR = 4
|
||||
KX_FLAG_READ_OK = 5
|
||||
KX_FLAG_WRITE_REQ = 6
|
||||
KX_FLAG_WRITE_ERR = 7
|
||||
KX_FLAG_WRITE_OK = 8
|
||||
|
||||
|
||||
class CANMsgK:
|
||||
def __init__(self, sblID, index, flag, k):
|
||||
self.sblID = sblID
|
||||
self.index = index
|
||||
self.flag = flag
|
||||
self.k = k
|
||||
|
||||
|
||||
class KDescription(Enum):
|
||||
K_SBL_ID = 0
|
||||
K_TEST_COMP_RX_CHAIN_DISABLED = 1
|
||||
K_TEST_SOURCES_ENABLED = 2
|
||||
K_TEST_SOURCES_COUNT = 3
|
||||
K_TEST_SOURCE_1_POS_X = 4
|
||||
K_TEST_SOURCE_1_POS_Y = 5
|
||||
K_TEST_SOURCE_1_POS_Z = 6
|
||||
K_TEST_SOURCE_1_VEL_X = 7
|
||||
K_TEST_SOURCE_1_VEL_Y = 8
|
||||
K_TEST_SOURCE_1_VEL_Z = 9
|
||||
K_TEST_SOURCE_1_SIGLVL = 10
|
||||
K_TEST_SOURCE_1_POS_X_MIN = 11
|
||||
K_TEST_SOURCE_1_POS_Y_MIN = 12
|
||||
K_TEST_SOURCE_1_POS_Z_MIN = 13
|
||||
K_TEST_SOURCE_1_POS_X_MAX = 14
|
||||
K_TEST_SOURCE_1_POS_Y_MAX = 15
|
||||
K_TEST_SOURCE_1_POS_Z_MAX = 16
|
||||
K_TEST_SOURCE_2_POS_X = 17
|
||||
K_TEST_SOURCE_2_POS_Y = 18
|
||||
K_TEST_SOURCE_2_POS_Z = 19
|
||||
K_TEST_SOURCE_2_VEL_X = 20
|
||||
K_TEST_SOURCE_2_VEL_Y = 21
|
||||
K_TEST_SOURCE_2_VEL_Z = 22
|
||||
K_TEST_SOURCE_2_SIGLVL = 23
|
||||
K_TEST_SOURCE_2_POS_X_MIN = 24
|
||||
K_TEST_SOURCE_2_POS_Y_MIN = 25
|
||||
K_TEST_SOURCE_2_POS_Z_MIN = 26
|
||||
K_TEST_SOURCE_2_POS_X_MAX = 27
|
||||
K_TEST_SOURCE_2_POS_Y_MAX = 28
|
||||
K_TEST_SOURCE_2_POS_Z_MAX = 29
|
||||
K_JPDA_DT = 30
|
||||
K_JPDA_DX = 31
|
||||
K_JPDA_DY = 32
|
||||
K_JPDA_DVX = 33
|
||||
K_JPDA_DVY = 34
|
||||
K_JPDA_DR = 35
|
||||
K_JPDA_DV = 36
|
||||
K_JPDA_DA = 37
|
||||
K_JPDA_ASSOC_DR = 38
|
||||
K_JPDA_ASSOC_DV = 39
|
||||
K_JPDA_ASSOC_DA = 40
|
||||
K_JPDA_CONFIRM_COUNT = 41
|
||||
K_JPDA_CONFIRM_PERIOD = 42
|
||||
K_JPDA_MISSED_COUNT = 43
|
||||
K_JPDA_PK_VAL_THLD = 44
|
||||
K_JPDA_T_SX = 45
|
||||
K_JPDA_T_SY = 46
|
||||
K_JPDA_T_SVX = 47
|
||||
K_JPDA_T_SVY = 48
|
||||
K_JPDA_ADV_PK_VAL = 49
|
||||
K_JPDA_ADV_SY_MULT = 50
|
||||
K_JPDA_BND_BOX_XL = 51
|
||||
K_JPDA_BND_BOX_XR = 52
|
||||
K_JPDA_BND_BOX_YB = 53
|
||||
K_JPDA_BND_BOX_YT = 54
|
||||
K_MRR_RX_GAIN = 55
|
||||
K_USRR_RX_GAIN = 56
|
||||
K_TO_DSS = 57
|
||||
K_TO_DSS_2 = 58
|
||||
Reference in New Issue
Block a user