Metadata-Version: 2.1
Name: VSMD
Version: 0.2.1
Summary: Controller for VSMD CAN motor
Home-page: https://github.com/JChrysanthemum/VSMD
Author: jiangxt
Author-email: 624099049@qq.com
License: UNKNOWN
Description: # VSMD
        
        Controller for VSMD can motor
        
        ## Debug model
        
        Explained by doc file 
        [VSMD1X6_SERIES_V1.0.pdf](https://github.com/JChrysanthemum/VSMD/blob/master/doc/VSMD1X6_SERIES_V1.0.pdf), it's
        easy to convert can.message to meaningful frame.
        
        ```
        bus = can.interface.Bus(bustype='socketcan', channel='can0', bitrate=500000)
        
        while True:
            for msg in bus:
            print("\n%2d\n" % cnt)
        
            # set debug = true make it to show inf of can-frame
            can_frame = VsmdCanFrame(msg, debug=True)
        ```
        
        For an example,say frame 0004079F#0020000000000000 , it can be interpreted as below:
        ```
        ************************************************************                                                                                                             
        | Main:  |                                                                                                                                                               
        + Raw                    :  0004079f#0020000000000000
        + Sender                 :  vcan0
        + Extent ID Frame        :  00000000001000000011110011111
        + DLC                    :  8
        + Data Frame             :  ['00200000', '00000000']
        
        | Extend ID Frame |
        + Source Device          :  Pi
        + Target Device          :  BroadCast
        + Command Word           :  11
        + CMD or Register ADR    :  READ_DATA_REGS
        
        | Action |
        + CW Means               :  CMD
        | Data Frame |
        + Command                :  [('Data Reg Start:', <DataRegTable.CID: ['0000000', 'Channel ID', 'Determined by motor']>), ('Data Reg count:', 32)]                        
        ************************************************************
        ```
        
        ## Quick VSMD-CAN setup and drive
        
        See in CommonCMD in [VSMD1X6.py](https://github.com/JChrysanthemum/VSMD/blob/master/vsmd/VSMD1X6.py)
        
        
        ## Generate your own CMD
        
        I have sealed most type of command of VSMD in script,you can import them like this:
        
        ```
        from VSMD import CommonCMD
        ```
        
        Which contains these sub-function:
        
        * enable_motor(device: str)
            
            ENA  0x01
            
            CAN motor is allowed to move after ENA is ON
            
        * disable_motor(device: str)
        
            OFF  0x02
        
            Make CAN motor ignore move cmd. Often used for broadcast
        
        * move_motor(device: str, speed: int)
        
            MOV  0x05
        
            Move motor with specific speed. This is somehow dangerous
        
        * stop_motor(device: str)
        
            STP  0x04
        
            Stop the motor now.
        
        * move_to(device: str, pos: int)
        
            POS  0x06
        
            Mode to absolute pos.
            
        * move_dis(device: str, dis: int)
        
            RMV  0x0B
            
            Mode to relative pos.
        
        * read_status_regs(device: str, reg: StatusRegTable, cnt: int)
        
            READ STATUS REGS  0x1E
        
            Follow the PDF
        
        * read_data_regs(device: str, reg: DataRegTable, cnt: int)
                
            READ DATA REGS  0x1F
                
            Follow the PDF
            
        * write_data_regs(device: str, reg: DataRegTable, data):
        
          Note that you must use save after write some registers
        
        
        
Platform: UNKNOWN
Classifier: Programming Language :: Python :: 3
Classifier: License :: OSI Approved :: MIT License
Classifier: License :: OSI Approved :: GNU General Public License v3 (GPLv3)
Classifier: Operating System :: OS Independent
Requires-Python: >=3.5
Description-Content-Type: text/markdown
