Actuator-Controller-HITL/code/deprecated/is_picklable.py
SchrodingerError 482d724e20 Initial Commit
2024-08-14 14:42:16 -05:00

30 lines
1.0 KiB
Python

import pickle
from PhysicsElements import StateSpace, ZERO_VECTOR, Joint, Spring
import numpy as np
from Object_Sharing import SharedJointList
def is_picklable(obj):
try:
pickle.dumps(obj)
return True
except pickle.PicklingError:
return False
from multiprocessing.managers import BaseManager
def func(x,y):
return 10
if __name__ == '__main__':
BaseManager.register('Joint', Joint)
BaseManager.register('Spring', Spring)
manager = BaseManager()
manager.start()
north_wall_joint:Joint = manager.Joint(np.array([10,0,0]), mass=0.001, fixed=True, name="North Wall Joint")
main_mass:Joint = manager.Joint(np.array([0,0,0]), mass=3, fixed=False, name="Blue Mass")
middle_mass:Joint = manager.Joint(np.array([5,0,0]), mass=5, fixed=False, name="White Mass")
spring1 = manager.Spring(parent_joint=middle_mass, child_joint=north_wall_joint, unstretched_length=7.5, stiffness_func=func, name="Spring 1")
print(is_picklable(spring1))