module CChokeControlPanel use CChokeControlPanelVariables use SimulationVariables implicit none public contains subroutine ChokeControlPanelFromJson(parent) type(json_value),pointer :: parent type(json_core) :: json type(json_value),pointer :: p,pval ! 1. get related root call json%get(parent,'ChokeControl',p) ! 2. get member of data type from node call json%get(p,'ChokeControlLever',pval) call json%get(pval,data%Equipments%ChokeControlPanel%ChokeControlLever) call json%get(p,'ChokePanelRigAirSwitch',pval) call json%get(pval,data%Equipments%ChokeControlPanel%ChokePanelRigAirSwitch) call json%get(p,'ChokePanelPumpSelectorSwitch',pval) call json%get(pval,data%Equipments%ChokeControlPanel%ChokePanelPumpSelectorSwitch) call json%get(p,'ChokePanelStrokeResetSwitch',pval) call json%get(pval,data%Equipments%ChokeControlPanel%ChokePanelStrokeResetSwitch) call json%get(p,'ChokeSelectorSwitch',pval) call json%get(pval,data%Equipments%ChokeControlPanel%ChokeSelectorSwitch) call json%get(p,'ChokeRateControlKnob',pval) call json%get(pval,data%Equipments%ChokeControlPanel%ChokeRateControlKnob) ! call json%get(p,'EnableAutoChoke',pval) ! call json%get(pval,data%Equipments%ChokeControlPanel%EnableAutoChoke) ! call json%get(p,'StandPipePressure',pval) ! call json%get(pval,data%Equipments%ChokeControlPanel%StandPipePressure) ! call json%get(p,'CasingPressure',pval) ! call json%get(pval,data%Equipments%ChokeControlPanel%CasingPressure) ! call json%get(p,'ChokePosition',pval) ! call json%get(pval,data%Equipments%ChokeControlPanel%ChokePosition) ! call json%get(p,'ChokePanelSPMCounter',pval) ! call json%get(pval,data%Equipments%ChokeControlPanel%ChokePanelSPMCounter) ! call json%get(p,'ChokePanelTotalStrokeCounter',pval) ! call json%get(pval,data%Equipments%ChokeControlPanel%ChokePanelTotalStrokeCounter) ! call json%get(p,'Choke1LED',pval) ! call json%get(pval,data%Equipments%ChokeControlPanel%Choke1LED) ! call json%get(p,'Choke2LED',pval) ! call json%get(pval,data%Equipments%ChokeControlPanel%Choke2LED) end subroutine subroutine ChokeControlPanelToJson(parent) type(json_value),pointer :: parent type(json_core) :: json type(json_value),pointer :: p ! 1. create new node call json%create_object(p,'ChokeControl') call json%add(p,"ChokePanelPumpSelectorSwitch",data%Equipments%ChokeControlPanel%ChokePanelPumpSelectorSwitch) ! call json%add(p,"ChokePanelStrokeResetSwitch",data%Equipments%ChokeControlPanel%ChokePanelStrokeResetSwitch) call json%add(p,"ChokeSelectorSwitch",data%Equipments%ChokeControlPanel%ChokeSelectorSwitch) ! call json%add(p,"ChokeRateControlKnob",data%Equipments%ChokeControlPanel%ChokeRateControlKnob) call json%add(p,"ChokeControlLever",data%Equipments%ChokeControlPanel%ChokeControlLever) call json%add(p,"ChokePanelRigAirSwitch",data%Equipments%ChokeControlPanel%ChokePanelRigAirSwitch) ! call json%add(p,"EnableAutoChoke",data%Equipments%ChokeControlPanel%EnableAutoChoke) call json%add(p,"StandPipePressure",data%Equipments%ChokeControlPanel%StandPipePressure) call json%add(p,"CasingPressure",data%Equipments%ChokeControlPanel%CasingPressure) call json%add(p,"ChokePosition",data%Equipments%ChokeControlPanel%ChokePosition) call json%add(p,"ChokePanelSPMCounter",data%Equipments%ChokeControlPanel%ChokePanelSPMCounter) call json%add(p,"ChokePanelTotalStrokeCounter",data%Equipments%ChokeControlPanel%ChokePanelTotalStrokeCounter) call json%add(p,"Choke1LED",data%Equipments%ChokeControlPanel%Choke1LED) call json%add(p,"Choke2LED",data%Equipments%ChokeControlPanel%Choke2LED) call json%add(parent,p) end subroutine end module CChokeControlPanel