Merge branch 'main' of https://git.passer.life/RoboidControl/RoboidControl-python
This commit is contained in:
		
						commit
						dca94c7194
					
				@ -2,6 +2,7 @@ import numpy as np
 | 
			
		||||
from LinearAlgebra.SwingTwist import SwingTwist
 | 
			
		||||
 | 
			
		||||
def SendAngle8(buffer, ix_ref, angle):
 | 
			
		||||
    """! Send an 8-bit angle value """
 | 
			
		||||
    # Normalize angle
 | 
			
		||||
    while angle >= 180:
 | 
			
		||||
        angle -= 360
 | 
			
		||||
@ -13,6 +14,7 @@ def SendAngle8(buffer, ix_ref, angle):
 | 
			
		||||
    ix_ref[0] += 1
 | 
			
		||||
 | 
			
		||||
def SendFloat16(buffer, ix_ref, value):
 | 
			
		||||
    """! Send a 16-bit floating point value """
 | 
			
		||||
    ix = ix_ref[0]
 | 
			
		||||
    value16 = np.float16(value)
 | 
			
		||||
    binary = value16.view(np.uint16)
 | 
			
		||||
@ -23,6 +25,7 @@ def SendFloat16(buffer, ix_ref, value):
 | 
			
		||||
    ix_ref[0] += 2
 | 
			
		||||
 | 
			
		||||
def ReceiveFloat16(buffer, ix_ref) -> float:
 | 
			
		||||
    """! Receive a 16-bit floating point value """
 | 
			
		||||
    ix = ix_ref[0]
 | 
			
		||||
    # if ix < len(buffer) - 1:
 | 
			
		||||
    binary = (buffer[ix] << 8) + buffer[ix+1]
 | 
			
		||||
@ -33,11 +36,13 @@ def ReceiveFloat16(buffer, ix_ref) -> float:
 | 
			
		||||
    return float(value16)
 | 
			
		||||
 | 
			
		||||
def SendSpherical(buffer, ix_ref, vector):
 | 
			
		||||
    """! Send a spherical vector """
 | 
			
		||||
    SendFloat16(buffer, ix_ref, vector.distance)
 | 
			
		||||
    SendAngle8(buffer, ix_ref, vector.direction.horizontal)
 | 
			
		||||
    SendAngle8(buffer, ix_ref, vector.direction.vertical)
 | 
			
		||||
 | 
			
		||||
def SendQuat32(buffer, ix_ref, q):
 | 
			
		||||
    """! Send a 32-bit quaternion value """
 | 
			
		||||
    if isinstance(q, SwingTwist):
 | 
			
		||||
        q = q.ToQuaternion()
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user