Python 스크립트로 작성된 C# 응용 프로그램에서 값을 읽으려는 Python과 C# 사이의 프로세스 간 통신을 원합니다.메모리 매핑 된 파일 값이 읽기 액세스 후 0으로 설정됩니다.
MemoryMappedFile mmfSimPro = MemoryMappedFile.CreateOrOpen("MyFileMappingObject_SimPro", 20);
MemoryMappedViewAccessor accessorAxesSimPro = mmfSimPro.CreateViewAccessor(0, 20);
for (int i = 0; i < axesSimPro.Length; i++)
axesSimPro[i] = accessorAxesSimPro.ReadSingle(sizeof(float) * i);
그것은 성공적으로 값을 읽지 만 그 후 0으로 메모리 매핑 된 파일의 값을 설정합니다 는 C#에서, 나는 메모리 맵 파일 클래스를 사용하고 있습니다. 따라서 메모리 맵핑 된 파일을 다시 읽으면 (그리고 아직 파이썬 스크립트로 덮어 쓰지 않았다면), 나는 단지 0을 읽게 될 것입니다. 어떻게 방지 할 수 있습니까?
def WriteAxes():
shmem = mmap.mmap(0,256, "MyFileMappingObject_SimPro",mmap.ACCESS_WRITE)
struct.pack_into('f',shmem,0,_ctrl.Joints[1].CurrentValue)
struct.pack_into('f',shmem,4,_ctrl.Joints[0].CurrentValue)
struct.pack_into('f',shmem,8,_ctrl.Joints[2].CurrentValue)
struct.pack_into('f',shmem,12,_ctrl.Joints[3].CurrentValue)
struct.pack_into('f',shmem,16,_ctrl.Joints[4].CurrentValue-90)
shmem.close()