Skip to content

Instantly share code, notes, and snippets.

View johngrantuk's full-sized avatar

John Grant johngrantuk

View GitHub Profile
""" Functions dealing with rectangular patch antenna."""
import math
import matplotlib.pyplot as plt
import numpy as np
from sph2cart1 import sph2cart1
from cart2sph1 import cart2sph1
from math import cos, sin, sqrt
from mpl_toolkits.mplot3d import Axes3D
@johngrantuk
johngrantuk / Patch.py
Created February 27, 2017 15:40
Calculates total E-field pattern for patch as a function of theta and phi
import math
from math import cos, sin, sqrt, atan2, acos
def PatchFunction(thetaInDeg, phiInDeg, Freq, W, L, h, Er):
"""
Taken from Design_patchr
Calculates total E-field pattern for patch as a function of theta and phi
Patch is assumed to be resonating in the (TMx 010) mode.
E-field is parallel to x-axis
@johngrantuk
johngrantuk / readSensor.py
Created March 29, 2016 18:20
Django Channels background worker
from channels import Group
from django.core.management import BaseCommand
import time
#The class must be named Command, and subclass BaseCommand
class Command(BaseCommand):
# Show this when the user types help
help = "Simulates reading sensor and sending over Channel."
# A command must define handle()
@johngrantuk
johngrantuk / sensor.js
Created March 29, 2016 18:11
Django Channels javascript example
$(function() {
// When we're using HTTPS, use WSS too.
var ws_scheme = window.location.protocol == "https:" ? "wss" : "ws";
var chatsock = new ReconnectingWebSocket(ws_scheme + '://' + window.location.host + "/sensor/");
chatsock.onopen = function() {
console.log("Connected!");
$('#sensor').text("Connected!");
chatsock.send("Connected!");
};
@johngrantuk
johngrantuk / sensor.html
Created March 29, 2016 16:41
Django Channels Sensor template
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>{% block title %}Sensor Example{% endblock %}</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
</head>
<body>
{% load staticfiles%}
@johngrantuk
johngrantuk / views.py
Created March 29, 2016 16:39
Django Channels view
from django.shortcuts import render
def sensor(request):
return render(request, "sensor.html", {
'sensor': '99',
})
@johngrantuk
johngrantuk / consumers.py
Created March 29, 2016 16:25
Django Channels consumer disconnect
def ws_disconnect(message):
print("Someone left us...")
Group("sensor").discard(message.reply_channel)
@johngrantuk
johngrantuk / consumers.py
Created March 29, 2016 16:24
Django Channels ws_message consumer
def ws_message(message):
# ASGI WebSocket packet-received and send-packet message types
# both have a "text" key for their textual data.
print("Received!!" + message['text'])
@johngrantuk
johngrantuk / routing.py
Created March 29, 2016 16:21
Django Channels routing file
from sensor.consumers import ws_message, ws_connect, ws_disconnect
channel_routing = {
'websocket.connect': ws_connect,
'websocket.receive': ws_message,
'websocket.disconnect': ws_disconnect,
}
@johngrantuk
johngrantuk / asgi.py
Created March 29, 2016 16:11
Django Channel asgi file
import os
import channels.asgi
os.environ.setdefault(“DJANGO_SETTINGS_MODULE”, “sensor.settings”)
channel_layer = channels.asgi.get_channel_layer()